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

cycRes -- Compute the minimal cyclic polytope resolutions via unprojection

Synopsis

Description

Compute the minimal resolution of the Stanley-Reisner ring of the boundary of a cyclic polytope of dimension d with vertices the variables of R.

This is obtained by calling the unprojection step

Δ(d,m) and Δ(d-2,m-1) →Δ(d,m+1)

recursively.

If the Boolean Option UseBuchsbaumEisenbud is false then the procedure is called recursively until it terminates with a complete intersection Δ(0,r) or Δ(r-1,r) (then using the Koszul complex).

If UseBuchsbaumEisenbud=>true (the standard option) then the recursion terminates when reaching codimension 3 instead of unprojecting further (then using the Buchsbaum-Eisenbud structure theorem).

The Option verbose can be used to display the combinatorial unprojection structure of the cyclic polytope generated by the recursive procedure cycRes.

Δ(4,8):

i1 : R=QQ[x_1..x_8];
i2 : cc=cycRes(4,R,verbose=>1);

delta(2,{z, x_2, x_3, x_4, x_5})   +   delta(0,{z, x_2, x_3, x_4})   ->   delta(2,{z, x_2, x_3, x_4, x_5, x_6})


delta(4,{x_1, x_2, x_3, x_4, x_5, x_6, x_7})   +   delta(2,{z, x_2, x_3, x_4, x_5, x_6})   ->   delta(4,{x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8})
i3 : isExact cc

o3 = true
i4 : betti cc

            0  1  2  3 4
o4 = total: 1 16 30 16 1
         0: 1  .  .  . .
         1: .  .  .  . .
         2: . 16 30 16 .
         3: .  .  .  . .
         4: .  .  .  . 1

o4 : BettiTally

Δ(4,8) differentials:

i5 : R=QQ[x_1..x_8];
i6 : cc=cycRes(4,R);
i7 : isExact cc

o7 = true
i8 : S=ring cc

o8 = R

o8 : PolynomialRing
i9 : betti cc

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

o9 : BettiTally
i10 : print cc.dd_1
| x_2x_4x_6 x_3x_5x_7 x_1x_4x_6 x_2x_5x_7 x_1x_3x_6 x_2x_4x_7 x_1x_3x_5 x_2x_4x_8 x_3x_5x_8 -x_1x_4x_7 x_2x_5x_8 -x_1x_3x_7 x_1x_5x_7 x_3x_6x_8 x_4x_6x_8 x_2x_6x_8 |
i11 : print cc.dd_2
{3} | 0    x_1  0    0    0    0    -x_7 0    0   0    0    0    0    0   0    0    0    0    0    0    0    0    0    x_8  0    0    0    0    0    0    |
{3} | -x_1 0    x_2  0    0    0    0    -x_1 0   0    0    0    -x_1 0   0    0    0    0    0    0    0    0    0    0    x_8  0    0    0    0    0    |
{3} | 0    -x_2 0    x_3  0    0    0    0    0   0    0    0    0    0   0    0    0    0    0    0    -x_7 0    0    0    0    x_8  0    0    0    0    |
{3} | 0    0    -x_3 0    x_4  0    0    0    0   0    0    0    0    0   -x_1 0    0    0    0    0    0    0    0    0    0    0    x_8  0    0    0    |
{3} | 0    0    0    -x_4 0    x_5  0    0    0   0    0    0    0    0   0    0    0    0    0    0    0    0    -x_7 0    0    0    0    x_8  0    0    |
{3} | 0    0    0    0    -x_5 0    x_6  0    x_1 0    0    0    0    0   0    0    0    0    0    0    0    0    0    0    0    0    0    0    x_8  0    |
{3} | x_7  0    0    0    0    -x_6 0    0    0   0    0    0    0    0   0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    x_8  |
{3} | 0    0    0    0    0    0    0    0    0   0    0    x_5  0    0   0    0    0    0    -x_6 0    0    0    0    -x_6 0    0    0    0    -x_7 0    |
{3} | 0    0    0    0    0    0    0    0    0   -x_2 0    0    0    0   0    0    0    0    0    -x_6 0    0    0    0    -x_7 0    0    0    0    -x_1 |
{3} | 0    0    0    0    0    0    0    0    x_2 0    -x_3 0    0    x_5 0    0    0    0    0    0    -x_6 0    0    0    0    0    0    0    0    0    |
{3} | 0    0    0    0    0    0    0    0    0   x_3  0    -x_4 0    0   0    0    0    0    0    0    0    -x_6 0    0    0    0    -x_7 0    0    0    |
{3} | 0    0    0    0    0    0    0    -x_5 0   0    x_4  0    0    0   0    0    0    0    0    0    0    0    -x_6 0    0    0    0    0    0    0    |
{3} | 0    0    0    0    0    0    0    0    0   0    0    0    x_3  x_4 x_2  0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    |
{3} | 0    0    0    0    0    0    0    0    0   0    0    0    0    0   0    0    x_2  -x_4 0    x_5  0    0    0    0    0    0    0    -x_1 0    0    |
{3} | 0    0    0    0    0    0    0    0    0   0    0    0    0    0   0    -x_2 0    x_3  0    0    0    0    0    0    0    -x_1 0    0    0    0    |
{3} | 0    0    0    0    0    0    0    0    0   0    0    0    0    0   0    x_4  -x_3 0    x_4  0    0    x_5  0    0    0    0    0    0    0    0    |
i12 : print cc.dd_3
{4} | 0    0    0    0   -x_6 0    0    0    0    -x_8 0    0    0    0    0    0    |
{4} | 0    0    0    0   0    -x_7 0    0    0    0    -x_8 0    0    0    0    0    |
{4} | 0    x_1  0    0   0    0    0    0    0    0    0    -x_8 0    0    0    0    |
{4} | 0    0    0    0   0    0    0    -x_7 0    0    0    0    -x_8 0    0    0    |
{4} | x_1  0    0    0   0    0    0    0    0    0    0    0    0    -x_8 0    0    |
{4} | 0    0    0    0   -x_7 0    0    0    0    0    0    0    0    0    -x_8 0    |
{4} | 0    0    0    0   0    -x_1 0    0    0    0    0    0    0    0    0    -x_8 |
{4} | 0    0    x_4  0   x_6  0    0    0    0    0    0    0    0    0    0    0    |
{4} | x_5  0    0    0   0    x_6  0    0    0    0    0    0    0    0    0    0    |
{4} | 0    0    0    0   0    0    x_6  0    0    0    0    -x_7 0    0    0    0    |
{4} | 0    0    x_5  0   0    0    0    x_6  0    0    0    0    0    0    0    0    |
{4} | 0    0    0    0   0    0    0    0    x_6  0    0    0    0    -x_7 0    0    |
{4} | 0    x_2  -x_4 0   0    0    0    0    0    0    0    0    0    0    0    0    |
{4} | -x_2 0    x_3  0   0    0    0    0    0    0    0    0    0    0    0    0    |
{4} | x_4  -x_3 0    0   0    0    0    0    0    0    0    0    0    0    0    0    |
{4} | 0    0    0    x_3 0    0    0    0    0    0    x_1  0    0    0    0    0    |
{4} | 0    0    0    x_4 0    0    x_5  0    0    0    0    0    0    0    0    0    |
{4} | 0    0    0    x_2 0    0    0    0    0    0    0    0    x_1  0    0    0    |
{4} | 0    0    0    0   0    0    0    0    x_5  0    -x_1 0    0    0    0    0    |
{4} | 0    0    0    0   0    0    -x_2 0    0    0    0    0    0    0    x_1  0    |
{4} | 0    0    0    0   0    x_2  0    -x_3 0    0    0    0    0    0    0    0    |
{4} | 0    0    0    0   0    0    x_3  0    -x_4 0    0    0    0    0    0    0    |
{4} | 0    0    0    0   -x_5 0    0    x_4  0    0    0    0    0    0    0    0    |
{4} | 0    0    0    0   0    0    0    0    0    0    x_1  0    0    0    0    -x_7 |
{4} | 0    0    0    0   0    0    0    0    0    -x_1 0    x_2  0    0    0    0    |
{4} | 0    0    0    0   0    0    0    0    0    0    -x_2 0    x_3  0    0    0    |
{4} | 0    0    0    0   0    0    0    0    0    0    0    -x_3 0    x_4  0    0    |
{4} | 0    0    0    0   0    0    0    0    0    0    0    0    -x_4 0    x_5  0    |
{4} | 0    0    0    0   0    0    0    0    0    0    0    0    0    -x_5 0    x_6  |
{4} | 0    0    0    0   0    0    0    0    0    x_7  0    0    0    0    -x_6 0    |
i13 : print cc.dd_4
{5} | x_3x_6x_8  |
{5} | x_4x_6x_8  |
{5} | x_2x_6x_8  |
{5} | -x_1x_5x_7 |
{5} | -x_2x_4x_8 |
{5} | -x_3x_5x_8 |
{5} | x_1x_4x_7  |
{5} | -x_2x_5x_8 |
{5} | x_1x_3x_7  |
{5} | x_2x_4x_6  |
{5} | x_3x_5x_7  |
{5} | x_1x_4x_6  |
{5} | x_2x_5x_7  |
{5} | x_1x_3x_6  |
{5} | x_2x_4x_7  |
{5} | x_1x_3x_5  |
i14 : C=delta(4,R)

