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.028056 seconds Computing generators in degree 2 : -- used 0.0687248 seconds Computing generators in degree 3 : -- used 0.0677601 seconds o5 = true |
i6 : cycleList = getGenerators(A) Computing generators in degree 1 : -- used 0.00500498 seconds Computing generators in degree 2 : -- used 0.0419308 seconds Computing generators in degree 3 : -- used 0.043475 seconds Computing generators in degree 4 : -- used 0.0218481 seconds Computing generators in degree 5 : -- used 0.0200453 seconds Computing generators in degree 6 : -- used 0.0186569 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.00519104 seconds Computing generators in degree 2 : -- used 0.0428188 seconds Computing generators in degree 3 : -- used 0.106241 seconds Computing generators in degree 4 : -- used 0.00430112 seconds Computing generators in degree 5 : -- used 0.00428448 seconds Computing generators in degree 6 : -- used 0.0043482 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.0224743 seconds Computing generators in degree 2 : -- used 0.0476099 seconds Computing generators in degree 3 : -- used 0.0445492 seconds o13 = false |
i14 : cycleList = getGenerators(A) Computing generators in degree 1 : -- used 0.00398552 seconds Computing generators in degree 2 : -- used 0.0301275 seconds Computing generators in degree 3 : -- used 0.029881 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.0040311 seconds Computing generators in degree 2 : -- used 0.0300715 seconds Computing generators in degree 3 : -- used 0.0299049 seconds |