# isShellable -- determines whether a simplicial complex is shellable

## Synopsis

• Usage:
isShellable S
• Inputs:
• Outputs:
• B, , true if and only if $S$ is shellable

## Description

The pure and non-pure cases are handled separately. If $S$ is pure, then definition III.2.1 in [St] is used. That is, $S$ is shellable if its facets can be ordered $F_1, ..., F_n$ so that the difference in the $j$-th and $j-1$-th subcomplex has a unique minimal face, for $2 \leq j \leq n$.

If $S$ is non-pure, then definition 2.1 in [BW-1] is used. That is, a simplicial complex $S$ is shellable if the facets of $S$ can be ordered $F_1, .., F_n$ such that the intersection of the faces of the first $j-1$ with the faces of the $F_j$ is pure and $dim F_j - 1$-dimensional.

 i1 : R = QQ[a..f]; i2 : isShellable simplicialComplex {a*b*c*d*e} o2 = true i3 : isShellable simplicialComplex {a*b*c, c*d*e} o3 = false i4 : isShellable simplicialComplex {a*b*c, b*c*d, c*d*e} o4 = true i5 : isShellable simplicialComplex {a*b*c, c*d, d*e, e*f, d*f} o5 = true i6 : isShellable simplicialComplex {a*b*c, c*d, d*e*f} o6 = false

• facets -- Giving the facet inequalities of a cone or polyhedron.
• isDecomposable -- determines whether a simplicial complex is k-decomposable
• isShelling -- determines whether a list of faces is a shelling
• shellingOrder -- finds a shelling of a simplicial complex, if one exists

## Ways to use isShellable :

• "isShellable(SimplicialComplex)"

## For the programmer

The object isShellable is .