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

moduleBlockDiff -- The hom-degree-n differential of a DG module as a labeled block matrix

Description

A block-structured refinement of moduleDifferential. The source of the resulting map is a direct sum of small free A.ring-modules, one per pair {i, v}, where i is the generator index of M.natural and v is a tuple of exponents giving the chunk-degrees of A.natural-monomials contributing to F_n. Composing with matrix recovers exactly moduleDifferential(n, M).

Results are cached in M.cache#"moduleBlockDiffs" per n, so repeated calls are cheap.

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 => 3)

o4 = {Base ring => R                                                                                    }
      DG algebra => R[T   ..T   ]
                       1,1   1,2
                                       6
      Natural module => (R[T   ..T   ])
                            1,1   1,2
      Generator degrees => {{0, 0}, {2, 2}, {2, 2}, {4, 4}, {4, 4}, {4, 4}}
      Differentials on gens => {0, | xT_(1,1) |, | yT_(1,2) |, |     0    |, |     0    |, |     0    |}
                                   |     0    |  |     0    |  | xT_(1,1) |  | yT_(1,2) |  |     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    |

o4 : DGModule
i5 : b2 = moduleBlockDiff(Mdg, 2)

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

             2      3
o5 : Matrix R  <-- R
i6 : matrix b2 == moduleDifferential(2, Mdg)

o6 = true
i7 : srcIdx = indices source b2

o7 = {{0, {2}}, {1, {0}}, {2, {0}}}

o7 : List
i8 : all(srcIdx, l -> #l == 2 and instance(l#0, ZZ) and instance(l#1, List))

o8 = true

See also

Ways to use moduleBlockDiff:

  • moduleBlockDiff(DGModule,ZZ)

For the programmer

The object moduleBlockDiff 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:6339:0.