A = setDiff(A, diffList)A = setDiff(A, diffList, InitializeComplex => false)Because the ring A.natural does not exist until after freeDGAlgebra runs, the differential cannot be passed to the constructor and must be set afterwards with setDiff. The list diffList supplies the image of each algebra generator; Leibniz and R-linearity extend this to every element of A.natural.
|
|
|
|
|
Here d(T_(1,i)) = x_i (so the Koszul piece on T_(1,*) is installed) and d(T_(3,1)) is the Koszul-relation 2-cycle x T_(1,2) T_(1,3) - y T_(1,1) T_(1,3) + z T_(1,1) T_(1,2), turning A into a Tate-resolution fragment for R/(x, y, z). Converting to a Complex shows the installed differentials:
|
|
|
Validity. The package does not check that the installed differential squares to zero; a user-supplied diffList that violates d^2 = 0 yields a malformed DG algebra with silently wrong downstream behavior. The chain-map conditions can be checked after the fact via isWellDefined(DGAlgebra).
Options. InitializeComplex controls whether setDiff eagerly builds all differential matrices up to maxDegree A (the sum of the hom-degrees of the odd-hom-degree generators). Set it to false to defer this computation when only low-degree information is needed:
|
|
InitializeDegreeZeroHomology controls whether the quotient ring H_0(A) = A_0 / image(d_1) is computed on the spot (a Grobner-basis computation, deferred to homologyAlgebra if turned off). Default: true. Turn it off if you have many hom-degree-1 generators and are not about to compute HH A as a DG algebra.
The order of entries in diffList must match the order of generators in gens A.natural (equivalently, of A.Degrees). For constructors that adjoin generators incrementally (adjoinVariables, acyclicClosure, killCycles), the new generators come after all existing ones in this ordering.
The object setDiff is a method function with options.
The source of this document is in /build/reproducible-path/macaulay2-1.26.05+ds/M2/Macaulay2/packages/DGAlgebras/doc.m2:1137:0.