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.0133956 seconds Computing generators in degree 2 : -- used 0.0798759 seconds Computing generators in degree 3 : -- used 0.0272593 seconds o5 = true |
i6 : cycleList = getGenerators(A) Computing generators in degree 1 : -- used 0.00195581 seconds Computing generators in degree 2 : -- used 0.0177949 seconds Computing generators in degree 3 : -- used 0.0181374 seconds Computing generators in degree 4 : -- used 0.00948953 seconds Computing generators in degree 5 : -- used 0.00817523 seconds Computing generators in degree 6 : -- used 0.00738591 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.00199331 seconds Computing generators in degree 2 : -- used 0.017999 seconds Computing generators in degree 3 : -- used 0.018194 seconds Computing generators in degree 4 : -- used 0.00171154 seconds Computing generators in degree 5 : -- used 0.00167835 seconds Computing generators in degree 6 : -- used 0.00167294 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.00834428 seconds Computing generators in degree 2 : -- used 0.0181917 seconds Computing generators in degree 3 : -- used 0.0165476 seconds o13 = false |
i14 : cycleList = getGenerators(A) Computing generators in degree 1 : -- used 0.00148993 seconds Computing generators in degree 2 : -- used 0.0112974 seconds Computing generators in degree 3 : -- used 0.011173 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.00149139 seconds Computing generators in degree 2 : -- used 0.0112769 seconds Computing generators in degree 3 : -- used 0.0111962 seconds |