Macaulay2 » Documentation
Packages » SimplicialComplexes :: isWellDefined(SimplicialComplex)
next | previous | forward | backward | up | index | toc

isWellDefined(SimplicialComplex) -- whether underlying data is uncontradictory



In this package, a simplicial complex is represented by its Stanley–Reisner ideal. The vertices are identified with a subset of the variables in a polynomial ring and each face is identified with the product of the corresponding variables. A nonface is any subset of the variables that does not belong to the simplicial complex and each nonface is again identified with a product of variables. The Stanley-Reisner ideal of a simplicial complex is generated by monomials corresponding to its nonfaces.

This method determines whether the underlying data correctly defines an abstract simplicial complex. In particular, it verifies that the monomial ideal is squarefee and that the matrix of facets are the maximal faces in the abstract simplicial complex.

The boundary of the 4-simplex is a simplicial sphere with 5 vertices, 5 facets, and a minimal nonface that corresponds to the interior of the sphere.

i1 : S = ZZ[a..e];
i2 : Δ = simplicialComplex monomialIdeal (a*b*c*d*e)

o2 = simplicialComplex | bcde acde abde abce abcd |

o2 : SimplicialComplex
i3 : assert isWellDefined Δ

This method also checks the following aspects of the data structure:

  • the underlying HashTable has the expected keys, namely ring, monomialIdeal, facets, and cache,
  • the value of the ring key is a PolynomialRing,
  • the value of the monomialIdeal key is a MonomialIdeal,
  • the ring of the monomialIdeal value equals the value of the ring key,
  • the value of the facets key is a List,
  • the ring of each entry in facets equals the value of the ring key,
  • the value of the cache key is a CacheTable.

Abstract simplicial complexes created using the constructors in this package will automatically be well-defined. The primary purpose of this method is to document the underlying data structure for developers.

See also

Ways to use this method: