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.0107094 seconds Computing generators in degree 2 : -- used 0.0270987 seconds Computing generators in degree 3 : -- used 0.0259968 seconds o5 = true |
i6 : cycleList = getGenerators(A) Computing generators in degree 1 : -- used 0.00180757 seconds Computing generators in degree 2 : -- used 0.016055 seconds Computing generators in degree 3 : -- used 0.0164612 seconds Computing generators in degree 4 : -- used 0.00874855 seconds Computing generators in degree 5 : -- used 0.0070702 seconds Computing generators in degree 6 : -- used 0.00654157 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.00189202 seconds Computing generators in degree 2 : -- used 0.0351725 seconds Computing generators in degree 3 : -- used 0.0174242 seconds Computing generators in degree 4 : -- used 0.00158489 seconds Computing generators in degree 5 : -- used 0.00150938 seconds Computing generators in degree 6 : -- used 0.00148514 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.00791649 seconds Computing generators in degree 2 : -- used 0.0169765 seconds Computing generators in degree 3 : -- used 0.0156051 seconds o13 = false |
i14 : cycleList = getGenerators(A) Computing generators in degree 1 : -- used 0.00138162 seconds Computing generators in degree 2 : -- used 0.0105995 seconds Computing generators in degree 3 : -- used 0.010465 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.00139271 seconds Computing generators in degree 2 : -- used 0.0105554 seconds Computing generators in degree 3 : -- used 0.0110297 seconds |