o14 = {x  x  x  x  , x  x  x  x  , x  x  x  x  , x  x  x  x  , x  x  x  x  ,
        1  2  3  4    1  2  4  5    2  3  4  5    1  2  5  6    2  3  5  6  
      -----------------------------------------------------------------------
      x  x  x  x  , x  x  x  x  , x  x  x  x  , x  x  x  x  , x  x  x  x  ,
       3  4  5  6    1  2  6  7    2  3  6  7    3  4  6  7    4  5  6  7  
      -----------------------------------------------------------------------
      x  x  x  x  , x  x  x  x  , x  x  x  x  , x  x  x  x  , x  x  x  x  ,
       1  2  3  8    1  3  4  8    1  4  5  8    1  5  6  8    1  2  7  8  
      -----------------------------------------------------------------------
      x  x  x  x  , x  x  x  x  , x  x  x  x  , x  x  x  x  , x  x  x  x  }
       2  3  7  8    3  4  7  8    4  5  7  8    1  6  7  8    5  6  7  8

o14 : complex with 20 facets on the vertices x  x  x  x  x  x  x  x  
                                              1  2  3  4  5  6  7  8
i15 : I=complexToIdeal C

o15 = ideal (x x x , x x x , x x x , x x x , x x x , x x x , x x x , x x x ,
              4 6 8   3 6 8   2 6 8   3 5 8   2 5 8   2 4 8   3 5 7   2 5 7 
      -----------------------------------------------------------------------
      x x x , x x x , x x x , x x x , x x x , x x x , x x x , x x x )
       1 5 7   2 4 7   1 4 7   1 3 7   2 4 6   1 4 6   1 3 6   1 3 5

o15 : Ideal of R
i16 : betti res I

             0  1  2  3 4
o16 = total: 1 16 30 16 1
          0: 1  .  .  . .
          1: .  .  .  . .
          2: . 16 30 16 .
          3: .  .  .  . .
          4: .  .  .  . 1

o16 : BettiTally

Δ(4,9):

i17 : R=QQ[x_1..x_9];
i18 : cc=cycRes(4,R,verbose=>1);

delta(2,{z, x_2, x_3, x_4, x_5})   +   delta(0,{z, x_2, x_3, x_4})   ->   delta(2,{z, x_2, x_3, x_4, x_5, x_6})


delta(4,{x_1, x_2, x_3, x_4, x_5, x_6, x_7})   +   delta(2,{z, x_2, x_3, x_4, x_5, x_6})   ->   delta(4,{x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8})


delta(2,{z, x_2, x_3, x_4, x_5})   +   delta(0,{z, x_2, x_3, x_4})   ->   delta(2,{z, x_2, x_3, x_4, x_5, x_6})


delta(2,{z, x_2, x_3, x_4, x_5, x_6})   +   delta(0,{z, x_2, x_3, x_4, x_5})   ->   delta(2,{z, x_2, x_3, x_4, x_5, x_6, x_7})


delta(4,{x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8})   +   delta(2,{z, x_2, x_3, x_4, x_5, x_6, x_7})   ->   delta(4,{x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9})
i19 : isExact cc

o19 = true
i20 : betti cc

             0  1  2  3  4 5
