Integral singular homology as an object of `ModuleCat ℤ`
DefinitionSP4HomologyFor a topological space (in universe zero) and , SP4Homology.H k X is the integral singular homology group
the -th homology of the singular chain complex of with coefficients in , regarded as an object of the category of -modules. This is exactly Mathlib's singular homology functor AlgebraicTopology.singularHomologyFunctor with coefficient object the -module , applied to ; it is functorial in and homotopy invariant. The definition exists so that homological hypotheses and conclusions about the spaces of this mission can be stated in one fixed, auditable way.
Formalization Note SP4Homology.H k X : ModuleCat ℤ is ((singularHomologyFunctor (ModuleCat ℤ) k).obj (ModuleCat.of ℤ ℤ)).obj (TopCat.of X). Vanishing of a homology group is expressed categorically as IsZero (SP4Homology.H k X), which for a module means it is the zero module.
import Mathlib.AlgebraicTopology.SingularHomology.Basic
import Mathlib.Algebra.Category.ModuleCat.Abelian
import Mathlib.Algebra.Category.ModuleCat.Colimits
set_option autoImplicit false
open CategoryTheory AlgebraicTopology
namespace SP4Homology
/-- **Integral singular homology** `H_k(X; ℤ)` of a topological space `X` (in universe zero), as
an object of `ModuleCat ℤ`: the `k`-th singular homology functor of Mathlib
(`AlgebraicTopology.singularHomologyFunctor`) with coefficients in the `ℤ`-module `ℤ`, applied to
`X` (Hatcher, *Algebraic Topology*, §2.1, p. 108). -/
noncomputable def H (k : ℕ) (X : Type) [TopologicalSpace X] : ModuleCat.{0} ℤ :=
((singularHomologyFunctor (ModuleCat.{0} ℤ) k).obj (ModuleCat.of ℤ ℤ)).obj (TopCat.of X)
end SP4Homology