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.022651 seconds
Computing generators in degree 2 : -- used 0.0553479 seconds
Computing generators in degree 3 : -- used 0.0545921 seconds
o5 = true
|
i6 : cycleList = getGenerators(A)
Computing generators in degree 1 : -- used 0.00410974 seconds
Computing generators in degree 2 : -- used 0.0342286 seconds
Computing generators in degree 3 : -- used 0.0349996 seconds
Computing generators in degree 4 : -- used 0.01708 seconds
Computing generators in degree 5 : -- used 0.0155495 seconds
Computing generators in degree 6 : -- used 0.0144769 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.00403848 seconds
Computing generators in degree 2 : -- used 0.0333402 seconds
Computing generators in degree 3 : -- used 0.0349013 seconds
Computing generators in degree 4 : -- used 0.00336518 seconds
Computing generators in degree 5 : -- used 0.00334228 seconds
Computing generators in degree 6 : -- used 0.0033412 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.0177711 seconds
Computing generators in degree 2 : -- used 0.0389727 seconds
Computing generators in degree 3 : -- used 0.0371958 seconds
o13 = false
|
i14 : cycleList = getGenerators(A)
Computing generators in degree 1 : -- used 0.00326518 seconds
Computing generators in degree 2 : -- used 0.0243313 seconds
Computing generators in degree 3 : -- used 0.0238414 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.00317322 seconds
Computing generators in degree 2 : -- used 0.0236883 seconds
Computing generators in degree 3 : -- used 0.0236482 seconds
|