The DGAlgebra is constructed as a polynomial ring over a ground ring that is already a polynomial ring, and allgens includes the generators of the subring.
In invocations of bracket and bracketMatrix it is useful to refer to the generators by reference to the lists formed by allGens, rather than by trying to name them directly, since there is a confusion between generators of A.natural and generators of (flattenRing A.natural)_0.
i1 : kk = ZZ/101 o1 = kk o1 : QuotientRing |
i2 : S = kk[x,y,z] o2 = S o2 : PolynomialRing |
i3 : R = S/ideal(x^2,y^2,z^2-x*y,x*z, y*z) o3 = R o3 : QuotientRing |
i4 : lastCyclesDegree = 1 o4 = 1 |
i5 : KR = koszulComplexDGA(ideal R) o5 = {Ring => S } Underlying algebra => S[T ..T ] 1 5 2 2 2 Differential => {x , y , - x*y + z , x*z, y*z} o5 : DGAlgebra |
i6 : A = acyclicClosure(KR, EndDegree => lastCyclesDegree); |
This causes the generators of the acyclic closure to be computed up to homological degree lastCycleDegree+1, to kill the cycles in lastCycleDegree. If S is graded, then the generators of A.natural have degreeLength 2, with the first component the homological degree.
Since A.natural is a polynomial ring over S, gens A.natural only lists the generators of homological degree >=1, whereas allgens (made with fl
i7 : g = gens(A.natural) o7 = {T , T , T , T , T , T , T , T , T , T } 1 2 3 4 5 6 7 8 9 10 o7 : List |
i8 : g/degree o8 = {{1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {2, 3}, {2, 3}, {2, 3}, {2, 3}, ------------------------------------------------------------------------ {2, 3}} o8 : List |
i9 : allgens A o9 = {x, y, z, T , T , T , T , T , T , T , T , T , T } 1 2 3 4 5 6 7 8 9 10 o9 : List |
i10 : G3 = allgens(A,2) o10 = {T , T , T , T , T } 6 7 8 9 10 o10 : List |
i11 : G3/degree o11 = {{2, 3}, {2, 3}, {2, 3}, {2, 3}, {2, 3}} o11 : List |
The object allgens is a method function.