FLT/AutomorphicForm/Stuff.lean

GitHub source file

Explanation legend Lean4 Domain Explanation Language (L4DEL)

L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.

L4DEL
Lean4 Domain Explanation Language

Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.

Project sources: Pinned project documentation, Pinned FLT blueprint introduction

33 declarations, 0 contain sorry, 0 declared as axioms

Random assortments of API lemmas missing in mathlib.

Imports (9)
Imported by 4 files
  1. lemma RingHom.coe_toMonoidHom line 25 source

    no axioms what this means

    Statement uses: NonAssocSemiring, RingHom, Eq, MonoidHom

    Proof uses: rfl

    13 instances, coercions and auxiliary constants left out.

  2. def Set.matrixEquiv Set.matrix is equivalent to matrices on the subtype line 30 source

    Source documentation

    Set.matrix is equivalent to matrices on the subtype.

    no axioms what this means

    Statement uses: Set, Equiv, Matrix, Set.matrix

    Proof uses: Equiv.mk, Subtype.mk, Membership.mem

    8 instances, coercions and auxiliary constants left out.

    def Set.matrixEquiv {m n α : Type*} (S : Set α) :
        S.matrix (m := m) (n := n) ≃ Matrix m n S where
    …
  3. def Subring.matrixEquiv Subring.matrix is equivalent to matrices on the subtype line 40 source

    Source documentation

    Subring.matrix is equivalent to matrices on the subtype.

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Ring, Fintype, DecidableEq, Subring, RingEquiv, Subtype, Matrix, Membership.mem, Subring.matrix

    Proof uses: Equiv, Set.matrix, AddSubmonoid, Subsemiring.toAddSubmonoid, Subring.toSubsemiring, Set.matrixEquiv, RingEquiv.mk

    43 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

    Open to load the checked before-and-after goal states.

    def Subring.matrixEquiv {n α : Type*} [Ring α] [Fintype n] [DecidableEq n] (S : Subring α) :
        S.matrix (n := n) ≃+* Matrix n n S where
    …
  4. lemma IsPrincipalIdealRing.exists_isCoprime_and_dvd_pow line 46 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: CommRing, IsPrincipalIdealRing, IsDomain, Ne, OfNat.ofNat, Exists, Nat, And, Eq, HMul.hMul, IsCoprime, Dvd.dvd, HPow.hPow

    Proof uses: UniqueFactorizationMonoid.induction_on_prime, False, rfl, Eq.refl, IsUnit, Exists.intro, of_eq_true, Eq.trans, True, congr, congrArg, one_mul, eq_self, pow_zero, eq_true, IsUnit.dvd, and_self, Prime, dite, Classical.propDecidable and 26 more

    70 instances, coercions and auxiliary constants left out.

    Tactic trace: 12 steps

    Open to load the checked before-and-after goal states.

  5. instance ConjAct.continuousConstSMul line 58 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: TopologicalSpace, DivInvMonoid, ContinuousMul, ContinuousConstSMul, ConjAct

    Proof uses: ContinuousConstSMul.mk, IsTopologicalGroup.continuous_conj, MulEquiv, ConjAct.ofConjAct

    16 instances, coercions and auxiliary constants left out.

  6. lemma ConjAct.isOpen_smul line 63 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Group, TopologicalSpace, IsTopologicalGroup, Subgroup, IsOpen, ConjAct, HSMul.hSMul, Subgroup.pointwiseMulAction

    Proof uses: Iff.mpr, Set.image, Homeomorph, Homeomorph.smul, Homeomorph.isOpen_image

    22 instances, coercions and auxiliary constants left out.

  7. lemma Polynomial.Monic.not_irreducible_iff_of_natDegree_eq_two line 68 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: CommRing, NoZeroDivisors, Polynomial, Polynomial.Monic, Eq, Nat, Polynomial.natDegree, OfNat.ofNat, Iff, Not, Irreducible, Exists, HMul.hMul, HSub.hSub, Polynomial.X, RingHom, Polynomial.C

    Proof uses: Subsingleton, Nontrivial, Or, subsingleton_or_nontrivial, Or.inl, of_eq_true, Eq.trans, True, congr, congrArg, False, Subsingleton.elim, not_false_eq_true, funext, eq_self, iff_self, Or.inr, Iff.intro, And, Finsupp and 83 more

    148 instances, coercions and auxiliary constants left out.

    Tactic trace: 29 steps

    Open to load the checked before-and-after goal states.

  8. lemma IsPrimitiveRoot.iff_of_prime line 88 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: CommRing, Nat, Nat.Prime, Iff, IsPrimitiveRoot, And, Eq, HPow.hPow, OfNat.ofNat, Ne

    Proof uses: Iff.intro, And.intro, IsPrimitiveRoot.pow_eq_one, IsPrimitiveRoot.ne_one, Nat.Prime.one_lt, Iff.mpr, orderOf, IsPrimitiveRoot.iff_orderOf, Or.resolve_left, Nat.Prime.eq_one_or_self_of_dvd, orderOf_dvd_of_pow_eq_one, And.left, of_eq_true, Not, Eq.trans, False, True, congrArg, eq_false, And.right and 1 more

    30 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

  9. theorem Matrix.det_algebraMap line 94 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: CommSemiring, CommRing, Algebra, DecidableEq, Fintype, Eq, Matrix.det, RingHom, Matrix, Algebra.algebraMap, HPow.hPow, Nat, Fintype.card

    Proof uses: Eq.trans, Matrix.diagonal, Pi.constRingHom, Finset.prod, Finset.univ, Matrix.det_diagonal, of_eq_true, True, congrFun', congrArg, Finset.card, funext, RingHom.id, RingHomCompTriple.comp_apply, Finset.prod_const, eq_self

    26 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

  10. lemma Set.injOn_image_iff line 99 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Set, Set.InjOn, Iff, Set.image, Function.comp

    Proof uses: Eq.mpr, Membership.mem, Eq, id, congrFun', congrArg, Eq.trans, forall_congr, And, Exists, implies_congr, Eq.refl

    6 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

    Open to load the checked before-and-after goal states.

  11. lemma Algebra.norm_one_tmul Finiteness not necessary? line 106 source

    Source comment

    Finiteness not necessary?

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: CommRing, Ring, Algebra, Module.Free, Module.Finite, Eq, MonoidHom, TensorProduct, Algebra.norm, TensorProduct.tmul, OfNat.ofNat, RingHom, Algebra.algebraMap

    Proof uses: Mathlib.Tactic.Nontriviality.subsingleton_or_nontrivial_elim, Subsingleton, of_eq_true, Nontrivial, RingHom.domain_nontrivial, Sigma, Module.Basis, Nonempty, Module.Free.exists_basis, Fintype, nonempty_fintype, Module.Finite.finite_basis, Nonempty.intro, Eq.mpr, Matrix.det, Classical.propDecidable, AlgHom, Matrix, Algebra.leftMulMatrix, id and 29 more

    77 instances, coercions and auxiliary constants left out.

    Tactic trace: 9 steps

    Open to load the checked before-and-after goal states.

    lemma Algebra.norm_one_tmul
        (R A : Type*) {B : Type*} [CommRing R] [CommRing A] [Ring B] [Algebra R A]
        [Algebra R B] (x : B) [Module.Free R B] [Module.Finite R B] :
        Algebra.norm A ((1 : A) ⊗ₜ[R] x) = algebraMap R A (Algebra.norm R x) := by
    …
  12. lemma Algebra.norm_eq_det line 121 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: CommRing, Fintype, DecidableEq, Matrix, Eq, MonoidHom, Algebra.norm, HPow.hPow, Nat, Matrix.det, Fintype.card

    Proof uses: Eq.mpr, Prod, AlgHom, Algebra.leftMulMatrix, Matrix.stdBasis, id, congrArg, Algebra.norm_eq_matrix_det, Equiv, Matrix.comp, Matrix.map, RingHom, Algebra.algebraMap, Matrix.ext, of_eq_true, Eq.trans, ite, Prod.snd, Prod.fst, OfNat.ofNat and 55 more

    80 instances, coercions and auxiliary constants left out.

    Tactic trace: 6 steps

    Open to load the checked before-and-after goal states.

  13. lemma vecCons_one_one line 133 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: One, Eq, Fin, Nat.succ, OfNat.ofNat, Nat, Matrix.vecCons, Matrix.vecEmpty

    Proof uses: funext, List, List.Mem, List.finRange, HEq, Membership.mem, Finset, Fintype.elems, Fintype.complete, List.cons, List.Mem.head, Fin.mk, Nat.le_of_lt, Nat.le_refl, List.nil, Eq.refl, eq_of_heq, List.Mem.tail, False.elim, noConfusion_of_Nat and 2 more

    12 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

    Open to load the checked before-and-after goal states.

  14. lemma WithZero.lt_ofAdd_one line 137 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: WithZero, Multiplicative, Int, Iff, LT.lt, Equiv, Multiplicative.ofAdd, OfNat.ofNat, LE.le

    Proof uses: WithZero.recZeroCoe, of_eq_true, Eq.trans, True, congr, congrArg, iff_self, Multiplicative.toAdd, HAdd.hAdd, zero_add

    51 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

    Open to load the checked before-and-after goal states.

  15. lemma WithZero.mul_ofAdd_one_le_one_iff line 145 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: WithZero, Multiplicative, Int, Iff, LE.le, HMul.hMul, Equiv, Multiplicative.ofAdd, OfNat.ofNat, LT.lt

    Proof uses: WithZero.recZeroCoe, of_eq_true, Eq.trans, True, congr, congrArg, congrFun', MulZeroClass.zero_mul, iff_self, Multiplicative.toAdd

    79 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

    Open to load the checked before-and-after goal states.

  16. lemma MeasureSpace.comap_symm line 153 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: MeasurableSpace, Equiv, Eq, MeasurableSpace.comap, Equiv.symm, MeasurableSpace.map

    Proof uses: MeasurableSpace.ext, Set, of_eq_true, Iff, MeasurableSet, Eq.trans, Set.preimage, True, congr, congrArg, Exists, And, funext, Set.image, Equiv.image_symm_eq_preimage, iff_self

    10 instances, coercions and auxiliary constants left out.

    Tactic trace: 4 steps

    Open to load the checked before-and-after goal states.

  17. instance (instance at line 159) line 159 source
  18. instance (instance at line 166) line 166 source
  19. instance (instance at line 169) line 169 source
  20. instance (instance at line 172) line 172 source
  21. theorem MeasurableEquiv.restrict_preimage line 177 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: MeasurableSpace, MeasurableEquiv, MeasureTheory.Measure, Set, Eq, MeasureTheory.Measure.restrict, Set.preimage, MeasureTheory.Measure.map, MeasurableEquiv.symm

    Proof uses: Eq.mpr, id, congrArg, MeasurableEquiv.restrict_map, Function.comp, MeasureTheory.Measure.map_map, MeasurableEquiv.measurable, of_eq_true, Eq.trans, True, congrFun', MeasurableEquiv.symm_comp_self, MeasureTheory.Measure.map_id, eq_self

    6 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

    Open to load the checked before-and-after goal states.

  22. def ContinuousAddEquiv.smul smul as a ContinuousAddEquiv line 185 source

    Source documentation

    smul as a ContinuousAddEquiv.

    standard axioms: propext what this means

    Statement uses: Group, TopologicalSpace, AddMonoid, DistribMulAction, ContinuousConstSMul, ContinuousAddEquiv

    Proof uses: Homeomorph, Homeomorph.smul, ContinuousAddEquiv.mk, AddEquiv.mk, Homeomorph.toEquiv, Homeomorph.continuous_toFun, Homeomorph.continuous_invFun

    22 instances, coercions and auxiliary constants left out.

    def ContinuousAddEquiv.smul {G α : Type*} [Group G] [TopologicalSpace α] [AddMonoid α]
        [DistribMulAction G α]
        [ContinuousConstSMul G α] (g : G) : α ≃ₜ+ α where
    …
  23. lemma ContinuousAddEquiv.smul_inv line 192 source

    standard axioms: Quot.sound, propext what this means

    Statement uses: Group, TopologicalSpace, AddMonoid, DistribMulAction, ContinuousConstSMul, Eq, ContinuousAddEquiv, ContinuousAddEquiv.smul, Inv.inv, ContinuousAddEquiv.symm

    Proof uses: ContinuousAddEquiv.ext, of_eq_true, Eq.trans, HSMul.hSMul, True, congr, congrArg, ContinuousAddEquiv.smul_apply, ContinuousAddEquiv.smul_symm_apply, eq_self

    36 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

    Open to load the checked before-and-after goal states.

  24. def MulOpposite.opMeasurableEquiv MulOpposite.op as a MeasurableEquiv line 198 source

    Source documentation

    MulOpposite.op as a MeasurableEquiv.

    standard axioms: Quot.sound, propext what this means

    Statement uses: MeasurableSpace, MeasurableEquiv, MulOpposite

    Proof uses: Equiv, MulOpposite.opEquiv, MeasurableEquiv.mk, measurable_mul_op, measurable_mul_unop

    2 instances, coercions and auxiliary constants left out.

    def MulOpposite.opMeasurableEquiv {M : Type*} [MeasurableSpace M] : M ≃ᵐ Mᵐᵒᵖ where
    …
  25. def Units.opContinuousMulEquiv Units.opEquiv (taking x to x) as a ContinuousMulEquiv line 205 source

    Source documentation

    Units.opEquiv (taking x to x) as a ContinuousMulEquiv.

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Monoid, TopologicalSpace, ContinuousMulEquiv, Units, MulOpposite

    Proof uses: MulEquiv, Units.opEquiv, ContinuousMulEquiv.mk

    12 instances, coercions and auxiliary constants left out.

    Tactic trace: 4 steps

    Open to load the checked before-and-after goal states.

    def Units.opContinuousMulEquiv {M : Type*} [Monoid M] [TopologicalSpace M] :
        Mᵐᵒᵖˣ ≃ₜ* Mˣᵐᵒᵖ where
    …
  26. lemma Units.coe_opContinuousMulEquiv_symm_apply line 216 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Monoid, TopologicalSpace, MulOpposite, Units, Eq, ContinuousMulEquiv, ContinuousMulEquiv.symm, Units.opContinuousMulEquiv, MulOpposite.op, MulOpposite.unop

    Proof uses: rfl

    18 instances, coercions and auxiliary constants left out.

  27. lemma Units.coe_opContinuousMulEquiv_symm_apply_inv line 221 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Monoid, TopologicalSpace, MulOpposite, Units, Eq, Inv.inv, ContinuousMulEquiv, ContinuousMulEquiv.symm, Units.opContinuousMulEquiv, MulOpposite.op, MulOpposite.unop

    Proof uses: rfl

    20 instances, coercions and auxiliary constants left out.

    Tactic trace: 4 steps

    Open to load the checked before-and-after goal states.

  28. instance (instance at line 225) line 225 source
  29. def MulDistribMulAction.toContinuousMulEquiv smul as a ContinuousMulEquiv line 235 source

    Source documentation

    smul as a ContinuousMulEquiv.

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Group, Monoid, MulDistribMulAction, TopologicalSpace, ContinuousConstSMul, ContinuousMulEquiv

    Proof uses: MulEquiv, MulDistribMulAction.toMulEquiv, ContinuousMulEquiv.mk

    20 instances, coercions and auxiliary constants left out.

    def MulDistribMulAction.toContinuousMulEquiv
        {G : Type*} (x : G) (M : Type*) [Group G] [Monoid M] [MulDistribMulAction G M]
        [TopologicalSpace M] [ContinuousConstSMul G M] : M ≃ₜ* M where
    …
  30. lemma Subgroup.FiniteIndex.of_compactSpace line 244 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Group, TopologicalSpace, SeparatelyContinuousMul, CompactSpace, Subgroup, IsOpen, Subgroup.FiniteIndex

    Proof uses: Iff.mpr, Finite, HasQuotient.Quotient, Subgroup.finiteIndex_iff_finite_quotient, Subgroup.quotient_finite_of_isOpen

    15 instances, coercions and auxiliary constants left out.

    Tactic trace: 6 steps

    Open to load the checked before-and-after goal states.

  31. instance (instance at line 249) line 249 source
  32. lemma Subgroup.IsFiniteRelIndex.of_isCompact line 261 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Group, TopologicalSpace, SeparatelyContinuousMul, Subgroup, IsOpen, IsCompact, Subgroup.IsFiniteRelIndex

    Proof uses: CompactSpace, Subtype, Membership.mem, Iff.mp, Set, isCompact_iff_compactSpace, Iff.mpr, Subgroup.FiniteIndex, Subgroup.subgroupOf, Subgroup.isFiniteRelIndex_iff_finiteIndex, Subgroup.FiniteIndex.of_compactSpace, IsOpen.preimage, continuous_subtype_val

    21 instances, coercions and auxiliary constants left out.

    Tactic trace: 4 steps

    Open to load the checked before-and-after goal states.

  33. instance (instance at line 268) line 268 source