Macaulay2 » Documentation
Packages » Complexes :: Strategy for free resolutions over the integers
next | previous | forward | backward | up | index | toc

Strategy for free resolutions over the integers -- algorithm for computing free resolutions of ZZ-modules

Synopsis

Description

Every module over the integers has projective dimension at most one. This is the default strategy when the underlying ring is the integers, so in practice it never needs to be specified.

Our first example is the cokernel of a $3 \times 3$ matrix with positive small integer entries.

i1 : M = coker matrix{{8,4,9},{7,3,7},{6,9,5}}

o1 = cokernel | 8 4 9 |
              | 7 3 7 |
              | 6 9 5 |

                              3
o1 : ZZ-module, quotient of ZZ
i2 : F = freeResolution M -- uses Strategy => OverZZ

       1       1
o2 = ZZ  <-- ZZ
              
     0       1

o2 : Complex
i3 : assert isWellDefined F
i4 : dd^F

           1               1
o4 = 0 : ZZ  <---------- ZZ  : 1
                | 49 |

o4 : ComplexMap
i5 : g = augmentationMap F

                                         1
o5 = 0 : cokernel | 8 4 9 | <--------- ZZ  : 0
                  | 7 3 7 |    | 1 |
                  | 6 9 5 |    | 0 |
                               | 0 |

o5 : ComplexMap
i6 : assert isWellDefined g
i7 : assert(source g == F)
i8 : assert(target g == complex M)
i9 : assert isQuasiIsomorphism g

The next example shows that the projective dimension can be less than one. In other words, a free module can have a non-trivial presentation.

i10 : G = freeResolution coker matrix {{20, 15, 19}, {7, 3, 7}, {6, 9, 5}}

        1
o10 = ZZ  <-- 0
               
      0       1

o10 : Complex
i11 : length G

o11 = 0
i12 : G_0

        1
o12 = ZZ

o12 : ZZ-module, free
i13 : g = augmentationMap G

                                              1
o13 = 0 : cokernel | 20 15 19 | <---------- ZZ  : 0
                   | 7  3  7  |    | -1 |
                   | 6  9  5  |    | 0  |
                                   | 0  |

o13 : ComplexMap
i14 : assert isWellDefined g
i15 : assert isQuasiIsomorphism g

The final example involves a slightly larger matrix. The first matrix of the free resolution is the minimal presentation of the module.

i16 : n = random(ZZ^5, ZZ^3) * matrix{{21,3,0},{0,3,1},{0,0,7}} * random(ZZ^3, ZZ^10)

o16 = | 816 1500 1877 1533 534 876 897 935 1625 992 |
      | 291 534  589  546  114 582 435 487 463  313 |
      | 558 996  1098 1026 306 873 717 780 963  567 |
      | 840 1500 1759 1545 564 951 924 967 1606 907 |
      | 858 1524 1810 1572 624 822 876 898 1696 928 |

               5       10
o16 : Matrix ZZ  <-- ZZ
i17 : F = freeResolution coker n

        4       2
o17 = ZZ  <-- ZZ
               
      0       1

o17 : Complex
i18 : dd^F_1

o18 = | 147 0 |
      | 0   3 |
      | 0   0 |
      | 0   0 |

               4       2
o18 : Matrix ZZ  <-- ZZ
i19 : minimalPresentation coker n

o19 = cokernel | 147 0 |
               | 0   3 |
               | 0   0 |
               | 0   0 |

                               4
o19 : ZZ-module, quotient of ZZ
i20 : smithNormalForm(n, ChangeMatrix => {false,false})

o20 = | 147 0 0 |
      | 0   3 0 |
      | 0   0 1 |

               3       3
o20 : Matrix ZZ  <-- ZZ

See also