Macaulay2 » Documentation
Packages » DGAlgebras » Module-like operations on DG modules
next | previous | forward | backward | up | index | toc

Module-like operations on DG modules -- Basic queries (generators, rank, degrees, homogeneity) extended to DG modules and their sub- and quotient modules

Every DGModule (and its DGSubmodule / DGQuotientModule variants) carries an underlying graded A.natural-module, accessible via M.natural. The standard Module methods — numgens, rank, degrees, isHomogeneous, super, cover, relations — are lifted directly onto the DG types, so code written against ordinary modules can often be reused on DG objects unchanged.

Two DG-specific predicates are added:

isFreeDGModule — is the underlying M.natural a free graded A.natural-module? Every DGModule built via freeDGModule satisfies this; user-built DGModules with non-free .natural slots are tolerated by isWellDefined as long as the differential closes.

isZero — does the DG object have zero natural generators? Consistent across DGModule, DGSubmodule, DGQuotientModule, and DGIdeal, so predicates can be written generically.

i1 : R = ZZ/101[x, y]

o1 = R

o1 : PolynomialRing
i2 : A = koszulComplexDGA R

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

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

o3 = {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}, {1, 0}, {2, 0}}
      Differentials on gens => {0, 0, 0}

o3 : DGModule
i4 : numgens M

o4 = 3
i5 : rank M

o5 = 3
i6 : degrees M

o6 = {{0, 0}, {1, 0}, {2, 0}}

o6 : List
i7 : isHomogeneous M

o7 = true
i8 : isFreeDGModule M

o8 = true
i9 : isZero M

o9 = false

On quotient DG modules, super and cover both return the ambient DGModule, and relations returns the matrix of the killed inclusion — mirroring M2's cokernel encoding of a quotient.

i10 : Anat = A.natural

o10 = Anat

o10 : PolynomialRing, 2 skew commutative variable(s)
i11 : Mone = freeDGModule(A, {0})

o11 = {Base ring => R               }
       DG algebra => Anat
                             1
       Natural module => Anat
       Generator degrees => {{0, 0}}
       Differentials on gens => {0}

o11 : DGModule
i12 : S = dgSubmodule(Mone, matrix {{x_Anat, y_Anat}})

o12 = DGSubmodule of ambient DGModule
      Degrees  => {{0, 1}, {0, 1}}
                      2
      natural  => Anat
      inclusion => | x y |

o12 : DGSubmodule
i13 : Q = Mone / S

o13 = DGQuotientModule Q = M / S
      Q.natural = cokernel | x y |
      Degrees   = {{0, 0}}

o13 : DGQuotientModule
i14 : super Q === Mone

o14 = true
i15 : cover Q === Mone

o15 = true
i16 : relations Q

o16 = | x y |

                 1         2
o16 : Matrix Anat  <-- Anat

See also

Menu


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