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.0106011 seconds Computing generators in degree 2 : -- used 0.0269055 seconds Computing generators in degree 3 : -- used 0.0256574 seconds o5 = true |
i6 : cycleList = getGenerators(A) Computing generators in degree 1 : -- used 0.00179012 seconds Computing generators in degree 2 : -- used 0.015785 seconds Computing generators in degree 3 : -- used 0.0162195 seconds Computing generators in degree 4 : -- used 0.00798765 seconds Computing generators in degree 5 : -- used 0.00700137 seconds Computing generators in degree 6 : -- used 0.00642986 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.00184413 seconds Computing generators in degree 2 : -- used 0.0160559 seconds Computing generators in degree 3 : -- used 0.0368288 seconds Computing generators in degree 4 : -- used 0.00150291 seconds Computing generators in degree 5 : -- used 0.00147325 seconds Computing generators in degree 6 : -- used 0.00147471 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.00813792 seconds Computing generators in degree 2 : -- used 0.0171949 seconds Computing generators in degree 3 : -- used 0.0156639 seconds o13 = false |
i14 : cycleList = getGenerators(A) Computing generators in degree 1 : -- used 0.00139233 seconds Computing generators in degree 2 : -- used 0.0106495 seconds Computing generators in degree 3 : -- used 0.0104629 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.00139854 seconds Computing generators in degree 2 : -- used 0.0106156 seconds Computing generators in degree 3 : -- used 0.0105246 seconds |