Macaulay2 » Documentation
Packages » DGAlgebras » Semifree resolutions of DG modules » semifreeResolution
next | previous | forward | backward | up | index | toc

semifreeResolution -- Build a semifree DG module resolving a module over the base ring

Description

Starts from a free DG module with one hom-degree-0 generator per generator of M, adjoins hom-degree-1 generators whose differentials are the columns of presentation M lifted to A.natural (killing the presentation relations), and then iterates killCycles(DGModule) from StartDegree through EndDegree.

This is the module-theoretic analog of acyclicClosure on a DG algebra. The output is a semifree DG module but is not guaranteed to be minimal over A: relation columns are adjoined even when they are already boundaries under the DG algebra differential. For a minimal resolution, use minimalSemifreeResolution.

i1 : R = QQ[x]

o1 = R

o1 : PolynomialRing
i2 : M = R^1 / ideal(x)

o2 = cokernel | x |

                            1
o2 : R-module, quotient of R
i3 : Mdg = semifreeResolution(koszulComplexDGA R, M, EndDegree => 3)

o3 = {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    |

o3 : DGModule
i4 : prune homology(0, Mdg)

o4 = cokernel | x |

                            1
o4 : R-module, quotient of R
i5 : all(1..3, n -> prune homology(n, Mdg) == 0)

o5 = true

Over a complete intersection, the resolution is infinite but the truncation up to any requested EndDegree is acyclic in positive hom-degrees up to that bound.

i6 : R = QQ[x, y] / ideal(x^2, y^2)

o6 = R

o6 : QuotientRing
i7 : k = R^1 / ideal(x, y)

o7 = cokernel | x y |

                            1
o7 : R-module, quotient of R
i8 : Mdg = semifreeResolution(koszulComplexDGA R, k, EndDegree => 3)

o8 = {Base ring => R                                                                                                                              }
      DG algebra => R[T   ..T   ]
                       1,1   1,2
                                       10
      Natural module => (R[T   ..T   ])
                            1,1   1,2
      Generator degrees => {{0, 0}, {1, 1}, {1, 1}, {2, 1}, {2, 1}, {2, 2}, {2, 2}, {4, 4}, {4, 4}, {4, 4}}
      Differentials on gens => {0, | x |, | y |, | -T_(1,1) |, | -T_(1,2) |, | xT_(1,1) |, | yT_(1,2) |, |     0    |, |     0    |, |     0    |}
                                   | 0 |  | 0 |  |     1    |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |
                                   | 0 |  | 0 |  |     0    |  |     1    |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |
                                   | 0 |  | 0 |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |
                                   | 0 |  | 0 |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |
                                   | 0 |  | 0 |  |     0    |  |     0    |  |     0    |  |     0    |  | xT_(1,1) |  | yT_(1,2) |  |     0    |
                                   | 0 |  | 0 |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |  | xT_(1,1) |  | yT_(1,2) |
                                   | 0 |  | 0 |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |
                                   | 0 |  | 0 |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |
                                   | 0 |  | 0 |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |  |     0    |

o8 : DGModule
i9 : all(1..3, i -> prune homology(i, Mdg) == 0)

o9 = true

The Module-only form infers the DG algebra from ring M:

i10 : R = QQ[x]

o10 = R

o10 : PolynomialRing
i11 : M = R^1 / ideal(x)

o11 = cokernel | x |

                             1
o11 : R-module, quotient of R
i12 : Mdg = semifreeResolution(M, EndDegree => 2)

o12 = {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    |

o12 : DGModule
i13 : Mdg.ring === R

o13 = true
i14 : Mdg.dgAlgebra.ring === R

o14 = true

Caveat

The output is not minimal in general; use minimalSemifreeResolution when a minimal presentation is required. The base ring of M must agree with A.ring in the two-argument form.

See also

Ways to use semifreeResolution:

  • semifreeResolution(DGAlgebra,Module)
  • semifreeResolution(Module)

For the programmer

The object semifreeResolution is a method function with options.


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