FLT/Patching/Over.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
12 declarations, 0 contain sorry, 0 declared as axioms
The patching module over a coefficient ring
Lifting linear (iso)morphisms modulo a power of an ideal to the level of
patching modules: produces module-equivalences between patching modules
out of compatible families of mod-I^k equivalences.
Imports (7)
Imported by 2 files
- def
Submodule.liftModIdealGiven a linear mapf : M / I • M → N / I • N, produce the induced linear map between the corresponding quotients ofM / J • MandN / J • NmoduloIline 54 sourceSource documentation
Given a linear map
f : M / I • M → N / I • N, produce the induced linear map between the corresponding quotients ofM / J • MandN / J • NmoduloI.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Ideal,LinearMap,RingHom.id,HasQuotient.Quotient,Submodule,HSMul.hSMul,Top.topProof uses:
Submodule.liftQ,LinearMap.comp,Submodule.mapQ,Submodule.mkQ60 instances, coercions and auxiliary constants left out.
Tactic trace: 17 steps
Open to load the checked before-and-after goal states.
def Submodule.liftModIdeal {R M N : Type*} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {I : Ideal R} (f : M ⧸ (I • ⊤ : Submodule R M) →ₗ[R] N ⧸ (I • ⊤ : Submodule R N)) (J : Ideal R) : (M ⧸ (J • ⊤ : Submodule R M)) ⧸ (I • ⊤ : Submodule R (M ⧸ (J • ⊤ : Submodule R M))) →ₗ[R] (N ⧸ (J • ⊤ : Submodule R N)) ⧸ (I • ⊤ : Submodule R (N ⧸ (J • ⊤ : Submodule R N))) := by … - def
Submodule.liftModIdealEquivPromoteSubmodule.liftModIdealto a linear equivalence: a linear equivalence betweenR-modulesM /IMandN/INlifts to one between(M/JM)/Iand(N/JM)/Iline 81 sourceSource documentation
Promote
Submodule.liftModIdealto a linear equivalence: a linear equivalence betweenR-modulesM /IMandN/INlifts to one between(M/JM)/Iand(N/JM)/I.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Ideal,LinearEquiv,RingHom.id,HasQuotient.Quotient,Submodule,HSMul.hSMul,Top.topProof uses:
LinearMap, Submodule.liftModIdeal,LinearEquiv.mk,LinearEquiv.symm62 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
def Submodule.liftModIdealEquiv {R M N : Type*} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {I : Ideal R} (f : (M ⧸ (I • ⊤ : Submodule R M)) ≃ₗ[R] N ⧸ (I • ⊤ : Submodule R N)) (J : Ideal R) : ((M ⧸ (J • ⊤ : Submodule R M)) ⧸ (I • ⊤ : Submodule R (M ⧸ (J • ⊤ : Submodule R M)))) ≃ₗ[R] (N ⧸ (J • ⊤ : Submodule R N)) ⧸ (I • ⊤ : Submodule R (N ⧸ (J • ⊤ : Submodule R N))) where … - instance
(instance at line 105)line 105 source - lemma
PatchingModule.ker_componentMapModule_mkQattribute [local instance] UltraProduct.instIsScalarTower in line 115 sourceSource comment
attribute [local instance] UltraProduct.instIsScalarTower instandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Ultrafilter,TopologicalSpace,Module.Free,HasQuotient.Quotient,Ideal,Module.annihilator, Module.UniformlyBoundedRank,CompactSpace,IsTopologicalRing, OpenIdeals,Eq,Submodule, PatchingModule.Component,IsOpen,HSMul.hSMul,Top.top,LinearMap.kerand 3 moreProof uses:
LinearMap,Eq.mpr,Subtype.mk,id,congrArg,rfl,Finite,AddSubgroup.quotient_finite_of_isOpen,Submodule.toAddSubgroup,LE.le,Submodule.comap,Submodule.map,Eq.symm,propext,Submodule.map_le_iff_le_comap,Submodule.map_smul'',Submodule.smul_mono,le_rfl,le_top,Submodule.mapQand 87 more205 instances, coercions and auxiliary constants left out.
Tactic trace: 47 steps
Open to load the checked before-and-after goal states.
lemma PatchingModule.ker_componentMapModule_mkQ [IsTopologicalRing Λ] (α : OpenIdeals Λ) : LinearMap.ker ((componentMapModule Λ F (fun i ↦ (𝔫 • ⊤ : Submodule Λ (M i)).mkQ) α.1).restrictScalars Λ) = 𝔫 • ⊤ := by …Mentions: OpenIdeals, PatchingModule.componentMapModule
- lemma
PatchingModule.mem_smul_topline 185 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Ultrafilter,TopologicalSpace,IsLocalRing,IsNoetherianRing,T2Space,Module.Free,HasQuotient.Quotient,Ideal,Module.annihilator, Module.UniformlyBoundedRank,CompactSpace,IsTopologicalRing, PatchingModule,Iff,Membership.mem,Submodule,HSMul.hSMuland 5 moreProof uses:
Iff.intro,Submodule.map,Subtype,RingHom.id,Submodule.subtype,LinearMap,Submodule.mem_map_of_mem,LinearMap.proj,mem_of_le_of_mem,Submodule.smul_mono,le_rfl,le_top,Eq.mp,congrFun',congrArg,Eq.trans,Submodule.map.congr_simp,Eq.refl,Submodule.map_smul'',Finsetand 111 more190 instances, coercions and auxiliary constants left out.
Tactic trace: 56 steps
Open to load the checked before-and-after goal states.
- lemma
PatchingModule.ker_map_mkQline 267 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Ultrafilter,TopologicalSpace,IsLocalRing,IsNoetherianRing,T2Space,Module.Free,HasQuotient.Quotient,Ideal,Module.annihilator, Module.UniformlyBoundedRank,CompactSpace,IsTopologicalRing,Eq,Submodule, PatchingModule,LinearMap.ker,HSMul.hSMuland 4 moreProof uses:
le_antisymm, OpenIdeals, PatchingModule.Component,IsOpen,Membership.mem, PatchingModule.submodule,Subtype.mk, PatchingModule.componentMapModule,congr_fun,LinearMap,OfNat.ofNat,congr_arg,Subtype,Eq.mp,congrArg, PatchingModule.ker_componentMapModule_mkQ,Eq.mpr,id,propext, PatchingModule.mem_smul_top and 30 more143 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
- def
PatchingModule.quotientToline 295 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Ultrafilter,TopologicalSpace,IsLocalRing,IsNoetherianRing,NonarchimedeanRing,T2Space,Module.Free,HasQuotient.Quotient,Ideal,Module.annihilator, Module.UniformlyBoundedRank,CompactSpace,LinearMap,RingHom.id, PatchingModule,Submodule,HSMul.hSMuland 1 moreProof uses:
Submodule.liftQ, PatchingModule.map,Submodule.mkQ47 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- def
PatchingModule.quotientEquivline 305 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Ultrafilter,TopologicalSpace,IsLocalRing,IsNoetherianRing,NonarchimedeanRing,T2Space,Module.Free,HasQuotient.Quotient,Ideal,Module.annihilator, Module.UniformlyBoundedRank,CompactSpace,LinearEquiv,RingHom.id, PatchingModule,Submodule,HSMul.hSMuland 1 moreProof uses:
LinearEquiv.ofBijective, PatchingModule.quotientTo46 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- def
PatchingModule.quotientEquivOverline 317 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Ultrafilter,TopologicalSpace,IsLocalRing,IsNoetherianRing,NonarchimedeanRing,T2Space,Module.Free,HasQuotient.Quotient,Ideal,Module.annihilator, Module.UniformlyBoundedRank,LinearEquiv,RingHom.id,Submodule,HSMul.hSMul,Top.top,CompactSpaceand 2 moreProof uses:
LinearEquiv.trans, PatchingModule.quotientEquiv,LinearEquiv.restrictScalars, PatchingModule.mapEquiv,LinearEquiv.symm, PatchingModule.constEquiv49 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- def
PatchingAlgebra.quotientToline 327 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsLocalRing,Algebra,Ultrafilter,Ideal,HasQuotient.Quotient,Ideal.map,RingHom,Algebra.algebraMap, PatchingAlgebraProof uses:
Ideal.Quotient.lift, PatchingAlgebra.map,Ideal.Quotient.mk24 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
- def
PatchingAlgebra.quotientToOverline 348 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsLocalRing,Algebra,Ultrafilter,Ideal,AlgEquiv,HasQuotient.Quotient,Ideal.map,RingHom,Algebra.algebraMap,IsNoetherianRing,TopologicalSpace,IsTopologicalRing,CompactSpace, IsLocalRing.IsAdicTopology, PatchingAlgebraProof uses:
Nontrivial,RingHom.comp,RingEquiv.toRingHom,AlgEquiv.toRingEquiv,AlgEquiv.symm, PatchingAlgebra.constEquiv, PatchingAlgebra.mapEquiv, PatchingAlgebra.quotientTo28 instances, coercions and auxiliary constants left out.
- lemma
PatchingAlgebra.surjective_quotientToOverline 366 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsLocalRing,Algebra,TopologicalSpace,IsTopologicalRing,CompactSpace, IsLocalRing.IsAdicTopology,Ultrafilter, Algebra.UniformlyBoundedRank,Ideal,AlgEquiv,HasQuotient.Quotient,Ideal.map,RingHom,Algebra.algebraMap,IsNoetherianRing,Function.Surjective, PatchingAlgebra, PatchingAlgebra.quotientToOverProof uses:
Nontrivial,RingHom.domain_nontrivial,RingEquiv.toRingHom,AlgEquiv.toRingEquiv,IsLocalRing.of_surjective',AlgEquiv.symm,AlgEquiv.surjective,IsLocalHom,Ideal.Quotient.mk,IsLocalHom.of_surjective,Ideal.Quotient.mk_surjective,Function.Surjective.comp, PatchingAlgebra.constEquiv, PatchingAlgebra.mapEquiv, PatchingAlgebra.quotientTo,RingEquiv,RingEquiv.surjective,Ideal.Quotient.lift_surjective_of_surjective, PatchingAlgebra.map, PatchingAlgebra.map_surjective48 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.