Macaulay2 » Documentation
Packages » OldChainComplexes » manipulating chain complexes
next | previous | forward | backward | up | index | toc

# manipulating chain complexes

There are several natural ways to handle chain complexes; for details, see ChainComplex. Let's illustrate by making two chain complexes.

    i1 : R = QQ[x,y];

    i2 : M = coker vars R

    o2 = cokernel | x y |

                                1
    o2 : R-module, quotient of R

    i3 : N = coker matrix {{x}}

    o3 = cokernel | x |

                                1
    o3 : R-module, quotient of R

    i4 : C = res M

          1      2      1
    o4 = R  <-- R  <-- R  <-- 0

         0      1      2      3

    o4 : ChainComplex

    i5 : D = res N

          1      1
    o5 = R  <-- R  <-- 0

         0      1      2

    o5 : ChainComplex

We can form the direct sum as follows.

    i6 : C ++ D

          2      3      1
    o6 = R  <-- R  <-- R  <-- 0

         0      1      2      3

    o6 : ChainComplex

We can shift the degree, using the traditional notation.

    i7 : E = C[5]

          1      2      1
    o7 = R  <-- R  <-- R  <-- 0

         -5     -4     -3     -2

    o7 : ChainComplex

    i8 : E_-4 == C_1

    o8 = true

The same syntax can be used to make a chain complex from a single module.

    i9 : R^4[1]

          4
    o9 = R

         1

    o9 : Complex

We can form various tensor products with **, and compute Tor using them.

    i10 : M ** D

    o10 = M <-- cokernel {1} | x y |

          0     1

    o10 : ChainComplex

    i11 : C ** D

           1      3      3      1
    o11 = R  <-- R  <-- R  <-- R  <-- 0 <-- 0

          0      1      2      3      4     5

    o11 : ChainComplex

    i12 : prune HH_1(C ** D)

    o12 = cokernel {1} | y x |

                                 1
    o12 : R-module, quotient of R

    i13 : prune HH_1(M ** D)

    o13 = cokernel {1} | y x |

                                 1
    o13 : R-module, quotient of R

    i14 : prune HH_1(C ** N)

    o14 = cokernel {1} | y x |

                                 1
    o14 : R-module, quotient of R

Of course, we can use Tor to get the same result.

    i15 : prune Tor_1(M,N)

    o15 = cokernel {1} | y x |

                                 1
    o15 : R-module, quotient of R

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/OldChainComplexes/docs/ov_chaincomplexes.m2:204:0.