Macaulay2 » Documentation
Packages » DGAlgebras » Semifree resolutions of DG modules » adjoinGenerators
next | previous | forward | backward | up | index | toc

adjoinGenerators -- Adjoin new free generators to a DG module with prescribed differentials

Description

This is the module-theoretic analog of adjoinVariables on a DG algebra. For each z in cycleList of hom-degree d, the output has a fresh generator in hom-degree d + 1 whose differential is z. If z is indeed a cycle then the new generator witnesses its homology class as a boundary, so homology classes supported on cycleList are killed.

Existing generator indices and their differentials are preserved verbatim: the first #M.Degrees generators of Mnew correspond to those of M, so code that references (M.natural)_i for old indices i continues to work when lifted to Mnew.

i1 : R = QQ[x]

o1 = R

o1 : PolynomialRing
i2 : A = koszulComplexDGA R

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

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

o3 = {Base ring => R               }
      DG algebra => R[T   ]
                       1,1
                                 1
      Natural module => (R[T   ])
                            1,1
      Generator degrees => {{0, 0}}
      Differentials on gens => {0}

o3 : DGModule
i4 : natGens = apply(rank M.natural, i -> (M.natural)_i)

o4 = {| 1 |}

o4 : List
i5 : Mnew = adjoinGenerators(M, {x * natGens#0})

o5 = {Base ring => R                       }
      DG algebra => R[T   ]
                       1,1
                                 2
      Natural module => (R[T   ])
                            1,1
      Generator degrees => {{0, 0}, {1, 1}}
      Differentials on gens => {0, | x |}
                                   | 0 |

o5 : DGModule
i6 : #Mnew.Degrees

o6 = 2
i7 : first Mnew.Degrees#1

o7 = 1

The new generator sits in hom-degree 1 and its differential is the cycle x * e_0 in M.natural.

Caveat

Only supported when M.natural is a free A.natural-module (i.e. M was built by freeDGModule or a previous adjoinGenerators call). Each entry of cycleList must be a cycle; otherwise the output differential will not satisfy d^2 = 0.

See also

Ways to use adjoinGenerators:

  • adjoinGenerators(DGModule,List)

For the programmer

The object adjoinGenerators 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:5553:0.