Macaulay2 » Documentation
Packages » DGAlgebras » Semifree resolutions of DG modules » killCycles(DGModule)
next | previous | forward | backward | up | index | toc

killCycles(DGModule) -- Adjoin free generators to kill the lowest nonvanishing homology of a DG module

Description

The construction mirrors killCycles(DGAlgebra) for DG modules. Scanning from StartDegree upwards, the method computes prune homology(n, M) until it finds the first degree n with nontrivial homology. It then lifts the minimal homology generators provided by the pruning map back to cycles in M_n and hands them to adjoinGenerators, producing a new DG module in which those classes become boundaries.

A single call kills homology at one degree. Iterating with successive StartDegree values is how semifreeResolution and minimalSemifreeResolution build resolutions.

i1 : R = QQ[x]

o1 = R

o1 : PolynomialRing
i2 : A = koszulComplexDGA R

o2 = {Ring => R                    }
      Underlying algebra => R[T   ]
                               1,1
      Differential => {x}

o2 : DGAlgebra
i3 : M = freeDGModule(A, {0})

o3 = {Base ring => R               }
      DG algebra => R[T   ]
                       1,1
                                 1
      Natural module => (R[T   ])
                            1,1
      Generator degrees => {{0, 0}}
      Differentials on gens => {0}

o3 : DGModule
i4 : natGens = apply(rank M.natural, i -> (M.natural)_i)

o4 = {| 1 |}

o4 : List
i5 : M2 = adjoinGenerators(M, {x * natGens#0})

o5 = {Base ring => R                       }
      DG algebra => R[T   ]
                       1,1
                                 2
      Natural module => (R[T   ])
                            1,1
      Generator degrees => {{0, 0}, {1, 1}}
      Differentials on gens => {0, | x |}
                                   | 0 |

o5 : DGModule
i6 : prune homology(0, M2)

o6 = cokernel | x |

                            1
o6 : R-module, quotient of R
i7 : M3 = killCycles(M2, StartDegree => 1, EndDegree => 2)

o7 = {Base ring => R                                   }
      DG algebra => R[T   ]
                       1,1
                                 3
      Natural module => (R[T   ])
                            1,1
      Generator degrees => {{0, 0}, {1, 1}, {2, 1}}
      Differentials on gens => {0, | x |, | -T_(1,1) |}
                                   | 0 |  |     1    |
                                   | 0 |  |     0    |

o7 : DGModule
i8 : prune homology(1, M3) == 0

o8 = true

M2 has H_0 = R/(x) = k and no higher homology to kill, so M3 agrees with M2 in this example. In settings where H_1 is nontrivial, killCycles adjoins one hom-degree-2 generator per minimal H_1 class.

Caveat

Raises an error when StartDegree > EndDegree. The input must be a free DG module for the underlying homology computation to extract representative cycles.

See also

Ways to use this method:

  • killCycles(DGModule) -- Adjoin free generators to kill the lowest nonvanishing homology of a DG module

The source of this document is in /build/reproducible-path/macaulay2-1.26.05+ds/M2/Macaulay2/packages/DGAlgebras/doc.m2:5624:0.