This package computes the minimal resolution of the Stanley-Reisner ring of the boundary complexes Δ(d,m) of cyclic polytopes of dimension d on m vertices using unprojection theory.

We implement the results of

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

connecting Stanley-Reisner rings and unprojection to give a formula for the minimal resolutions.

The algorithm given there is applied in the function cycRes and computes the minimal resolution inductively starting from Koszul complexes. The function cycRes has an Option verbose to output the unprojection structure of the minimal resolution.

We also compute the minimal resolution of a flat family in which the Stanley-Reisner ring is the special fiber, see cycResDef.

In addition to this, the package exports functions to compute the Stanley-Reisner ideal of Δ(d,n), hence allowing the user to compare the result of cycRes with the resolution computed by the M2 command resolution via Groebner bases.

The theoretical concept implemented here is an instance of a new relationship between algebra and combinatorics via unprojection theory (so in some sense birational geometry), which also shows up in

*J. Boehm, S. Papadakis: Stellar subdivisions and Stanley-Reisner rings of Gorenstein complexes*, http://arxiv.org/abs/0912.2151

in a different flavor, but is probably applicable in a more general setting.

**Key functions and data types:**

*The central function of the package is:*

cycRes -- Compute the cyclic polytope minimal resolution via unprojection

*Other important types and functions:*

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

Complex -- The class of all simplicial complexes

Face -- The class of all faces of simplicial complexes

complexToIdeal -- Compute the Stanley-Reisner ideal associated to a simplicial complex

idealToComplex -- Compute the Stanley-Reisner complex associated to a monomial square free ideal

delta -- The boundary complex of a cyclic polytope

**Examples:**

Codimension 4 cyclic polytopes

*The following examples contain detailed output of all objects of the construction:*

Codimension 4 cyclic polytopes with details

A codimension 3 example with details

A codimension 5 example with details

**Installation:**

Put the file *CyclicPolytopeRes.m2* somewhere into the path of Macaulay2 (usually into the directory .Macaulay2/code inside your home directory, type path in M2 to see the path) and do inside M2

installPackage "CyclicPolytopeRes"

- Functions
- complex -- Create a complex.
- complexToIdeal -- Compute the Stanley-Reisner ideal.
- cycRes -- Compute the minimal cyclic polytope resolutions via unprojection
- cycResDef -- Compute the minimal resolution of the unprojection deformation of a cyclic polytope
- delta -- Boundary complex of cyclic polytope.
- dimension -- The dimension of a simplicial complex or a face of a simplicial complex.
- face -- Generate a face.
- faces -- Returns the faces of a complex
- facets -- The facets of a simplicial complex.
- fvector -- Returns the F-vector of a complex
- idealToComplex -- Compute the Stanley-Reisner complex.
- isExact -- Test whether a chain complex is exact.
- isSubface -- Test whether a face is a subface of another face.
- simplexRing -- The underlying polynomial ring of a simplicial complex, face, fan or cone.
- substituteComplex -- Substitute a complex to a different ring.
- substituteFace -- Substitute a face to a different ring.
- vertices -- The vertices of a face of a simplicial complex.

- Methods
- Complex == Complex -- Compare two complexes.
- Face == Face -- Compare two faces.
- faces(Complex,ZZ), see faces -- Returns the faces of a complex
- isSubface(Face,Face), see isSubface -- Test whether a face is a subface of another face.
- substituteComplex(Complex,PolynomialRing), see substituteComplex -- Substitute a complex to a different ring.
- substituteFace(Face,PolynomialRing), see substituteFace -- Substitute a face to a different ring.

- Symbols
- UseBuchsbaumEisenbud -- Option to use Buchsbaum-Eisenbud theorem in codim 3 instead of unprojecting further
- verbose -- Option to print intermediate data