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.0129326 seconds
Computing generators in degree 2 : -- used 0.0322326 seconds
Computing generators in degree 3 : -- used 0.0718441 seconds
o5 = true
|
i6 : cycleList = getGenerators(A)
Computing generators in degree 1 : -- used 0.0022955 seconds
Computing generators in degree 2 : -- used 0.0198659 seconds
Computing generators in degree 3 : -- used 0.0206286 seconds
Computing generators in degree 4 : -- used 0.01022 seconds
Computing generators in degree 5 : -- used 0.00905322 seconds
Computing generators in degree 6 : -- used 0.0085876 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.00235677 seconds
Computing generators in degree 2 : -- used 0.0203466 seconds
Computing generators in degree 3 : -- used 0.0215086 seconds
Computing generators in degree 4 : -- used 0.00202206 seconds
Computing generators in degree 5 : -- used 0.0019547 seconds
Computing generators in degree 6 : -- used 0.00196391 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.00973302 seconds
Computing generators in degree 2 : -- used 0.0207793 seconds
Computing generators in degree 3 : -- used 0.0194069 seconds
o13 = false
|
i14 : cycleList = getGenerators(A)
Computing generators in degree 1 : -- used 0.00174406 seconds
Computing generators in degree 2 : -- used 0.0132083 seconds
Computing generators in degree 3 : -- used 0.0130836 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.00174171 seconds
Computing generators in degree 2 : -- used 0.013143 seconds
Computing generators in degree 3 : -- used 0.013189 seconds
|