# cycResDef -- Compute the minimal resolution of the unprojection deformation of a cyclic polytope

## Synopsis

• Usage:
cycResDef(d,R,Z)
• Inputs:
• d, an integer, positive, even
• R,
• Z, , over the the same coefficientRing as the ring R of J and I with one new variable, say z, if d is odd, and two new variables, say z1,z2, if d is even.
• Outputs:
• , over R**Z

## Description

Consider a cyclic polytope C of dimension d and vertices the variables of R, and the Stanley-Reisner ideal I of the boundary complex of C.

This function computes the minimal resolution of the unprojection deformation of R/I with base z (for d even).

This is obtained by doing a single unprojection step

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

So for z = 0 (d even) we obtain the minimal resolution of I.

The unprojection variable (called T in the paper) corresponds to the last variable of R.

 `i1 : R=QQ[x_1..x_8];` `i2 : Z=QQ[z];` `i3 : cc=cycResDef(4,R,Z);` ```i4 : isExact cc o4 = true``` ```i5 : S=ring cc o5 = S o5 : PolynomialRing``` ```i6 : betti cc 0 1 2 3 4 o6 = total: 1 16 30 16 1 0: 1 . . . . 1: . . . . . 2: . 16 30 16 . 3: . . . . . 4: . . . . 1 o6 : BettiTally``` ```i7 : print cc.dd_1 | x_1x_3x_5 x_1x_3x_6 x_1x_4x_6 x_2x_4x_6 x_2x_4x_7 x_2x_5x_7 x_3x_5x_7 x_8zx_3-x_1x_3x_7 x_8zx_4-x_1x_4x_7 x_8x_2x_4 x_8zx_5-x_1x_5x_7 x_8x_2x_5 x_8x_3x_5 x_8x_2x_6 x_8x_3x_6 x_8x_4x_6 |``` ```i8 : print cc.dd_2 {3} | 0 0 -x_6 -x_7 0 0 0 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} | 0 -x_4 x_5 0 0 0 0 0 0 0 0 0 0 0 0 x_7 0 0 0 0 0 0 0 0 x_8 0 0 0 0 0 | {3} | -x_2 x_3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x_7 0 0 0 0 0 0 0 x_8 0 0 0 0 | {3} | x_1 0 0 0 0 0 -x_7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x_8 0 0 0 | {3} | 0 0 0 0 0 -x_5 x_6 x_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x_8 0 0 | {3} | 0 0 0 0 -x_3 x_4 0 0 0 x_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x_8 0 | {3} | 0 0 0 x_1 x_2 0 0 0 0 0 0 x_1 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 x_4 0 x_5 0 0 0 0 x_6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 x_2 -x_3 0 0 0 0 x_5 0 0 0 x_6 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 -z 0 0 0 0 0 0 x_5 0 0 0 x_6 0 0 0 0 0 0 0 -x_6 -x_7 0 0 | {3} | 0 0 0 0 0 0 0 0 0 x_2 -x_3 x_3 0 -x_4 0 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 -z 0 0 x_3 0 -x_4 0 0 0 0 0 0 x_6 0 0 0 0 0 0 -x_7 0 | {3} | 0 0 0 0 0 0 0 0 0 0 0 -z -x_2 0 0 0 0 0 0 0 0 0 x_6 -x_1 0 0 0 0 0 -x_7 | {3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x_3 0 -x_4 x_4 0 -x_5 0 0 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -z -x_2 0 0 0 x_4 0 -x_5 0 -x_1 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -z 0 -x_2 -x_3 0 0 0 0 -x_1 0 0 0 0 |``` ```i9 : print cc.dd_3 {4} | 0 0 0 x_7 0 0 0 0 0 -x_8 0 0 0 0 0 0 | {4} | 0 0 0 0 -x_7 0 0 0 0 0 -x_8 0 0 0 0 0 | {4} | 0 0 0 0 0 0 -x_7 0 0 0 0 -x_8 0 0 0 0 | {4} | 0 0 0 0 0 0 x_6 0 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 -x_1 0 0 0 0 0 0 0 0 0 0 0 0 -x_8 0 | {4} | 0 0 0 x_1 0 0 0 0 0 0 0 0 0 0 0 -x_8 | {4} | 0 -x_5 0 -x_6 0 0 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 -x_5 0 x_6 0 0 0 0 0 0 0 0 0 0 0 | {4} | -x_3 x_4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 x_4 0 0 0 -x_6 0 0 0 0 0 0 0 0 0 | {4} | x_2 0 0 0 0 0 -x_6 0 0 0 0 0 0 0 0 0 | {4} | -z 0 0 0 0 0 0 -x_6 0 0 0 0 0 -x_7 0 0 | {4} | 0 x_2 -x_3 0 0 0 0 0 0 0 0 0 0 0 0 0 | {4} | 0 -z 0 0 0 0 0 0 -x_6 0 0 0 0 0 -x_7 0 | {4} | 0 0 0 0 -x_4 0 x_5 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 -x_4 0 x_5 0 0 0 0 0 0 0 0 | {4} | 0 0 0 x_2 x_3 0 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 -z 0 0 0 0 x_5 x_1 0 0 0 0 0 0 | {4} | 0 0 0 -z 0 x_3 0 0 0 x_1 0 0 0 0 0 0 | {4} | 0 0 0 0 -z -x_2 0 0 0 0 -x_1 0 0 0 0 0 | {4} | 0 0 0 0 0 0 0 x_3 -x_4 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 0 -z -x_2 0 0 0 -x_1 0 0 0 0 | {4} | 0 0 0 0 0 0 0 0 0 0 0 -x_6 -x_7 0 0 0 | {4} | 0 0 0 0 0 0 0 0 0 0 -x_4 x_5 0 0 0 0 | {4} | 0 0 0 0 0 0 0 0 0 -x_2 x_3 0 0 0 0 0 | {4} | 0 0 0 0 0 0 0 0 0 x_1 0 0 0 0 0 -x_7 | {4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -x_5 x_6 | {4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 -x_3 x_4 0 | {4} | 0 0 0 0 0 0 0 0 0 0 0 0 x_1 x_2 0 0 |``` ```i10 : print cc.dd_4 {5} | x_8x_4x_6 | {5} | x_8x_3x_6 | {5} | x_8x_2x_6 | {5} | -x_8x_3x_5 | {5} | x_8x_2x_5 | {5} | -x_8zx_5+x_1x_5x_7 | {5} | x_8x_2x_4 | {5} | -x_8zx_4+x_1x_4x_7 | {5} | -x_8zx_3+x_1x_3x_7 | {5} | -x_3x_5x_7 | {5} | -x_2x_5x_7 | {5} | -x_2x_4x_7 | {5} | x_2x_4x_6 | {5} | -x_1x_4x_6 | {5} | -x_1x_3x_6 | {5} | -x_1x_3x_5 |``` ```i11 : C=delta(4,R) o11 = {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 o11 : complex with 20 facets on the vertices x x x x x x x x 1 2 3 4 5 6 7 8``` ```i12 : I=complexToIdeal C o12 = 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 o12 : Ideal of R``` ```i13 : betti res I 0 1 2 3 4 o13 = total: 1 16 30 16 1 0: 1 . . . . 1: . . . . . 2: . 16 30 16 . 3: . . . . . 4: . . . . 1 o13 : BettiTally``` ```i14 : cs=substitute(cc,R) 1 16 30 16 1 o14 = R <-- R <-- R <-- R <-- R 0 1 2 3 4 o14 : ChainComplex``` ```i15 : isExact cs o15 = true``` ```i16 : I==ideal(cs.dd_1) o16 = true```

## Caveat

So far only works for d even.