Void simplicial complexes
The standard definition of a simplicial complex requires that it contain the empty face. However, sometimes one needs to distinguish between the complexes {} (the "void complex") and {{}} (the "irrelevant complex"). This comes up, e.g., when working with relative complexes or doing combinatorial commutative algebra (see, e.g., Stanley's Combinatorial Commutative Algebra, p.117, or Miller and Sturmfels, p.4). The SimplicialComplex class doesn't allow the void complex.
For example, if F is a facet of X then link_X(F) is the irrelevant complex, but if G is a nonface of X then link_X(G) is the void complex. However, the link method does not distinguish between the two, returning the irrelevant complex in both cases:
sage: X=SimplicialComplex([[1]])
sage: F=Simplex([1]); X.link(F)
Simplicial complex with vertex set () and facets {()}
sage: G=Simplex([2]); X.link(G)
Simplicial complex with vertex set () and facets {()}
This seems like a triviality but it would be helpful to have this distinction. What do others think?
Note: to properly display lines of code, either indent them by 4 spaces, or select the code portion and click the code button (the icon with "010 101"). (Try editing your question and doing that.)
Done. Thanks; I'm new here and didn't know that.