FLT/Patching/Utils/Lemmas.lean
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
31 declarations, 0 contain sorry, 0 declared as axioms
Miscellaneous lemmas for the patching folder
Generic algebraic lemmas (units of products, ideals of quotient rings, products of submodules, etc.) used throughout the patching argument.
Imports (13)
- Mathlib.Topology.Algebra.Module.ModuleTopology
- Mathlib.Topology.Algebra.Ring.Ideal
- Mathlib.RingTheory.Ideal.MinimalPrime.Basic
- Mathlib.RingTheory.Jacobson.Ideal
- Mathlib.RingTheory.LocalRing.MaximalIdeal.Defs
- Mathlib.RingTheory.Noetherian.Defs
- Mathlib.Data.Set.Card
- Mathlib.Data.SetLike.Fintype
- Mathlib.RingTheory.Filtration
- Mathlib.RingTheory.Localization.AtPrime.Basic
- Mathlib.Topology.Algebra.Module.Compact
- Mathlib.Topology.Algebra.OpenSubgroup
- Mathlib.Topology.Separation.Profinite
Imported by 3 files
- lemma
IsUnit.pi_iffline 32 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Monoid,Iff,IsUnitProof uses:
Eq.mpr,Exists,And,Eq,HMul.hMul,OfNat.ofNat,id,congr,congrArg,forall_congr,congrFun',funext,Iff.symm,Classical.skolem11 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
forall_prod_iffline 37 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nonempty,IffProof uses:
Iff.intro,Eq.mp,dite,Eq,Classical.decEq,Eq.rec,Not,Nonempty.some,inferInstance,congrArg,dite_eq_left_of_eq_true,eq_selfTactic trace: 1 steps
Open to load the checked before-and-after goal states.
- def
Ideal.idealQuotientEquivBijection between ideals ofR / Iand ideals ofRcontainingI, via comap/map along the quotient map line 46 sourceSource documentation
Bijection between ideals of
R / Iand ideals ofRcontainingI, via comap/map along the quotient map.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Ideal,Equiv,HasQuotient.Quotient,Subtype,LE.leProof uses:
Equiv.mk,Subtype.mk,Ideal.comap,RingHom,Ideal.Quotient.mk,Ideal.map30 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
def Ideal.idealQuotientEquiv {R : Type*} [CommRing R] (I : Ideal R) : Ideal (R ⧸ I) ≃ { J // I ≤ J } where … - def
Submodule.pi'The product of a family of submodulesN i ≤ M i, viewed as a submodule ofΠ i, M iover the product ringΠ i, R iline 64 sourceSource documentation
The product of a family of submodules
N i ≤ M i, viewed as a submodule ofΠ i, M iover the product ringΠ i, R i.standard axioms: Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,SubmoduleProof uses:
Submodule.mk,AddSubmonoid.mk,AddSubsemigroup.mk,Set.ofPred,Membership.mem21 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
def Submodule.pi' : Submodule (Π i, R i) (Π i, M i) where …
- lemma
Submodule.mem_pi'line 72 sourcestandard axioms: Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Submodule,Iff,Membership.mem, Submodule.pi'Proof uses:
Iff.rfl16 instances, coercions and auxiliary constants left out.
- def
LinearMap.piMap'A more dependent version ofLinearMap.piMap, making a product of linear maps into a linear map over the product of rings line 78 sourceSource documentation
A more dependent version of
LinearMap.piMap, making a product of linear maps into a linear map over the product of rings.standard axioms: Quot.sound what this means
Statement uses:
CommRing,AddCommGroup,Module,LinearMap,RingHom.idProof uses:
LinearMap.mk,AddHom.mk23 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
def LinearMap.piMap' (f : ∀ i, M i →ₗ[R i] N i) : (Π i, M i) →ₗ[Π i, R i] Π i, N i where …
- instance
(instance at line 83)line 83 source - lemma
pi'_jacobsonline 89 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Eq,Submodule, Submodule.pi',Ideal.jacobson,Bot.bot,IdealProof uses:
Ideal.ext,Eq.mpr,Iff,Membership.mem,IsUnit,HAdd.hAdd,HMul.hMul,OfNat.ofNat,id,congr,congrArg,Eq.trans,forall_congr,Eq.rec,Eq.refl,propext,forall_comm,Iff.symm, forall_prod_iff46 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- instance
(instance at line 96)line 96 source - theorem
exists_subgroup_isOpen_and_subsetline 102 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
TopologicalSpace,CompactSpace,T2Space,TotallyDisconnectedSpace,CommGroup,IsTopologicalGroup,Set,Membership.mem,Filter,nhds,OfNat.ofNat,Exists,Subgroup,And,IsOpen,LE.leProof uses:
Iff.mp,mem_nhds_iff,IsClopen,compact_exists_isClopen_in_isOpen,OpenSubgroup,IsTopologicalGroup.exist_openSubgroup_sub_clopen_nhds_of_one,Subsemigroup.carrier,Submonoid.toSubsemigroup,Subgroup.toSubmonoid,OpenSubgroup.mk,Exists.intro,And.intro,LE.le.trans38 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- theorem
TwoSidedIdeal.span_le'line 112 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NonUnitalNonAssocRing,Set,TwoSidedIdeal,Iff,LE.le,TwoSidedIdeal.spanProof uses:
Iff.intro,LE.le.trans,TwoSidedIdeal.subset_span,Membership.mem,Iff.mp,TwoSidedIdeal.mem_span_iff18 instances, coercions and auxiliary constants left out.
- theorem
TwoSidedIdeal.span_negline 117 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NonUnitalNonAssocRing,Set,Eq,TwoSidedIdeal,TwoSidedIdeal.span,Neg.negProof uses:
le_antisymm,Eq.mpr,LE.le,id,congrArg,propext, TwoSidedIdeal.span_le',Membership.mem,Eq.rec,TwoSidedIdeal.neg_mem,TwoSidedIdeal.subset_span,neg_neg,Iff.mpr,Set.neg,Set.neg_mem_neg21 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- theorem
TwoSidedIdeal.span_singleton_zeroline 126 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NonUnitalNonAssocRing,Eq,TwoSidedIdeal,TwoSidedIdeal.span,Singleton.singleton,Set,OfNat.ofNat,Bot.botProof uses:
Iff.mp,LE.le,le_bot_iff,Iff.mpr, TwoSidedIdeal.span_le',of_eq_true28 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- theorem
TwoSidedIdeal.mem_span_singletonline 130 sourcestandard axioms: Quot.sound, propext what this means
Statement uses:
NonUnitalNonAssocRing,Membership.mem,TwoSidedIdeal,TwoSidedIdeal.span,Singleton.singleton,SetProof uses:
TwoSidedIdeal.subset_span,rfl4 instances, coercions and auxiliary constants left out.
- def
TwoSidedIdeal.leAddSubgroupThe largest two-sided ideal contained in a given additive subgroupG ≤ α: thosex ∈ αwhose two-sided span is contained inGline 136 sourceSource documentation
The largest two-sided ideal contained in a given additive subgroup
G ≤ α: thosex ∈ αwhose two-sided span is contained inG.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NonUnitalNonAssocRing,AddSubgroup,TwoSidedIdealProof uses:
TwoSidedIdeal.mk',Set.ofPred,LE.le,Set,TwoSidedIdeal.span,Singleton.singleton,Membership.mem15 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
def TwoSidedIdeal.leAddSubgroup {α} [NonUnitalNonAssocRing α] (G : AddSubgroup α) : TwoSidedIdeal α := … - lemma
TwoSidedIdeal.leAddSubgroup_subsetline 157 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NonUnitalNonAssocRing,AddSubgroup,LE.le,Set,TwoSidedIdeal, TwoSidedIdeal.leAddSubgroupProof uses:
Membership.mem,Eq.rec,Eq,TwoSidedIdeal.span,Singleton.singleton, TwoSidedIdeal.mem_span_singleton,HSub.hSub,OfNat.ofNat,Eq.symm,sub_zero21 instances, coercions and auxiliary constants left out.
- lemma
TwoSidedIdeal.mem_leAddSubgroup'line 161 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NonUnitalNonAssocRing,AddSubgroup,Iff,Membership.mem,TwoSidedIdeal, TwoSidedIdeal.leAddSubgroup,LE.le,Set,TwoSidedIdeal.span,Singleton.singletonProof uses:
Eq.mpr,HSub.hSub,OfNat.ofNat,id,Eq,Eq.rec,Eq.refl,Eq.trans,congrArg,Eq.symm,sub_zero,Iff.rfl25 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
TwoSidedIdeal.mem_leAddSubgroupline 166 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Ring,AddSubgroup,Iff,Membership.mem,TwoSidedIdeal, TwoSidedIdeal.leAddSubgroup,HMul.hMulProof uses:
Iff.intro,TwoSidedIdeal.mul_mem_right,TwoSidedIdeal.span,Singleton.singleton,Set,HSub.hSub,OfNat.ofNat,TwoSidedIdeal.mul_mem_left,Eq.rec,Eq, TwoSidedIdeal.mem_span_singleton,Eq.symm,sub_zero,Eq.mpr,id,Eq.mp,congrArg,Eq.trans,congrFun',one_muland 28 more72 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.
- theorem
exists_twoSidedIdeal_isOpen_and_subsetline 178 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
TopologicalSpace,CompactSpace,T2Space,TotallyDisconnectedSpace,Ring,IsTopologicalRing,Set,Membership.mem,Filter,nhds,OfNat.ofNat,Exists,TwoSidedIdeal,And,IsOpen,LE.leProof uses:
AddSubgroup,exists_addSubgroup_isOpen_and_subset,Exists.intro, TwoSidedIdeal.leAddSubgroup,And.intro,Iff.mpr,isOpen_iff_mem_nhds,HMul.hMul,Iff.mp, TwoSidedIdeal.mem_leAddSubgroup,IsCompact,IsCompact.induction_on,Eq.mpr,EmptyCollection.emptyCollection,id,Eq,congrArg,funext,Eq.trans,Trueand 41 more58 instances, coercions and auxiliary constants left out.
Tactic trace: 40 steps
Open to load the checked before-and-after goal states.
- theorem
exists_ideal_isOpen_and_subsetline 222 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
TopologicalSpace,CompactSpace,T2Space,TotallyDisconnectedSpace,Ring,IsTopologicalRing,Set,Membership.mem,Filter,nhds,OfNat.ofNat,Exists,Ideal,And,IsOpen,LE.leProof uses:
TwoSidedIdeal, exists_twoSidedIdeal_isOpen_and_subset,Exists.intro,OrderHom,TwoSidedIdeal.asIdeal,And.intro32 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- instance
(instance at line 229)line 229 source - lemma
WellFoundedGT.exists_eq_supline 235 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CompleteLattice,WellFoundedGT,OrderHom,Nat,Exists,Eq,iSupProof uses:
LE.le,Iff.mp,wellFoundedGT_iff_monotone_chain_condition,Exists.intro,le_antisymm,le_iSup,iSup_le,Or.elim,le_total,OrderHom.monotone',Eq.ge29 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
WellFoundedLT.exists_eq_infline 241 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CompleteLattice,WellFoundedLT,OrderHom,Nat,OrderDual,Exists,Eq,iInfProof uses: WellFoundedGT.exists_eq_sup
23 instances, coercions and auxiliary constants left out.
- lemma
IsLocalRing.maximalIdeal_pow_card_smul_top_leline 246 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsLocalRing,IsNoetherianRing,AddCommGroup,Module,Submodule,Finite,HasQuotient.Quotient,LE.le,HSMul.hSMul,Ideal,HPow.hPow,Nat,IsLocalRing.maximalIdeal,Nat.card,Top.topProof uses:
Submodule.smul_mono,Ideal.pow_le_pow_right,le_rfl,Exists,Eq,Bot.bot,OrderDual,OrderHom,OrderHom.mk,iInf, WellFoundedLT.exists_eq_inf,Ideal.iInf_pow_smul_eq_bot_of_isLocalRing,Ideal.IsMaximal.ne_top,Exists.intro,id,Eq.mp,congrArg,Set.ncard,HAdd.hAdd,HSub.hSuband 60 more176 instances, coercions and auxiliary constants left out.
Tactic trace: 32 steps
Open to load the checked before-and-after goal states.
- theorem
Submodule.comap_smul_of_le_rangeline 288 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,LinearMap,RingHom.id,Submodule,LE.le,LinearMap.range,Ideal,Eq,Submodule.comap,HSMul.hSMul,Max.max,LinearMap.kerProof uses:
Eq.mpr,Submodule.map,id,congrArg,Eq.symm,Submodule.comap_map_eq,Submodule.map_smul'',Min.min,Submodule.map_comap_eq,Iff.mpr,inf_eq_right,Eq.refl46 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- theorem
Submodule.comap_smul_of_surjectiveline 294 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,LinearMap,RingHom.id,Submodule,Function.Surjective,Ideal,Eq,Submodule.comap,HSMul.hSMul,Max.max,LinearMap.kerProof uses: Submodule.comap_smul_of_le_range,
LE.le.trans_eq,Top.top,LinearMap.range,le_top,Eq.symm,LinearMap.range_eq_top_of_surjective32 instances, coercions and auxiliary constants left out.
- def
Pi.liftQuotientₗline 303 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Finite,LinearMap,RingHom.id,Ideal,HasQuotient.Quotient,Submodule,HSMul.hSMul,Top.topProof uses:
LinearMap.comp,LinearMap.ker,LinearMap.compLeft,Algebra.linearMap,Submodule.liftQ,Submodule.mkQ,LinearEquiv.symm,LinearMap.quotKerEquivOfSurjective53 instances, coercions and auxiliary constants left out.
Tactic trace: 15 steps
Open to load the checked before-and-after goal states.
- lemma
Pi.liftQuotientₗ_surjectiveline 321 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Finite,LinearMap,RingHom.id,Ideal,Function.Surjective,HasQuotient.Quotient,Submodule,HSMul.hSMul,Top.top, Pi.liftQuotientₗProof uses:
Eq.mpr,LinearMap.ker,LinearMap.compLeft,Algebra.linearMap,Submodule.liftQ,LinearMap.comp,Submodule.mkQ,id,Eq,LinearEquiv,LinearEquiv.symm,LinearMap.quotKerEquivOfSurjective,LinearMap.range,congrArg,Eq.symm,propext,LinearMap.range_eq_top,Submodule.range_liftQ,Function.Surjective.comp,Submodule.mkQ_surjective63 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Pi.liftQuotientₗ_bijectiveline 328 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Finite,LinearMap,RingHom.id,Ideal,Function.Surjective,LE.le,Submodule,LinearMap.ker,HasQuotient.Quotient,LinearMap.compLeft,Algebra.linearMap,Function.Bijective,HSMul.hSMul,Top.top, Pi.liftQuotientₗProof uses:
And.intro,Function.Injective,Eq.mpr,Submodule.liftQ,LinearMap.comp,Submodule.mkQ,id,Eq,LinearEquiv,LinearEquiv.symm,LinearMap.quotKerEquivOfSurjective,Bot.bot,congrArg,Eq.symm,propext,LinearMap.ker_eq_bot,Submodule.map,Submodule.ker_liftQ,le_bot_iff,Submodule.comapand 25 more101 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
IsModuleTopology.compactSpaceline 343 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,AddCommGroup,Module,IsModuleTopology,CompactSpace,Module.FiniteProof uses:
CompactSpace.mk,Submodule.isCompact_of_fg,IsModuleTopology.toContinuousAdd,Top.top,Submodule,Module.Finite.fg_top37 instances, coercions and auxiliary constants left out.
- lemma
disjoint_nonZeroDivisors_of_mem_minimalPrimesline 350 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Ideal,Membership.mem,Set,minimalPrimes,Disjoint,Submonoid,nonZeroDivisorsProof uses:
Eq.mpr,LE.le,Compl.compl,id,Eq,congrArg,Eq.symm,propext,Set.subset_compl_iff_disjoint_right,Set.subset_def,Exists,HMul.hMul,OfNat.ofNat,Not,forall_congr,implies_congr,Eq.trans,funext,Ideal.IsPrime,And.leftand 51 more138 instances, coercions and auxiliary constants left out.
Tactic trace: 27 steps
Open to load the checked before-and-after goal states.