next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
KustinMiller :: kustinMillerComplex

kustinMillerComplex -- Compute Kustin-Miller resolution of the unprojection of I in J

Synopsis

Description

Compute Kustin-Miller resolution of the unprojection of I in J (or equivalently of J ⊂R/I) with unprojection variable T.

We have the following setup:

Assume R is a PolynomialRing over a field, the degrees of all variables positive and I inside J inside R two homogeneous ideals of R such that R/I and R/J are Gorenstein and dim(R/J)=dim(R/I)-1.

For a description of this resolution and how it is computed see for example Section 2.3 of

J. Boehm, S. Papadakis: On the structure of Stanley-Reisner rings associated to cyclic polytopes, http://arxiv.org/abs/0912.2152

It is also possible to specify minimal resolutions of I and J.

Note that kustinMillerComplex returns a chain complex over a new ring R**T0. So to avoid printing the variables of this ring when printing the chain complex just give a name to the ring (e.g., do S = ring cc to call it S).

We illustrate the process at the example described in Section 5.5 of

Papadakis, Kustin-Miller unprojection with complexes, J. Algebraic Geometry 13 (2004) 249-268, http://arxiv.org/abs/math/0111195

i1 : R = QQ[x_1..x_4,z_1..z_4]

o1 = R

o1 : PolynomialRing
i2 : I =  ideal(z_2*z_3-z_1*z_4,x_4*z_3-x_3*z_4,x_2*z_2-x_1*z_4,x_4*z_1-x_3*z_2,x_2*z_1-x_1*z_3)

o2 = ideal (z z  - z z , x z  - x z , x z  - x z , x z  - x z , x z  - x z )
             2 3    1 4   4 3    3 4   2 2    1 4   4 1    3 2   2 1    1 3

o2 : Ideal of R
i3 : betti res I

            0 1 2 3
o3 = total: 1 5 5 1
         0: 1 . . .
         1: . 5 5 .
         2: . . . 1

o3 : BettiTally
i4 : J = ideal (z_1..z_4)

o4 = ideal (z , z , z , z )
             1   2   3   4

o4 : Ideal of R
i5 : betti res J

            0 1 2 3 4
o5 = total: 1 4 6 4 1
         0: 1 4 6 4 1

o5 : BettiTally
i6 : cc=kustinMillerComplex(I,J,QQ[T]);
i7 : S=ring cc

o7 = S

o7 : PolynomialRing
i8 : cc

      1      9      16      9      1
o8 = S  <-- S  <-- S   <-- S  <-- S
                                   
     0      1      2       3      4

o8 : ChainComplex
i9 : betti cc

            0 1  2 3 4
o9 = total: 1 9 16 9 1
         0: 1 .  . . .
         1: . 9 16 9 .
         2: . .  . . 1

o9 : BettiTally
i10 : isExactRes cc

o10 = true
i11 : print cc.dd_1
| x_2z_1-x_1z_3 x_4z_1-x_3z_2 x_2z_2-x_1z_4 x_4z_3-x_3z_4 z_2z_3-z_1z_4 -x_1x_3+Tz_1 -x_1x_4+Tz_2 -x_2x_3+Tz_3 -x_2x_4+Tz_4 |
i12 : print cc.dd_2
{2} | -x_4 -z_2 0    z_4  0    0    -x_3 0    0    0    0    T    0    0    0    0    |
{2} | x_2  0    -z_3 0    z_4  -x_1 0    0    -x_2 0    0    0    T    0    0    0    |
{2} | x_3  z_1  0    -z_3 0    0    0    -x_3 -x_3 -x_4 0    0    0    T    0    -x_3 |
{2} | -x_1 0    z_1  0    -z_2 0    0    x_1  0    0    -x_2 0    0    0    T    0    |
{2} | 0    -x_1 -x_3 x_2  x_4  0    0    0    0    0    0    0    0    0    0    T    |
{2} | 0    0    0    0    0    z_2  z_3  0    z_4  0    0    -x_2 -x_4 0    0    z_4  |
{2} | 0    0    0    0    0    -z_1 0    z_3  0    z_4  0    0    x_3  -x_2 0    0    |
{2} | 0    0    0    0    0    0    -z_1 -z_2 0    0    z_4  x_1  0    0    -x_4 -z_2 |
{2} | 0    0    0    0    0    0    0    0    -z_1 -z_2 -z_3 0    0    x_1  x_3  0    |
i13 : print cc.dd_3
{3} | 0    z_2  0    -z_4 -T   0    x_3  0    0    |
{3} | -x_3 -x_4 0    0    0    -T   0    0    0    |
{3} | x_1  0    -x_2 0    0    0    -T   0    0    |
{3} | 0    0    -x_3 -x_4 0    0    0    -T   0    |
{3} | 0    -x_1 0    x_2  0    0    0    0    -T   |
{3} | -z_3 -z_4 0    0    0    -x_2 0    0    0    |
{3} | z_2  0    -z_4 0    0    0    -x_4 0    0    |
{3} | -z_1 0    0    -z_4 0    0    x_3  -x_2 0    |
{3} | 0    z_2  z_3  0    0    x_1  x_3  0    0    |
{3} | 0    -z_1 0    z_3  0    0    0    0    -x_3 |
{3} | 0    0    -z_1 -z_2 0    0    0    -x_1 0    |
{3} | 0    0    0    0    -x_4 -z_2 0    z_4  0    |
{3} | 0    0    0    0    x_2  0    -z_3 0    z_4  |
{3} | 0    0    0    0    x_3  z_1  0    -z_3 0    |
{3} | 0    0    0    0    -x_1 0    z_1  0    -z_2 |
{3} | 0    0    0    0    0    -x_1 -x_3 x_2  x_4  |
i14 : print cc.dd_4
{4} | -x_2x_4+Tz_4   |
{4} | x_2x_3-Tz_3    |
{4} | -x_1x_4+Tz_2   |
{4} | x_1x_3-Tz_1    |
{4} | -z_2z_3+z_1z_4 |
{4} | x_4z_3-x_3z_4  |
{4} | -x_2z_2+x_1z_4 |
{4} | x_4z_1-x_3z_2  |
{4} | -x_2z_1+x_1z_3 |

See also

Ways to use kustinMillerComplex :

  • kustinMillerComplex(ChainComplex,ChainComplex,PolynomialRing)
  • kustinMillerComplex(Ideal,Ideal,PolynomialRing)