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.0108631 seconds
Computing generators in degree 2 : -- used 0.0271273 seconds
Computing generators in degree 3 : -- used 0.0661105 seconds
o5 = true
|
i6 : cycleList = getGenerators(A)
Computing generators in degree 1 : -- used 0.00217201 seconds
Computing generators in degree 2 : -- used 0.0194683 seconds
Computing generators in degree 3 : -- used 0.019302 seconds
Computing generators in degree 4 : -- used 0.00923738 seconds
Computing generators in degree 5 : -- used 0.00821476 seconds
Computing generators in degree 6 : -- used 0.00759642 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.00239929 seconds
Computing generators in degree 2 : -- used 0.0184714 seconds
Computing generators in degree 3 : -- used 0.0202783 seconds
Computing generators in degree 4 : -- used 0.00189007 seconds
Computing generators in degree 5 : -- used 0.00181914 seconds
Computing generators in degree 6 : -- used 0.00175695 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.00771298 seconds
Computing generators in degree 2 : -- used 0.0165823 seconds
Computing generators in degree 3 : -- used 0.015499 seconds
o13 = false
|
i14 : cycleList = getGenerators(A)
Computing generators in degree 1 : -- used 0.00140059 seconds
Computing generators in degree 2 : -- used 0.0107429 seconds
Computing generators in degree 3 : -- used 0.0112623 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.00150149 seconds
Computing generators in degree 2 : -- used 0.011403 seconds
Computing generators in degree 3 : -- used 0.0113125 seconds
|