The class of all faces of Complexes or CoComplexes.

**Creating faces:**

Faces can be created by face by specifying a List or Set of variables of a PolynomialRing and some more optional data.

Usually faces are accessed as faces of a complex C using the ScriptedFunctor C.fc with the subscripts "dimension of the face" and "index of the face".

**The data stored in a face F:**

*F.vert*, a list with the vertices of F, which are variables of a PolynomialRing R. We use a list to prevent Macaualy from reordering sets or monomials.

*F.ofComplex*, a list with the Complexes and CoComplexes of which F is a face (optional).

it F.indices}, a list with the indices of the face in its complexes. An index is a list dim F, index of F in C.fc_{(}dim F).

*F.dualFace*, the dual face of F (optional, is stored for later use when computed by dualize). Note that also the dual face dF of F then has dF.dualFace=F.

This data can also be accessed by the methods listed below.

Note that the lattice data of the vertices is stored in R.grading via addCokerGrading. If no coker grading is present then many functions, like simplex, idealToComplex, idealToCoComplex add the standard projective space grading raysPPn.

**Notes on the implementation:**

In order to save memory identical faces are not created several times, e.g., if subComplexes are created from given ones any face of the subcomplex is identical to a face of the given one.

So far the list F.ofComplex is only used for the complex which created F, but later we will perhaps append also all other complexes F is a face of. As we will append to the list this will be backwards compatible.

i1 : R=QQ[x_0..x_4] o1 = R o1 : PolynomialRing |

i2 : addCokerGrading R o2 = | -1 -1 -1 -1 | | 1 0 0 0 | | 0 1 0 0 | | 0 0 1 0 | | 0 0 0 1 | 5 4 o2 : Matrix ZZ <--- ZZ |

i3 : C=simplex R o3 = 4: x x x x x 0 1 2 3 4 o3 : complex of dim 4 embedded in dim 4 (printing facets) equidimensional, simplicial, F-vector {1, 5, 10, 10, 5, 1}, Euler = 0 |

i4 : F=C.fc_1_0 o4 = x x 0 1 o4 : face with 2 vertices |

i5 : F.vert o5 = {x , x } 0 1 o5 : List |

i6 : coordinates F o6 = {{-1, -1, -1, -1}, {1, 0, 0, 0}} o6 : List |

i7 : (F.ofComplex)#0==C o7 = true |

i8 : bC=boundaryOfPolytope C o8 = 3: x x x x x x x x x x x x x x x x x x x x 0 1 2 3 0 1 2 4 0 1 3 4 0 2 3 4 1 2 3 4 o8 : complex of dim 3 embedded in dim 4 (printing facets) equidimensional, simplicial, F-vector {1, 5, 10, 10, 5, 0}, Euler = -1 |

i9 : F==bC.fc_1_0 o9 = true |

- Complex -- The class of all embedded complexes.
- CoComplex -- The class of all embedded co-complexes.
- ofComplex -- The complex of a face.
- vert -- The vertices of a face or complex.
- dual -- dual module or map
- addCokerGrading -- Stores a cokernel grading in a polynomial ring.
- simplex -- Simplex in the variables of a polynomial ring.
- boundaryOfPolytope -- The boundary of a polytope.
- coordinates -- The coordinates of a face.

- closedStar(Face,Complex), see closedStar -- The closed star of a face of a complex.
- complement(Face) -- Compute the complement face of a simplex.
- coordinates(Face), see coordinates -- The coordinates of a face.
- coordinates(Face,Complex), see coordinates -- The coordinates of a face.
- deformationsFace(Face,Complex), see deformationsFace -- Compute the deformations associated to a face.
- deformationsFace(Face,Complex,Ideal), see deformationsFace -- Compute the deformations associated to a face.
- dim(Face) -- Compute the dimension of a face.
- dim(Face,Complex) -- Compute the dimension of a face.
- dim(Face,PolynomialRing) -- Compute the dimension of a face.
- dualize(Face), see dualize -- The dual of a face or complex.
- Face == Face -- Compare two faces.
- faceToMonomial(Face), see faceToMonomial -- The monomial of a face.
- faceToMonomial(Face,PolynomialRing), see faceToMonomial -- The monomial of a face.
- indices(Face) -- The indices of a face.
- intersectFaces(Face,Face), see intersectFaces -- The intersection of two faces.
- isSubface(Face,Face), see isSubface -- Checks whether a face is a subface of another face.
- link(Face,Complex), see link -- The link of a face of a complex.
- net(Face) -- Printing faces.
- ofComplex(Face), see ofComplex -- The complex of a face.
- simplexDim(Face), see simplexDim -- The dimension of a face inside the vertex simplex.
- simplexRing(Face) -- The underlying polynomial ring of a face.
- vert(Face), see vert -- The vertices of a face or complex.

The object Face is a type, with ancestor classes MutableHashTable < HashTable < Thing.