Macaulay2 » Documentation
Packages » Complexes :: HH Complex
next | previous | forward | backward | up | index | toc

HH Complex -- homology of a complex

Synopsis

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

See also

Ways to use this method: