# makeT -- make the CI operators on a complex

## Synopsis

• Usage:
T = makeT(ff,F,i)
T = makeT(ff,F,t0,i)
• Inputs:
• ff, , 1xc matrix whose entries are a complete intersection in S
• F, , over S/ideal ff
• t0, , CI-operator on F for ff_0 to be preserved
• i, an integer, define CI operators from F_i \to F_{i-2}
• Outputs:
• L, a list, of CI operators F_i \to F_{i-2} corresponding to entries of ff

## Description

substitute matrices of two differentials of F into S = ring ff, compose them, and divide by entries of ff, in order. If the second Matrix argument t0 is present, use it as the first CI operator.

The degrees of the targets of the T_j are changed by the degrees of the f_j to make the T_j homogeneneous.

 i1 : S = ZZ/101[x,y,z]; i2 : ff = matrix"x3,y3,z3"; 1 3 o2 : Matrix S <--- S i3 : R = S/ideal ff; i4 : M = coker matrix"x,y,z;y,z,x"; i5 : betti (F = res M) 0 1 2 3 4 o5 = total: 2 3 5 6 8 0: 2 3 . . . 1: . . 5 6 . 2: . . . . 8 o5 : BettiTally i6 : T = makeT(ff,F,3); i7 : netList T +------------------------+ o7 = |{4} | 0 0 0 0 1 0 | | |{4} | 0 0 0 -1 0 0 | | |{4} | 0 0 0 0 0 1 | | +------------------------+ |{4} | 0 1 0 0 0 0 | | |{4} | 1 0 0 0 0 0 | | |{4} | 0 0 1 0 0 0 | | +------------------------+ |{4} | 0 -1 0 0 -1 0 || |{4} | -1 0 0 1 0 0 || |{4} | 0 0 -1 0 0 -1 || +------------------------+ i8 : isHomogeneous T_2 o8 = true

## Caveat

Script assumes that ring F == (ring ff)/(ideal ff). It might be more useful to return the operators as matrices over S rather than over R, since this is what we'd need for things like matrixFactorization (where this process currently done on the fly, not calling makeT)

## Ways to use makeT :

• "makeT(Matrix,ChainComplex,ZZ)"

## For the programmer

The object makeT is .