Macaulay2 » Documentation
Packages » DGAlgebras :: masseyTripleProduct
next | previous | forward | backward | up | index | toc

masseyTripleProduct -- Computes the Massey triple product of a set of cycles or homology classes

Synopsis

Description

These functions compute the Massey triple product of either three homology classes or three cycles that represent nonzero homology classes for which the Massey triple product is defined.

For an example, we return to an example due to Lukas Katthan which was discussed in isGolod. First, we define the algebra:

i1 : Q = QQ[x_1,x_2,y_1,y_2,z]

o1 = Q

o1 : PolynomialRing
i2 : I = ideal (x_1*x_2^2,y_1*y_2^2,z^3,x_1*x_2*y_1*y_2,y_2^2*z^2,x_2^2*z^2,x_1*y_1*z,x_2^2*y_2^2*z)

               2     2   3             2 2   2 2          2 2
o2 = ideal (x x , y y , z , x x y y , y z , x z , x y z, x y z)
             1 2   1 2       1 2 1 2   2     2     1 1    2 2

o2 : Ideal of Q
i3 : R = Q/I

o3 = R

o3 : QuotientRing
i4 : KR = koszulComplexDGA R

o4 = {Ring => R                          }
      Underlying algebra => R[T ..T ]
                               1   5
      Differential => {x , x , y , y , z}
                        1   2   1   2

o4 : DGAlgebra

The following are cycles:

i5 : z1 = z^2*T_5

      2
o5 = z T
        5

o5 : R[T ..T ]
        1   5
i6 : z2 = y_2^2*T_3

      2
o6 = y T
      2 3

o6 : R[T ..T ]
        1   5
i7 : z3 = x_2^2*T_1

      2
o7 = x T
      2 1

o7 : R[T ..T ]
        1   5

and z1*z2, z2*z3 vanish in homology:

i8 : (lifted12,lift12) = getBoundaryPreimage(KR,z1*z2)

o8 = (true, 0)

o8 : Sequence
i9 : (lifted23,lift23) = getBoundaryPreimage(KR,z2*z3)

               2
o9 = (true, x y T T T  - x x y T T T )
             2 2 1 2 3    1 2 2 2 3 4

o9 : Sequence

Note that the first return value of getBoundaryPreimage indicates that the inputs are indeed boundaries, and the second value is the lift of the boundary along the differential.

Given cycles z1,z2,z3 such that z1*z2 and z2*z3 are boundaries, the Massey triple product of the homology classes represented by z1,z2 and z3 is the homology class of lift12*z3 + z1*lift23. To see this, we compute and check:

i10 : z123 = masseyTripleProduct(KR,z1,z2,z3)
Finding easy relations           :      -- used 0.417276 seconds

             2
o10 = x x y z T T T T
       1 2 2   2 3 4 5

o10 : R[T ..T ]
         1   5
i11 : z123 == lift12*z3 + z1*lift23

o11 = true

One may also compute Massey triple products directly on elements of the homology algebra itself, as is seen with the command masseyTripleProduct:

i12 : H = HH(KR)

o12 = H

o12 : QuotientRing
i13 : h1 = homologyClass(KR,z1)

o13 = X
       4

o13 : H
i14 : h2 = homologyClass(KR,z2)

o14 = X
       3

o14 : H
i15 : h3 = homologyClass(KR,z3)

o15 = X
       2

o15 : H
i16 : h123 = masseyTripleProduct(KR,h1,h2,h3)

o16 = -X
        31

o16 : H
i17 : h123 == homologyClass(KR,z123)

o17 = true

Ways to use masseyTripleProduct :

For the programmer

The object masseyTripleProduct is a method function.