Given an existing DGAlgebra A, the package supports several ways to derive new DG algebras from it. All of these constructions preserve the graded-commutative and Leibniz structure by design; most perform safety checks before returning.
baseChange moves a DG algebra along a ring map on its base: given A over R and a ring map phi: R -> S (or simply a target ring S, in which case map(S, R) is used), baseChange returns a DG algebra over S whose generator list and differentials are obtained by transporting scalars along phi.
subDGAlgebra produces a sub-DG algebra of A generated by a chosen subset of the DG generators. The subset must be d-closed: it is an error if the differential of a kept generator uses a dropped one. restrictDifferential is a synonym. truncateGenerators is a convenience wrapper: truncateGenerators(A, n) calls subDGAlgebra with the generators of hom-degree strictly greater than n.
killHomologyAtDegree targets a specific hom-degree n: it computes minimal representatives of H_n(A) and adjoins variables in hom-degree n+1 whose differentials are those representatives, producing a new DG algebra with H_n = 0.
All four constructions take optional arguments InitializeDegreeZeroHomology and InitializeComplex controlling how much of the downstream cache is eagerly populated by the internal call to setDiff.
Two low-level predicates round out the family: isValidDGAlgebra performs a structural-invariant check (keys and types), and isWellDefinedDifferential performs the semantic d^2 = 0 check on every generator. Both are called internally by isWellDefined(DGAlgebra).
|
|
|
|
|
|
Moving a Koszul DG algebra from a polynomial ring to a complete intersection factor preserves d^2 = 0 because the differential expressions d(T_i) = x_i remain valid in S.
The source of this document is in /build/reproducible-path/macaulay2-1.26.05+ds/M2/Macaulay2/packages/DGAlgebras/doc.m2:6464:0.