Skip to content

feat(AlgebraicTopology): homology in degree 0#37630

Open
joelriou wants to merge 48 commits intoleanprover-community:masterfrom
joelriou:sset-homology-zero
Open

feat(AlgebraicTopology): homology in degree 0#37630
joelriou wants to merge 48 commits intoleanprover-community:masterfrom
joelriou:sset-homology-zero

Conversation

@joelriou
Copy link
Copy Markdown
Contributor

@joelriou joelriou commented Apr 4, 2026

In this PR, we compute the singular homology of a topological space in degree 0 in terms of its path connected components. This follows from a similar result for the homology of simplicial sets.

This is a rough draft.


Open in Gitpod

@joelriou joelriou added WIP Work in progress t-algebraic-topology Algebraic topology labels Apr 4, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 4, 2026

PR summary 6b3e5a3312

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.AlgebraicTopology.SingularHomology.HomotopyInvariance -1710
7 files Mathlib.Algebra.Category.ModuleCat.Sheaf.Free Mathlib.Algebra.Category.ModuleCat.Sheaf.Generators Mathlib.Algebra.Category.ModuleCat.Sheaf.PullbackFree Mathlib.Algebra.Category.ModuleCat.Sheaf.Quasicoherent Mathlib.AlgebraicGeometry.Modules.Tilde Mathlib.AlgebraicTopology.SingularHomology.Basic Mathlib.AlgebraicTopology.SingularHomology.HomotopyInvarianceTopCat
1
Mathlib.AlgebraicTopology.SimplicialSet.PiZero 3
Mathlib.CategoryTheory.Limits.Preserves.SigmaConst (new file) 466
Mathlib.AlgebraicTopology.SimplicialSet.Homology.Basic (new file) 1086
Mathlib.AlgebraicTopology.SimplicialSet.Homology.HomologyZero (new file) 1091
Mathlib.AlgebraicTopology.SimplicialSet.Homology.HomotopyInvariance 1137
Mathlib.AlgebraicTopology.SingularHomology.HomologyZero (new file) 1715

Declarations diff

+ Homeomorph.continousMap
+ Path
+ TopCat.stdSimplexHomeomorphI_symm_one
+ TopCat.stdSimplexHomeomorphI_symm_zero
+ TopCat.stdSimplexHomeomorphI_vertex_one
+ TopCat.stdSimplexHomeomorphI_vertex_zero
+ chainComplex
+ chainComplexFunctor
+ chainComplexFunctorAdjunction
+ chainComplexXCofan
+ chainComplex_hom_ext
+ coforkπ₀
+ coforkπ₀Functor
+ congr_homologyMap
+ congr_sSetHomologyMap
+ freeFunctor_map
+ freeFunctor_obj
+ homology
+ homologyData₀
+ homologyFunctor
+ homologyMap
+ homologyMap_comp
+ homologyMap_id
+ homology₀Iso
+ homology₀ε
+ instance :
+ instance : (chainComplexFunctor C).Additive := by
+ instance : Unique (stdSimplex ℝ (Fin (⦋0⦌.len + 1)))
+ instance [HasCoproducts.{w} C] (R : C) :
+ instance [HasCoproducts.{w} C] {α β : Type w} (f : α → β) :
+ instance [PathConnectedSpace X] : (toSSet.obj X).IsConnected := by
+ instance [PathConnectedSpace X] : IsIso (X.singularHomology₀ε R)
+ instance [PathConnectedSpace X] : Nonempty (ZerothHomotopy X)
+ instance [PathConnectedSpace X] : Subsingleton (ZerothHomotopy X)
+ instance [X.IsConnected] : IsIso (X.homology₀ε R) := by
+ instance [X.IsConnected] : Nonempty (π₀ X) := ⟨π₀.mk (Classical.arbitrary _)⟩
+ isColimitChainComplexXCofan
+ isColimitCoforkπ₀
+ isColimitCoforkπ₀Functor
+ isColimitCokernelCoforkChainComplexDOneZero
+ isColimitSigmaConstCokernelCofork
+ isConnected_iff
+ isConnected_iff_nonempty_unique
+ lift
+ lift_mk
+ mk
+ mk_surjective
+ pathEquiv
+ rec
+ sSetChainComplexMap
+ sigmaConstCokernelCofork
+ singularHomology₀Iso
+ singularHomology₀Iso_sigma_desc_id
+ singularHomology₀ε
+ sound
+ toSSetObjEdgeEquiv
+ toSSetObjEdgeEquiv'
+ toSSetObjEquiv_naturality_apply
+ toSSetObjEquiv_symm_naturality
+ toSSetObjEquiv_δ_apply
+ toSSetObj₁Equiv
+ toSSetObj₁Equiv_apply_one
+ toSSetObj₁Equiv_apply_zero
+ toπ₀NatTrans
+ zerothHomotopyEquiv
+ δ_one_toSSetObj₁Equiv.symm
+ δ_zero_toSSetObj₁Equiv.symm
+ ιChainComplex
+ ιChainComplex_d
+ ι_chainComplexMap_f
+ ι_sigmaConstCokernelCofork_π
+ ι_sigmaConstCokernelCofork_π_eq_zero
+ π₀.comp_fromChainComplexXZero
+ π₀.d_fromChainComplexXZero
+ π₀.fromChainComplexXZero
+ π₀.nonempty_iff
++ chainComplexMap
++-- congr_homologyMap_singularChainComplexFunctor
++-- singularChainComplexFunctorObjMap
- SSet.singularChainComplexFunctor
- SSet.singularChainComplexFunctorAdjunction
- instance : (SSet.singularChainComplexFunctor C).Additive := by

