Macaulay2 » Documentation
Packages » SimplicialComplexes :: HH_ZZ(SimplicialComplex,Ring)
next | previous | forward | backward | up | index | toc

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

Synopsis

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)

See also

Ways to use this method: