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

# HH Complex -- homology of a complex

## Synopsis

• Function: homology
• Usage:
H = HH C
• Inputs:
• C, ,
• Outputs:
• H, ,

## Description

The homology complex $H$ is defined by ker dd^C/image dd^C. The differential of the homology complex is the zero map.

The first example is the complex associated to a triangulation of the real projective plane, having 6 vertices, 15 edges, and 10 triangles.

 i1 : d1 = matrix { {1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {-1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, -1, 0, 0, 0, -1, 0, 0, 0, 1, 1, 1, 0, 0, 0}, {0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 1, 1, 0}, {0, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, -1, 0, 1}, {0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, -1, -1}} o1 = | 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 | | -1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 | | 0 -1 0 0 0 -1 0 0 0 1 1 1 0 0 0 | | 0 0 -1 0 0 0 -1 0 0 -1 0 0 1 1 0 | | 0 0 0 -1 0 0 0 -1 0 0 -1 0 -1 0 1 | | 0 0 0 0 -1 0 0 0 -1 0 0 -1 0 -1 -1 | 6 15 o1 : Matrix ZZ <-- ZZ i2 : d2 = matrix { {-1, -1, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -1, -1, 0, 0, 0, 0, 0, 0}, {1, 0, 1, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, -1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, -1, -1, 0, 0, 0}, {-1, 0, 0, 0, 0, 0, 0, -1, 0, 0}, {0, -1, 0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 0, 0}, {0, 0, -1, 0, 0, 0, 0, 0, -1, 0}, {0, 0, 0, 0, 0, -1, 0, 0, 1, 0}, {0, 0, 0, -1, 0, 0, -1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, -1, -1}, {0, 0, 0, 0, 0, 0, 0, -1, 0, 1}, {0, 0, 0, 0, -1, 0, 0, 0, 0, -1}} o2 = | -1 -1 0 0 0 0 0 0 0 0 | | 0 0 -1 -1 0 0 0 0 0 0 | | 1 0 1 0 0 0 0 0 0 0 | | 0 1 0 0 -1 0 0 0 0 0 | | 0 0 0 1 1 0 0 0 0 0 | | 0 0 0 0 0 -1 -1 0 0 0 | | -1 0 0 0 0 0 0 -1 0 0 | | 0 -1 0 0 0 1 0 0 0 0 | | 0 0 0 0 0 0 1 1 0 0 | | 0 0 -1 0 0 0 0 0 -1 0 | | 0 0 0 0 0 -1 0 0 1 0 | | 0 0 0 -1 0 0 -1 0 0 0 | | 0 0 0 0 0 0 0 0 -1 -1 | | 0 0 0 0 0 0 0 -1 0 1 | | 0 0 0 0 -1 0 0 0 0 -1 | 15 10 o2 : Matrix ZZ <-- ZZ i3 : C = complex {d1,d2} 6 15 10 o3 = ZZ <-- ZZ <-- ZZ 0 1 2 o3 : Complex i4 : dd^C 6 15 o4 = 0 : ZZ <---------------------------------------------------- ZZ : 1 | 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 | | -1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 | | 0 -1 0 0 0 -1 0 0 0 1 1 1 0 0 0 | | 0 0 -1 0 0 0 -1 0 0 -1 0 0 1 1 0 | | 0 0 0 -1 0 0 0 -1 0 0 -1 0 -1 0 1 | | 0 0 0 0 -1 0 0 0 -1 0 0 -1 0 -1 -1 | 15 10 1 : ZZ <------------------------------------- ZZ : 2 | -1 -1 0 0 0 0 0 0 0 0 | | 0 0 -1 -1 0 0 0 0 0 0 | | 1 0 1 0 0 0 0 0 0 0 | | 0 1 0 0 -1 0 0 0 0 0 | | 0 0 0 1 1 0 0 0 0 0 | | 0 0 0 0 0 -1 -1 0 0 0 | | -1 0 0 0 0 0 0 -1 0 0 | | 0 -1 0 0 0 1 0 0 0 0 | | 0 0 0 0 0 0 1 1 0 0 | | 0 0 -1 0 0 0 0 0 -1 0 | | 0 0 0 0 0 -1 0 0 1 0 | | 0 0 0 -1 0 0 -1 0 0 0 | | 0 0 0 0 0 0 0 0 -1 -1 | | 0 0 0 0 0 0 0 -1 0 1 | | 0 0 0 0 -1 0 0 0 0 -1 | o4 : ComplexMap i5 : H = HH C o5 = cokernel | 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 | <-- subquotient (| 0 1 0 0 0 0 0 0 0 0 |, | -1 -1 0 0 0 0 0 0 0 0 |) <-- image 0 | -1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 | | 1 0 0 0 0 0 0 0 0 0 | | 0 0 -1 -1 0 0 0 0 0 0 | | 0 -1 0 0 0 -1 0 0 0 1 1 1 0 0 0 | | 0 -1 1 0 -1 0 1 0 1 0 | | 1 0 1 0 0 0 0 0 0 0 | 2 | 0 0 -1 0 0 0 -1 0 0 -1 0 0 1 1 0 | | 0 0 0 0 0 1 0 0 0 0 | | 0 1 0 0 -1 0 0 0 0 0 | | 0 0 0 -1 0 0 0 -1 0 0 -1 0 -1 0 1 | | -1 0 -1 0 1 -1 -1 0 -1 0 | | 0 0 0 1 1 0 0 0 0 0 | | 0 0 0 0 -1 0 0 0 -1 0 0 -1 0 -1 -1 | | 0 0 0 0 1 0 0 0 0 0 | | 0 0 0 0 0 -1 -1 0 0 0 | | 0 0 0 1 0 0 0 0 1 1 | | -1 0 0 0 0 0 0 -1 0 0 | 0 | 0 1 -1 0 0 0 0 0 -1 0 | | 0 -1 0 0 0 1 0 0 0 0 | | 0 0 1 -1 -1 0 0 0 0 -1 | | 0 0 0 0 0 0 1 1 0 0 | | 0 0 0 0 0 0 0 1 0 0 | | 0 0 -1 0 0 0 0 0 -1 0 | | 0 0 0 0 0 0 0 0 0 1 | | 0 0 0 0 0 -1 0 0 1 0 | | 1 0 0 0 1 0 0 -1 0 -1 | | 0 0 0 -1 0 0 -1 0 0 0 | | 0 -1 1 0 -1 0 1 1 2 1 | | 0 0 0 0 0 0 0 0 -1 -1 | | 0 0 0 1 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 -1 0 1 | | 0 0 0 0 -1 1 1 1 1 2 | | 0 0 0 0 -1 0 0 0 0 -1 | 1 o5 : Complex i6 : dd^H == 0 o6 = true

To see that the first homology group has torsion, we compute a minimal presentation of the homology.

 i7 : Hpruned = prune HH C 1 o7 = ZZ <-- cokernel | 2 | 0 1 o7 : Complex i8 : dd^Hpruned == 0 o8 = true

By dualizing the minimal free resolution of a monomial ideal, we get a free complex with non-trivial homology. This particular complex is related to the local cohomology supported at the monomial ideal.

 i9 : S = ZZ/101[a..d, DegreeRank=>4]; i10 : I = intersect(ideal(a,b),ideal(c,d)) o10 = ideal (b*d, a*d, b*c, a*c) o10 : Ideal of S i11 : C = freeResolution (S^1/I) 1 4 4 1 o11 = S <-- S <-- S <-- S 0 1 2 3 o11 : Complex i12 : prune HH C o12 = cokernel | bd ad bc ac | 0 o12 : Complex i13 : Cdual = dual C 1 4 4 1 o13 = S <-- S <-- S <-- S -3 -2 -1 0 o13 : Complex i14 : prune HH Cdual o14 = cokernel {-1, -1, -1, -1} | d c b a | <-- cokernel {-1, -1, 0, 0} | b a 0 0 | {0, 0, -1, -1} | 0 0 d c | -3 -2 o14 : Complex i15 : prune HH_(-2) Cdual o15 = cokernel {-1, -1, 0, 0} | b a 0 0 | {0, 0, -1, -1} | 0 0 d c | 2 o15 : S-module, quotient of S