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.0106189 seconds Computing generators in degree 2 : -- used 0.0272217 seconds Computing generators in degree 3 : -- used 0.0258925 seconds o5 = true |
i6 : cycleList = getGenerators(A)
Computing generators in degree 1 : -- used 0.00184552 seconds
Computing generators in degree 2 : -- used 0.0159647 seconds
Computing generators in degree 3 : -- used 0.0165881 seconds
Computing generators in degree 4 : -- used 0.00819694 seconds
Computing generators in degree 5 : -- used 0.00714303 seconds
Computing generators in degree 6 : -- used 0.00655008 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.00186373 seconds
Computing generators in degree 2 : -- used 0.0162148 seconds
Computing generators in degree 3 : -- used 0.030914 seconds
Computing generators in degree 4 : -- used 0.00152318 seconds
Computing generators in degree 5 : -- used 0.00153635 seconds
Computing generators in degree 6 : -- used 0.00152281 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.00795418 seconds Computing generators in degree 2 : -- used 0.017024 seconds Computing generators in degree 3 : -- used 0.0156385 seconds o13 = false |
i14 : cycleList = getGenerators(A)
Computing generators in degree 1 : -- used 0.0014122 seconds
Computing generators in degree 2 : -- used 0.0105331 seconds
Computing generators in degree 3 : -- used 0.0104613 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.00139956 seconds Computing generators in degree 2 : -- used 0.0105432 seconds Computing generators in degree 3 : -- used 0.0105932 seconds |