Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

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?

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]])

X=SimplicialComplex([[1]]) sage: F=Simplex([1]); X.link(F)

X.link(F) Simplicial complex with vertex set () and facets {()}

{()} sage: G=Simplex([2]); X.link(G)

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?