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

# homology(SimplicialComplex,SimplicialComplex) -- compute the relative homology of two simplicial complexes

## Synopsis

• Function: homology
• Usage:
homology(Delta, Gamma)
• Inputs:
• Delta, ,
• Gamma, ,
• Outputs:

## Description

This method computes the relative homology of a simplicial complex $\Delta$ contracted along a subcomplex $\Gamma$.

Contracting an edge of a hexagon will not change the homology.

 i1 : S = ZZ[x_0..x_5]; i2 : Δ = simplicialComplex {x_0*x_1,x_1*x_2,x_2*x_3,x_3*x_4,x_4*x_5,x_5*x_0} o2 = simplicialComplex | x_4x_5 x_0x_5 x_3x_4 x_2x_3 x_1x_2 x_0x_1 | o2 : SimplicialComplex i3 : Γ = simplicialComplex {x_0*x_1} o3 = simplicialComplex | x_0x_1 | o3 : SimplicialComplex i4 : prune homology Δ o4 = -1 : 0 0 : 0 1 1 : ZZ o4 : GradedModule i5 : prune homology(Δ, Γ) o5 = -1 : 0 0 : 0 1 1 : ZZ o5 : GradedModule i6 : assert(prune homology(Δ, Γ) == prune homology Δ)

Gluing two antipodal points on a sphere introduces a non-trivial loop.

 i7 : S = ZZ[y_0..y_4]; i8 : Δ = simplicialComplex {y_0*y_1*y_3, y_0*y_2*y_3, y_1*y_2*y_3, y_0*y_1*y_4, y_0*y_2*y_4, y_1*y_2*y_4} o8 = simplicialComplex | y_1y_2y_4 y_0y_2y_4 y_0y_1y_4 y_1y_2y_3 y_0y_2y_3 y_0y_1y_3 | o8 : SimplicialComplex i9 : prune homology Δ o9 = -1 : 0 0 : 0 1 : 0 1 2 : ZZ o9 : GradedModule i10 : Γ = simplicialComplex {y_3, y_4} o10 = simplicialComplex | y_4 y_3 | o10 : SimplicialComplex i11 : prune homology(Δ, Γ) o11 = -1 : 0 0 : 0 1 1 : ZZ 1 2 : ZZ o11 : GradedModule

This method assumes that $\Gamma$ is a subcomplex of $\Delta$ and does not even check that the two abstract simplicial complexes are defined over the same ring.

## Caveat

This method does not check if $\Gamma$ is contained in $\Delta$.