next | previous | forward | backward | up | index | toc

# HH_ZZ(SimplicialComplex,Ring) -- compute the reduced homology of an abstract simplicial complex

## Synopsis

• Function: homology
• Usage:
homology(i, Delta, R)
• Inputs:
• Outputs:
• , that is the $i$-th reduced homology group of $\Delta$ with coefficients in $R$

## Description

Each abstract simplicial complex $\Delta$ determines a chain complex $\widetilde C(\Delta, k)$ of free modules over its coefficient ring $k$. For all integers $i$, the $i$-th term of $\widetilde C(\Delta, k)$ has a basis corresponding to the $i$-dimensional faces of $\Delta$. When the optional argument $R$ is included, the chain complex is tensored with $R$. The reduced homology of $\Delta$ with coefficients in $R$ is, by definition, the homology of $\widetilde C(\Delta, k) \otimes R$.

The $2$-sphere has vanishing first homology, but non-trivial second homology. We obtain a triangulation of the $2$-sphere by taking the $2$-skeleton of the $3$-simplex. Since homology groups are typically expressed as a subquotient, we prune the output to obtain a minimal presentation.

 i1 : S = ZZ[a..h]; i2 : Δ = skeleton(2, simplexComplex(3, S)) o2 = simplicialComplex | bcd acd abd abc | o2 : SimplicialComplex i3 : prune homology(0, Δ) o3 = 0 o3 : ZZ-module i4 : prune homology(1, Δ) o4 = 0 o4 : ZZ-module i5 : prune homology(2, Δ) 1 o5 = ZZ o5 : ZZ-module, free i6 : assert(homology(2, Δ) === HH_2 Δ) i7 : prune homology(2, Δ, QQ) 1 o7 = QQ o7 : QQ-module, free i8 : prune homology(2, Δ, ZZ/2) ZZ 1 o8 = (--) 2 ZZ o8 : ---module, free 2 i9 : assert(prune homology(0, Δ) === ZZ^0) i10 : assert(prune homology(1, Δ) === ZZ^0) i11 : assert(prune homology(2, Δ) === ZZ^1)

The reduced homology of the Klein bottle has torsion.

 i12 : Γ = kleinBottleComplex S o12 = simplicialComplex | cgh agh cfh afh efg dfg aeg cdg bef adf bcf cde bde ace abd abc | o12 : SimplicialComplex i13 : prune homology(0, Γ) o13 = 0 o13 : ZZ-module i14 : prune homology(1, Γ) o14 = cokernel | 2 | | 0 | 2 o14 : ZZ-module, quotient of ZZ i15 : prune homology(1, Γ, QQ) 1 o15 = QQ o15 : QQ-module, free i16 : prune homology(1, Γ, ZZ/2) ZZ 2 o16 = (--) 2 ZZ o16 : ---module, free 2 i17 : assert(homology(1, Γ, ZZ/2) === HH_1(Γ, ZZ/2)) i18 : prune homology(2, Γ) o18 = 0 o18 : ZZ-module i19 : assert(prune homology(0, Γ) === ZZ^0) i20 : assert(prune homology(1, Γ, QQ) === QQ^1) i21 : assert(prune homology(1, Γ, ZZ/2) === (ZZ/2)^2) i22 : assert(prune homology(2, Γ) === ZZ^0)

There are two "trivial" simplicial complexes: the irrelevant complex has the empty set as a facet whereas the void complex has no faces. Every abstract simplicial complex other than the void complex has a unique face of dimension $-1$.

 i23 : irrelevant = simplicialComplex monomialIdeal gens S o23 = simplicialComplex | 1 | o23 : SimplicialComplex i24 : homology(-1, irrelevant) 1 o24 = ZZ o24 : ZZ-module, free i25 : assert(homology(-1, irrelevant) === ZZ^1) i26 : void = simplicialComplex monomialIdeal 1_S o26 = simplicialComplex 0 o26 : SimplicialComplex i27 : homology(-1, void) o27 = 0 o27 : ZZ-module i28 : assert(homology(-1, void) === ZZ^0)