Macaulay2 » Documentation
Packages » DGAlgebras » Pruning DG modules, submodules, quotients, and maps
next | previous | forward | backward | up | index | toc

Pruning DG modules, submodules, quotients, and maps -- Minimizing presentations of DG types via prune and minimalPresentation

For each DG type T (DG algebra, DG module, DG submodule, DG quotient module, DG ideal, DG algebra map, DG module map), the package provides prune and its synonym minimalPresentation. The result is an object of the same type whose underlying presentation has had redundancy removed, where possible.

Every call to prune caches a pruningMap in the cache table of the pruned output, encoding the canonical comparison map (pruned) -> (original). For types where pruning does nothing (see below), the cached pruningMap is the identity; for types where it does something, the pruningMap is a well-defined DGModuleMap (or DGAlgebraMap) whose source is the pruned object and whose target is the original. This mirrors the convention used by prune applied to Complex objects from the Complexes package for Complex objects.

The two active cases are:

prune(DGSubmodule) trims the inclusion matrix to a minimal generating set of its column span. When the inclusion matrix is already minimal, prune is the identity.

prune(DGQuotientModule) first prunes the relations submodule and then additionally prunes toComplex Qp at the complex level, caching the result so that toComplex Qp returns a minimally presented complex.

The no-op cases, installed so that pruning always commutes with every constructor, are prune(DGModule), prune(DGAlgebra), prune(DGAlgebraMap), prune(DGModuleMap), and (already documented) prune(DGIdeal).

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 : Anat = A.natural

o3 = Anat

o3 : PolynomialRing, 2 skew commutative variable(s)
i4 : M = freeDGModule(A, {0})

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

o4 : DGModule
i5 : S = dgSubmodule(M, matrix {{1_Anat, x_Anat, y_Anat}})

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

o5 : DGSubmodule
i6 : Sp = prune S

o6 = DGSubmodule of ambient DGModule
     Degrees  => {{0, 0}}
                     1
     natural  => Anat
     inclusion => | 1 |

o6 : DGSubmodule
i7 : numcols (inclusion S).natural

o7 = 3
i8 : numcols (inclusion Sp).natural

o8 = 1
i9 : image (inclusion S).natural == image (inclusion Sp).natural

o9 = true

The image submodule of M.natural is unchanged; the presentation of S is reduced from three generators to one.

See also

Menu


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