next | previous | forward | backward | up | top | index | toc | Macaulay2 website
CompleteIntersectionResolutions :: makeT

makeT -- make the CI operators on a complex

Synopsis

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 :

For the programmer

The object makeT is a method function.