next | previous | forward | backward | up | index | toc

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

## Synopsis

• Usage:
h = masseyTripleProduct(A,h1,h2,h3)
• Inputs:
• A, an instance of the type DGAlgebra,
• h1, ,
• h2, ,
• h3, ,
• Outputs:
• h, , The return value is either the homology class of the Massey triple product defined by the inputs or a cycle representing the homology class.

## 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) -- used 0.444116s (cpu); 0.443737s (thread); 0s (gc) Finding easy relations : 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

## For the programmer

The object masseyTripleProduct is .