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.
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.010441 seconds
Computing generators in degree 2 : -- used 0.0254645 seconds
Computing generators in degree 3 : -- used 0.0413979 seconds
o5 = true
|
i6 : cycleList = getGenerators(A)
Computing generators in degree 1 : -- used 0.00137888 seconds
Computing generators in degree 2 : -- used 0.0142681 seconds
Computing generators in degree 3 : -- used 0.0141437 seconds
Computing generators in degree 4 : -- used 0.00724066 seconds
Computing generators in degree 5 : -- used 0.00622645 seconds
Computing generators in degree 6 : -- used 0.00595744 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.00135976 seconds
Computing generators in degree 2 : -- used 0.0137248 seconds
Computing generators in degree 3 : -- used 0.0329271 seconds
Computing generators in degree 4 : -- used 0.00155034 seconds
Computing generators in degree 5 : -- used 0.00121518 seconds
Computing generators in degree 6 : -- used 0.00114904 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.00669455 seconds
Computing generators in degree 2 : -- used 0.0147311 seconds
Computing generators in degree 3 : -- used 0.0327921 seconds
o13 = false
|
i14 : cycleList = getGenerators(A)
Computing generators in degree 1 : -- used 0.00113651 seconds
Computing generators in degree 2 : -- used 0.00981747 seconds
Computing generators in degree 3 : -- used 0.0163426 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.00293794 seconds
Computing generators in degree 2 : -- used 0.021851 seconds
Computing generators in degree 3 : -- used 0.0208097 seconds
|