This function currently just finds the elements whose boundary give the product of every pair of cycles that are chosen as generators. Eventually, all higher Massey operations will also be computed. The maximum degree of a generating cycle is specified in the option GenDegreeLimit, if needed.
Golod rings are defined by being those rings whose Koszul complex KR has a trivial Massey operation. Also, the existence of a trivial Massey operation on a DG algebra A forces the multiplication on H(A) to be trivial. An example of a ring R such that H(KR) has trivial multiplication, yet KR does not admit a trivial Massey operation is unknown. Such an example cannot be monomially defined, by a result of Jollenbeck and Berglund.
This is an example of a Golod ring. It is Golod since it is the Stanley-Reisner ideal of a flag complex whose 1-skeleton is chordal [Jollenbeck-Berglund].
i1 : Q = ZZ/101[x_1..x_6] o1 = Q o1 : PolynomialRing |
i2 : I = ideal (x_3*x_5,x_4*x_5,x_1*x_6,x_3*x_6,x_4*x_6) o2 = ideal (x x , x x , x x , x x , x x ) 3 5 4 5 1 6 3 6 4 6 o2 : Ideal of Q |
i3 : R = Q/I o3 = R o3 : QuotientRing |
i4 : A = koszulComplexDGA(R) o4 = {Ring => R } Underlying algebra => R[T , T , T , T , T , T ] 1 2 3 4 5 6 Differential => {x , x , x , x , x , x } 1 2 3 4 5 6 isHomogeneous => true o4 : DGAlgebra |
i5 : isHomologyAlgebraTrivial(A,GenDegreeLimit=>3) Computing generators in degree 1 : -- used 0.0328092 seconds Computing generators in degree 2 : -- used 0.19659 seconds Computing generators in degree 3 : -- used 0.0707404 seconds o5 = true |
i6 : cycleList = getGenerators(A) Computing generators in degree 1 : -- used 0.0055176 seconds Computing generators in degree 2 : -- used 0.045785 seconds Computing generators in degree 3 : -- used 0.0477166 seconds Computing generators in degree 4 : -- used 0.0235882 seconds Computing generators in degree 5 : -- used 0.0216057 seconds Computing generators in degree 6 : -- used 0.0201613 seconds o6 = {x T , x T , x T , x T , x T , -x T T , -x T T , -x T T , -x T T , - 5 4 5 3 6 4 6 3 6 1 6 1 3 5 3 4 6 3 4 6 1 4 ------------------------------------------------------------------------ x T T + x T T , - x T T + x T T , x T T T , x T T T - x T T T } 6 4 5 5 4 6 6 3 5 5 3 6 6 1 3 4 6 3 4 5 5 3 4 6 o6 : List |
i7 : tmo = findTrivialMasseyOperation(A) Computing generators in degree 1 : -- used 0.00560452 seconds Computing generators in degree 2 : -- used 0.0461141 seconds Computing generators in degree 3 : -- used 0.0482324 seconds Computing generators in degree 4 : -- used 0.00463232 seconds Computing generators in degree 5 : -- used 0.00463498 seconds Computing generators in degree 6 : -- used 0.00458876 seconds o7 = {{3} | 0 0 0 0 0 0 0 0 0 0 |, {4} | 0 0 0 0 0 {3} | 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 {3} | 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 {3} | 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 {3} | 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 {3} | 0 0 0 0 0 0 0 -x_6 0 0 | {4} | 0 0 0 0 0 {3} | 0 0 0 0 0 0 0 0 0 -x_6 | {4} | x_6 0 0 0 0 {3} | 0 0 0 0 0 0 -x_6 0 0 0 | {4} | 0 0 x_6 0 0 {3} | 0 0 0 0 0 0 0 0 -x_6 0 | {4} | 0 0 0 0 0 {3} | 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 {3} | 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 {3} | 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 {3} | 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 {3} | 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 {3} | 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 {3} | 0 0 0 0 0 0 0 0 0 0 | {3} | -x_5 0 x_6 -x_6 0 0 0 0 0 0 | {3} | 0 0 0 0 0 -x_6 0 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 0 | ------------------------------------------------------------------------ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x_6 0 0 0 0 0 0 -x_6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x_6 0 0 0 -x_6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x_6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x_5 0 x_6 0 -x_5 0 -x_6 0 ------------------------------------------------------------------------ 0 |, {5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |, 0 | {5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 | {5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 | {5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 | {5} | 0 0 0 0 0 0 x_6 0 0 0 0 0 0 -x_6 0 0 0 0 0 0 0 0 0 0 x_6 | 0 | {5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 | 0 | x_6 | 0 | 0 | 0 | 0 | 0 | 0 | ------------------------------------------------------------------------ 0, 0} o7 : List |
i8 : assert(tmo =!= null) |
Below is an example of a Teter ring (Artinian Gorenstein ring modulo its socle), and the computation in Avramov and Levin’s paper shows that H(A) does not have trivial multiplication, hence no trivial Massey operation can exist.
i9 : Q = ZZ/101[x,y,z] o9 = Q o9 : PolynomialRing |
i10 : I = ideal (x^3,y^3,z^3,x^2*y^2*z^2) 3 3 3 2 2 2 o10 = ideal (x , y , z , x y z ) o10 : Ideal of Q |
i11 : R = Q/I o11 = R o11 : QuotientRing |
i12 : A = koszulComplexDGA(R) o12 = {Ring => R } Underlying algebra => R[T , T , T ] 1 2 3 Differential => {x, y, z} isHomogeneous => true o12 : DGAlgebra |
i13 : isHomologyAlgebraTrivial(A) Computing generators in degree 1 : -- used 0.0228188 seconds Computing generators in degree 2 : -- used 0.0495256 seconds Computing generators in degree 3 : -- used 0.047079 seconds o13 = false |
i14 : cycleList = getGenerators(A) Computing generators in degree 1 : -- used 0.00429022 seconds Computing generators in degree 2 : -- used 0.0317086 seconds Computing generators in degree 3 : -- used 0.0318353 seconds 2 2 2 2 2 2 2 2 2 2 2 o14 = {x T , y T , z T , x*y z T , x*y z T T , x y*z T T , x*y z T T , 1 2 3 1 1 2 1 2 1 3 ----------------------------------------------------------------------- 2 2 2 2 2 2 x*y z T T T , x y*z T T T , x y z*T T T } 1 2 3 1 2 3 1 2 3 o14 : List |
i15 : assert(findTrivialMasseyOperation(A) === null) Computing generators in degree 1 : -- used 0.00429214 seconds Computing generators in degree 2 : -- used 0.0318053 seconds Computing generators in degree 3 : -- used 0.031824 seconds |