o20 = total: 1 30 81 81 30 1
          0: 1  .  .  .  . .
          1: .  .  .  .  . .
          2: . 30 81 81 30 .
          3: .  .  .  .  . .
          4: .  .  .  .  . 1

o20 : BettiTally

Δ(4,7) (unprojecting until termination with a hypersurface or linear complete intersection):

i21 : R=QQ[x_1..x_7];
i22 : cc=cycRes(4,R,verbose=>1,UseBuchsbaumEisenbud=>false);

delta(2,{z, x_2, x_3})   +   delta(0,{z, x_2})   ->   delta(2,{z, x_2, x_3, x_4})


delta(4,{x_1, x_2, x_3, x_4, x_5})   +   delta(2,{z, x_2, x_3, x_4})   ->   delta(4,{x_1, x_2, x_3, x_4, x_5, x_6})


delta(2,{z, x_2, x_3})   +   delta(0,{z, x_2})   ->   delta(2,{z, x_2, x_3, x_4})


delta(2,{z, x_2, x_3, x_4})   +   delta(0,{z, x_2, x_3})   ->   delta(2,{z, x_2, x_3, x_4, x_5})


delta(4,{x_1, x_2, x_3, x_4, x_5, x_6})   +   delta(2,{z, x_2, x_3, x_4, x_5})   ->   delta(4,{x_1, x_2, x_3, x_4, x_5, x_6, x_7})
i23 : betti cc

             0 1 2 3
o23 = total: 1 7 7 1
          0: 1 . . .
          1: . . . .
          2: . 7 7 .
          3: . . . .
          4: . . . 1

o23 : BettiTally

Δ(4,8) (unprojecting until termination with a hypersurface or linear complete intersection):

i24 : R=QQ[x_1..x_8];
i25 : cc=cycRes(4,R,verbose=>1,UseBuchsbaumEisenbud=>false);

delta(2,{z, x_2, x_3})   +   delta(0,{z, x_2})   ->   delta(2,{z, x_2, x_3, x_4})


delta(4,{x_1, x_2, x_3, x_4, x_5})   +   delta(2,{z, x_2, x_3, x_4})   ->   delta(4,{x_1, x_2, x_3, x_4, x_5, x_6})


delta(2,{z, x_2, x_3})   +   delta(0,{z, x_2})   ->   delta(2,{z, x_2, x_3, x_4})


delta(2,{z, x_2, x_3, x_4})   +   delta(0,{z, x_2, x_3})   ->   delta(2,{z, x_2, x_3, x_4, x_5})


delta(4,{x_1, x_2, x_3, x_4, x_5, x_6})   +   delta(2,{z, x_2, x_3, x_4, x_5})   ->   delta(4,{x_1, x_2, x_3, x_4, x_5, x_6, x_7})


delta(2,{z, x_2, x_3})   +   delta(0,{z, x_2})   ->   delta(2,{z, x_2, x_3, x_4})


delta(2,{z, x_2, x_3, x_4})   +   delta(0,{z, x_2, x_3})   ->   delta(2,{z, x_2, x_3, x_4, x_5})


delta(2,{z, x_2, x_3, x_4, x_5})   +   delta(0,{z, x_2, x_3, x_4})   ->   delta(2,{z, x_2, x_3, x_4, x_5, x_6})


delta(4,{x_1, x_2, x_3, x_4, x_5, x_6, x_7})   +   delta(2,{z, x_2, x_3, x_4, x_5, x_6})   ->   delta(4,{x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8})
i26 : isExact cc

o26 = true
i27 : betti cc

             0  1  2  3 4
o27 = total: 1 16 30 16 1
          0: 1  .  .  . .
          1: .  .  .  . .
          2: . 16 30 16 .
          3: .  .  .  . .
          4: .  .  .  . 1

o27 : BettiTally

Caveat

So far only works for d even.

At some point the efficiency will be increased by joining leaves of the unprojection tree.

See also

  • cycResDef -- Compute the minimal resolution of the unprojection deformation of a cyclic polytope
  • complexToIdeal -- Compute the Stanley-Reisner ideal.
  • delta -- Boundary complex of cyclic polytope.
  • betti -- display degrees

Ways to use cycRes :

  • cycRes(ZZ,PolynomialRing)