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

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

## Synopsis

• Function: cohomology
• Usage:
cohomology(k,D,E)
• Inputs:
• Optional inputs:
• Degree => an integer, default value 0, this option is ignored by this particular function
• Outputs:
• ,

## Description

This method computes the relative cohomology of a simplicial complex $D$ contracted along a subcomplex $E$.

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

 i1 : R = ZZ[x_0..x_5]; i2 : Hexagon = 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 : Edge = simplicialComplex {x_0*x_1} o3 = simplicialComplex | x_0x_1 | o3 : SimplicialComplex i4 : prune cohomology(1, Hexagon) 1 o4 = ZZ o4 : ZZ-module, free i5 : prune cohomology(1, Hexagon, Edge) == prune cohomology(1,Hexagon) o5 = true

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

 i6 : S = ZZ[y_0..y_4]; i7 : Sphere = 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} o7 = 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 | o7 : SimplicialComplex i8 : prune cohomology(1, Sphere) o8 = 0 o8 : ZZ-module i9 : Poles = simplicialComplex {y_3, y_4} o9 = simplicialComplex | y_4 y_3 | o9 : SimplicialComplex i10 : prune cohomology(1, Sphere, Poles) 1 o10 = ZZ o10 : ZZ-module, free

This method assumes that $E$ is a subcomplex $D$, and may still run nonsensically. Note also that the complexes need not be defined over the same ring.

 i11 : T = ZZ[z_0..z_5]; i12 : Fish = simplicialComplex {z_0*z_1, z_1*z_2, z_2*z_3, z_3*z_0, z_0*z_4, z_0*z_5, z_4*z_5} o12 = simplicialComplex | z_4z_5 z_0z_5 z_0z_4 z_2z_3 z_0z_3 z_1z_2 z_0z_1 | o12 : SimplicialComplex i13 : prune cohomology(1, Fish, Hexagon) 2 o13 = ZZ o13 : ZZ-module, free i14 : inclusion = map(Hexagon, Fish, gens ring Hexagon); o14 : SimplicialMap simplicialComplex | x_4x_5 x_0x_5 x_3x_4 x_2x_3 x_1x_2 x_0x_1 | <--- simplicialComplex | z_4z_5 z_0z_5 z_0z_4 z_2z_3 z_0z_3 z_1z_2 z_0z_1 | i15 : isWellDefined inclusion o15 = false

## Caveat

This method does not check if $E$ is contained in $D$.