FLT/Mathlib/Algebra/Category/ModuleCat/Topology/Homology.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
17 declarations, 0 contain sorry, 0 declared as axioms
Kernels, cokernels and homology of topological modules
This file develops API for the concrete kernel and cokernel models of TopModuleCat:
TopModuleCat.cokerDesc: the universal property of the concrete quotientTopModuleCat.coker.TopModuleCat.cokerCongr: cokernels of morphisms identified under an isomorphism of the targets are isomorphic.TopModuleCat.cokerDescCLMandTopModuleCat.cokerDescBilinear: descending continuous linear maps and jointly continuous bilinear pairings along cokernel projections.HomologicalComplex.cyclesIsoKerandHomologicalComplex.homologyIsoCoker: the cycles and homology of a complex of topological modules identified with the kernel of the differential carrying the subspace topology, respectively the quotient of the cycles by the boundaries carrying the quotient topology.
Material destined for Mathlib.Algebra.Category.ModuleCat.Topology.Homology.
Imports (3)
Imported by 3 files
- def
TopModuleCat.cokerDescThe universal property of the concrete quotientTopModuleCat.coker: a morphism killing the range descends to the quotient line 46 sourceSource documentation
The universal property of the concrete quotient
TopModuleCat.coker: a morphism killing the range descends to the quotient.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,TopModuleCat,Quiver.Hom,Eq,CategoryTheory.CategoryStruct.comp,OfNat.ofNat,TopModuleCat.cokerProof uses:
CategoryTheory.Limits.IsColimit.desc,CategoryTheory.Limits.WalkingParallelPair,CategoryTheory.Limits.parallelPair,CategoryTheory.Limits.CokernelCofork.ofπ,TopModuleCat.cokerπ,TopModuleCat.isColimitCoker18 instances, coercions and auxiliary constants left out.
noncomputable def cokerDesc (φ : M ⟶ N) (ψ : N ⟶ P) (w : φ ≫ ψ = 0) : coker φ ⟶ P := …
- lemma
TopModuleCat.cokerπ_cokerDescline 50 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,TopModuleCat,Quiver.Hom,Eq,CategoryTheory.CategoryStruct.comp,OfNat.ofNat,TopModuleCat.coker,TopModuleCat.cokerπ, TopModuleCat.cokerDescProof uses:
CategoryTheory.Limits.IsColimit.fac,CategoryTheory.Limits.WalkingParallelPair,CategoryTheory.Limits.parallelPair,CategoryTheory.Limits.CokernelCofork.ofπ,TopModuleCat.comp_cokerπ,TopModuleCat.isColimitCoker,CategoryTheory.Limits.WalkingParallelPair.one17 instances, coercions and auxiliary constants left out.
- lemma
TopModuleCat.cokerDesc_applyline 55 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,TopModuleCat,Quiver.Hom,Eq,CategoryTheory.CategoryStruct.comp,OfNat.ofNat,TopModuleCat.toModuleCat,ContinuousLinearMap,RingHom.id,TopModuleCat.coker,CategoryTheory.ConcreteCategory.hom, TopModuleCat.cokerDesc,TopModuleCat.cokerπProof uses:
id,congrArg, TopModuleCat.cokerπ_cokerDesc36 instances, coercions and auxiliary constants left out.
- lemma
TopModuleCat.cokerπ_eq_zero_iffline 59 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,TopModuleCat,Quiver.Hom,TopModuleCat.toModuleCat,Iff,Eq,TopModuleCat.coker,ContinuousLinearMap,RingHom.id,CategoryTheory.ConcreteCategory.hom,TopModuleCat.cokerπ,OfNat.ofNat,LinearMap.range,TopModuleCat.Hom.hom,Membership.mem,SubmoduleProof uses:
Submodule.Quotient.mk_eq_zero34 instances, coercions and auxiliary constants left out.
- def
TopModuleCat.cokerCongrCokernels of morphisms identified under an isomorphism of the targets are isomorphic line 64 sourceSource documentation
Cokernels of morphisms identified under an isomorphism of the targets are isomorphic.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,TopModuleCat,Quiver.Hom,CategoryTheory.Iso,Eq,CategoryTheory.CategoryStruct.comp,CategoryTheory.Iso.hom,TopModuleCat.cokerProof uses:
CategoryTheory.Iso.mk, TopModuleCat.cokerDesc,TopModuleCat.cokerπ,CategoryTheory.Iso.inv12 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
noncomputable def cokerCongr {φ : M ⟶ N} {ψ : M ⟶ N'} (e : N ≅ N') (w : φ ≫ e.hom = ψ) : coker φ ≅ coker ψ where … - lemma
TopModuleCat.cokerπ_cokerCongr_homline 72 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,TopModuleCat,Quiver.Hom,CategoryTheory.Iso,Eq,CategoryTheory.CategoryStruct.comp,CategoryTheory.Iso.hom,TopModuleCat.coker,TopModuleCat.cokerπ, TopModuleCat.cokerCongrProof uses: TopModuleCat.cokerπ_cokerDesc
9 instances, coercions and auxiliary constants left out.
- lemma
TopModuleCat.isOpenQuotientMap_cokerπline 76 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,TopModuleCat,Quiver.Hom,IsOpenQuotientMap,TopModuleCat.toModuleCat,TopModuleCat.coker,LinearMap.range,RingHom.id,TopModuleCat.Hom.hom,ContinuousLinearMap,TopModuleCat.cokerπProof uses:
Submodule.isOpenQuotientMap_mkQ34 instances, coercions and auxiliary constants left out.
- lemma
TopModuleCat.cokerπ_surjective'line 79 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,TopModuleCat,Quiver.Hom,TopModuleCat.toModuleCat,TopModuleCat.coker,Exists,Eq,ContinuousLinearMap,RingHom.id,CategoryTheory.ConcreteCategory.hom,TopModuleCat.cokerπProof uses:
TopModuleCat.cokerπ_surjective19 instances, coercions and auxiliary constants left out.
- def
TopModuleCat.cokerDescCLMDescend a continuous linear map along cokernel projections on both sides line 87 sourceSource documentation
Descend a continuous linear map along cokernel projections on both sides.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,TopModuleCat,Quiver.Hom,ContinuousLinearMap,RingHom.id,TopModuleCat.toModuleCat,Eq,TopModuleCat.coker,CategoryTheory.ConcreteCategory.hom,TopModuleCat.cokerπ,OfNat.ofNat,LinearMap.range,TopModuleCat.Hom.homProof uses:
TopModuleCat.of, TopModuleCat.cokerDesc,TopModuleCat.ofHom,ContinuousLinearMap.comp52 instances, coercions and auxiliary constants left out.
noncomputable def cokerDescCLM (φ₂ : M₂ ⟶ N₂) (φ₃ : M₃ ⟶ N₃) (u : ↥N₂ →L[k] ↥N₃) (h : ∀ y, cokerπ φ₃ (u (φ₂ y)) = 0) : ↥(coker φ₂) →L[k] ↥(coker φ₃) := … - lemma
TopModuleCat.cokerDescCLM_applyline 94 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,TopModuleCat,Quiver.Hom,ContinuousLinearMap,RingHom.id,TopModuleCat.toModuleCat,Eq,TopModuleCat.coker,CategoryTheory.ConcreteCategory.hom,TopModuleCat.cokerπ,OfNat.ofNat,LinearMap.range,TopModuleCat.Hom.hom, TopModuleCat.cokerDescCLMProof uses:
id,congrArg,TopModuleCat.of,CategoryTheory.CategoryStruct.comp, TopModuleCat.cokerDesc,TopModuleCat.ofHom,ContinuousLinearMap.comp,CategoryTheory.ConcreteCategory.hom_ext, TopModuleCat.cokerπ_cokerDesc59 instances, coercions and auxiliary constants left out.
- lemma
TopModuleCat.continuous_cokerDescCLM_uncurryThe descended family of continuous linear maps has jointly continuous uncurried form line 103 sourceSource documentation
The descended family of continuous linear maps has jointly continuous uncurried form.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,TopModuleCat,Quiver.Hom,TopModuleCat.toModuleCat,ContinuousLinearMap,RingHom.id,Eq,TopModuleCat.coker,CategoryTheory.ConcreteCategory.hom,TopModuleCat.cokerπ,OfNat.ofNat,LinearMap.range,TopModuleCat.Hom.hom,Continuous,Prod,Prod.fst,Prod.snd, TopModuleCat.cokerDescCLMProof uses:
Iff.mp,Function.comp,Prod.map,id,IsOpenQuotientMap.continuous_comp_iff,IsOpenQuotientMap.prodMap,IsOpenQuotientMap.id, TopModuleCat.isOpenQuotientMap_cokerπ,Continuous.comp,LinearMap,ContinuousLinearMap.continuous51 instances, coercions and auxiliary constants left out.
lemma continuous_cokerDescCLM_uncurry (φ₂ : M₂ ⟶ N₂) (φ₃ : M₃ ⟶ N₃) (F : ↥N₁ → (↥N₂ →L[k] ↥N₃)) (h : ∀ σ y, cokerπ φ₃ (F σ (φ₂ y)) = 0) (hF : Continuous fun p : ↥N₁ × ↥N₂ ↦ F p.1 p.2) : Continuous fun p : ↥N₁ × ↥(coker φ₂) ↦ cokerDescCLM φ₂ φ₃ (F p.1) (h p.1) p.2 := …Mentions: TopModuleCat.cokerDescCLM
- def
TopModuleCat.cokerDescBilinearDescend a bilinear pairing, bundled as a morphism into the internal hom, along cokernel projections in all three slots line 112 sourceSource documentation
Descend a bilinear pairing, bundled as a morphism into the internal hom, along cokernel projections in all three slots.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,TopModuleCat,Quiver.Hom, TopModuleCat.linHom,Continuous,Prod,TopModuleCat.toModuleCat,RingHom.id,ContinuousLinearMap,CategoryTheory.ConcreteCategory.hom,Prod.fst,Prod.snd,Eq,TopModuleCat.coker,TopModuleCat.cokerπ,OfNat.ofNat,LinearMap.range,TopModuleCat.Hom.homProof uses: TopModuleCat.cokerDesc, TopModuleCat.homOfBilinear, TopModuleCat.cokerDescCLM
48 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
noncomputable def cokerDescBilinear {M₁ : TopModuleCat.{v} k} (φ₁ : M₁ ⟶ N₁) (φ₂ : M₂ ⟶ N₂) (φ₃ : M₃ ⟶ N₃) (F : N₁ ⟶ linHom N₂ N₃) (hF : Continuous fun p : ↥N₁ × ↥N₂ ↦ F p.1 p.2) (h₁ : ∀ (y : ↥M₁) (τ : ↥N₂), cokerπ φ₃ (F (φ₁ y) τ) = 0) (h₂ : ∀ (σ : ↥N₁) (y : ↥M₂), cokerπ φ₃ (F σ (φ₂ y)) = 0) : coker φ₁ ⟶ linHom (coker φ₂) (coker φ₃) := …Mentions: TopModuleCat.linHom
- lemma
TopModuleCat.cokerDescBilinear_applyline 133 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,TopModuleCat,Quiver.Hom, TopModuleCat.linHom,Continuous,Prod,TopModuleCat.toModuleCat,RingHom.id,ContinuousLinearMap,CategoryTheory.ConcreteCategory.hom,Prod.fst,Prod.snd,Eq,TopModuleCat.coker,TopModuleCat.cokerπ,OfNat.ofNat,LinearMap.range,TopModuleCat.Hom.hom, TopModuleCat.cokerDescBilinearProof uses:
rfl44 instances, coercions and auxiliary constants left out.
- def
HomologicalComplex.cyclesIsoKerThe cycles of a complex of topological modules, identified with the kernel of the differential carrying the subspace topology line 157 sourceSource documentation
The cycles of a complex of topological modules, identified with the kernel of the differential carrying the subspace topology.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,ComplexShape,HomologicalComplex,TopModuleCat,Eq,ComplexShape.next,CategoryTheory.Iso,HomologicalComplex.cycles,HomologicalComplex.sc,TopModuleCat.ker,HomologicalComplex.X,HomologicalComplex.dProof uses:
CategoryTheory.Limits.KernelFork.mapIsoOfIsLimit,CategoryTheory.Limits.KernelFork.ofι,HomologicalComplex.iCycles,TopModuleCat.kerι,HomologicalComplex.cyclesIsKernel,TopModuleCat.isLimitKer,CategoryTheory.Iso.refl,CategoryTheory.Arrow,CategoryTheory.Arrow.mk14 instances, coercions and auxiliary constants left out.
noncomputable def cyclesIsoKer (i j : ι) (hij : c.next i = j) : K.cycles i ≅ TopModuleCat.ker (K.d i j) := … - lemma
HomologicalComplex.cyclesIsoKer_hom_kerιline 162 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,ComplexShape,HomologicalComplex,TopModuleCat,Eq,ComplexShape.next,Quiver.Hom,HomologicalComplex.cycles,HomologicalComplex.sc,HomologicalComplex.X,CategoryTheory.CategoryStruct.comp,TopModuleCat.ker,HomologicalComplex.d,CategoryTheory.Iso.hom, HomologicalComplex.cyclesIsoKer,TopModuleCat.kerι,HomologicalComplex.iCyclesProof uses:
CategoryTheory.Limits.KernelFork.mapOfIsLimit_ι,CategoryTheory.Limits.KernelFork.ofι,TopModuleCat.kerι_comp,TopModuleCat.isLimitKer,CategoryTheory.CategoryStruct.id,CategoryTheory.Arrow,CategoryTheory.Arrow.mk16 instances, coercions and auxiliary constants left out.
- lemma
HomologicalComplex.cyclesIsoKer_hom_apply_coeline 167 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,ComplexShape,HomologicalComplex,TopModuleCat,Eq,ComplexShape.next,TopModuleCat.toModuleCat,HomologicalComplex.cycles,HomologicalComplex.sc,HomologicalComplex.X,Membership.mem,Submodule,LinearMap.ker,RingHom.id,TopModuleCat.Hom.hom,HomologicalComplex.d,ContinuousLinearMap,TopModuleCat.ker,CategoryTheory.ConcreteCategory.homand 3 moreProof uses:
id,congrArg,Quiver.Hom,CategoryTheory.CategoryStruct.comp,TopModuleCat.kerι, HomologicalComplex.cyclesIsoKer_hom_kerι42 instances, coercions and auxiliary constants left out.
- def
HomologicalComplex.homologyIsoCokerThe homology of a complex of topological modules, identified with the quotient of the cycles by the boundaries, carrying the quotient topology line 174 sourceSource documentation
The homology of a complex of topological modules, identified with the quotient of the cycles by the boundaries, carrying the quotient topology.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,ComplexShape,HomologicalComplex,TopModuleCat,Eq,ComplexShape.prev,CategoryTheory.Iso,HomologicalComplex.homology,HomologicalComplex.sc,TopModuleCat.coker,HomologicalComplex.X,HomologicalComplex.cycles,HomologicalComplex.toCyclesProof uses:
CategoryTheory.Limits.CokernelCofork.mapIsoOfIsColimit,CategoryTheory.Limits.CokernelCofork.ofπ,HomologicalComplex.homologyπ,TopModuleCat.cokerπ,HomologicalComplex.homologyIsCokernel,TopModuleCat.isColimitCoker,CategoryTheory.Iso.refl,CategoryTheory.Arrow,CategoryTheory.Arrow.mk14 instances, coercions and auxiliary constants left out.
noncomputable def homologyIsoCoker (i j : ι) (hij : c.prev j = i) : K.homology j ≅ TopModuleCat.coker (K.toCycles i j) := …