Macaulay2 » Documentation
Packages » DGAlgebras » Computing module differentials and visualizing DG modules » moduleDifferential
next | previous | forward | backward | up | index | toc

moduleDifferential -- The hom-degree-n differential of a DG module as a matrix over the base ring

Description

Two code paths are used internally:

When M comes from koszulComplexDGM (so M.module is set) and every generator differential is zero, d_n is the tensor product polyDifferential(n, A) \otimes id_{M.module}. This is the fast path.

For general free DG modules, d_n is computed monomial-by-monomial via the Leibniz rule, extracting A.ring-linear coefficients in the target basis. Results are cached per hom-degree in M.cache.diffs.

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

o1 = R

o1 : QuotientRing
i2 : k = R^1 / ideal(x, y)

o2 = cokernel | x y |

                            1
o2 : R-module, quotient of R
i3 : A = koszulComplexDGA R

o3 = {Ring => R                          }
      Underlying algebra => R[T   ..T   ]
                               1,1   1,2
      Differential => {x, y}

o3 : DGAlgebra
i4 : Mdg = minimalSemifreeResolution(A, k, EndDegree => 2)

o4 = {Base ring => R                                          }
      DG algebra => R[T   ..T   ]
                       1,1   1,2
                                       3
      Natural module => (R[T   ..T   ])
                            1,1   1,2
      Generator degrees => {{0, 0}, {2, 2}, {2, 2}}
      Differentials on gens => {0, | xT_(1,1) |, | yT_(1,2) |}
                                   |     0    |  |     0    |
                                   |     0    |  |     0    |

o4 : DGModule
i5 : d1 = moduleDifferential(1, Mdg)

o5 = | x y |

             1      2
o5 : Matrix R  <-- R
i6 : d2 = moduleDifferential(2, Mdg)

o6 = {1} | -y x 0 |
     {1} | x  0 y |

             2      3
o6 : Matrix R  <-- R
i7 : d1 * d2 == 0

o7 = true

Every column of d_{n-1} d_n is zero, which is the d^2 = 0 condition.

Caveat

Raises an error on non-free DG modules (for example, the natural module of a DGQuotientModule). In that setting, compute the differential at the element level via diff(Q, v) or work with dgComplex.

See also

Ways to use moduleDifferential:

  • moduleDifferential(ZZ,DGModule)

For the programmer

The object moduleDifferential is a method function.


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