You can run this locally as follows
## summary with just the declaration names:
./scripts/pr_summary/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/pr_summary/declarations_diff.sh long <optional_commit>

The doc-module for scripts/pr_summary/declarations_diff.sh contains some details about this script.


Increase in tech debt: (relative, absolute) = (11.00, 0.00)
Current number Change Type
6779 11 backward.isDefEq.respectTransparency

Current commit e97d90992f
Reference commit 6b3e5a3312

You can run this locally as

./scripts/reporting/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

note: file Mathlib/AlgebraicTopology/SingularHomology/HomotopyInvariance.lean` was renamed to `Mathlib/AlgebraicTopology/SimplicialSet/Homology/HomotopyInvariance.lean without a module deprecation
Please create a follow-up pull request adding one. Thanks!

@mathlib-dependent-issues mathlib-dependent-issues bot added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Apr 4, 2026
@mathlib-dependent-issues
Copy link
Copy Markdown

mathlib-dependent-issues bot commented Apr 4, 2026

@github-actions github-actions bot added the large-import Automatically added label for PRs with a significant increase in transitive imports label Apr 4, 2026
@github-actions github-actions bot removed the large-import Automatically added label for PRs with a significant increase in transitive imports label Apr 4, 2026
joelriou and others added 21 commits April 5, 2026 10:38
Co-authored-by: Dagur Asgeirsson <dagurtomas@gmail.com>
Co-authored-by: Dagur Asgeirsson <dagurtomas@gmail.com>
Co-authored-by: Dagur Asgeirsson <dagurtomas@gmail.com>
Co-authored-by: Vlad Tsyrklevich <vlad902@gmail.com>
…iance.lean

Co-authored-by: Vlad Tsyrklevich <vlad902@gmail.com>
Co-authored-by: Vlad Tsyrklevich <vlad902@gmail.com>
Co-authored-by: Vlad Tsyrklevich <vlad902@gmail.com>
Co-authored-by: Vlad Tsyrklevich <vlad902@gmail.com>
Co-authored-by: Vlad Tsyrklevich <vlad902@gmail.com>
@mathlib-merge-conflicts
Copy link
Copy Markdown

This pull request has conflicts, please merge master and resolve them.

@mathlib-merge-conflicts mathlib-merge-conflicts bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Apr 11, 2026
@github-actions github-actions bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Apr 11, 2026
@github-actions github-actions bot added the file-removed A Lean module was (re)moved without a `deprecated_module` annotation label Apr 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) file-removed A Lean module was (re)moved without a `deprecated_module` annotation t-algebraic-topology Algebraic topology WIP Work in progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant