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

Computing module differentials and visualizing DG modules -- Differential matrices, element-wise differentials, and visualization helpers for DG modules

Once a DGModule M over a DGAlgebra A is built, the package supports two levels of access to the differential.

The matrix-level view is moduleDifferential: the call moduleDifferential(n, M) returns the hom-degree-n piece of d_M as a homogeneous matrix over A.ring whose source and target are the free A.ring-modules on the respective monomial bases of M_n and M_{n-1}. The block-structured variant moduleBlockDiff partitions this matrix into one summand per (i, v) label, where i indexes a generator of M.natural and v is a chunk-degree vector on the variables of A.natural. The pretty-printer displayModuleBlockDiff renders this labeled block matrix with one label per row and column.

The element-level view is diff(M, v): apply the differential directly to a homogeneous element v of M.natural via the Leibniz rule, returning a Vector in M.natural of hom-degree one less. This is the entry point used internally by chain-map checks and by homologyClass(DGModule,Vector).

Two lightweight inspection helpers summarize the generator layout: generatorTable prints a one-row-per-generator table with hom-degree, external degree, and differential; and dgModuleSummary tabulates, for each hom-degree in a requested range, the number of freshly adjoined generators at that degree and the rank of F_n as an A.ring-module.

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 : d2 = moduleDifferential(2, Mdg)

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

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

o6 = | x y |

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

o7 = true

Over a complete intersection, the semifree resolution of the residue field has well-defined differentials matching d^2 = 0 in every degree.

See also

Menu


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