next | previous | forward | backward | up | index | toc

# facets(SimplicialComplex) -- get the list of maximal faces

## Synopsis

• Function: facets
• Usage:
facets Delta
• Inputs:
• Delta, ,
• Outputs:
• a list, whose entries are the squarefree monomials representing the facets in $\Delta$

## Description

In this package, an abstract simplicial complex $\Delta$ is identified with a squarefree monomial ideal in a polynomial ring. The vertices of $\Delta$ correspond to a subset of the variables in the polynomial ring, and each face is identified as the product of the variables corresponding to the vertices of that face. This method function returns a list whose entries are the squarefree monomials representing the maximal faces of $\Delta$.

The order of the facets is determined by the monomial order on the underlying polynomial ring. The facets of an abstract simplicial complex are used when outputting or printing; see net(SimplicialComplex).

 i1 : S = ZZ[a..e]; i2 : Δ = simplicialComplex monomialIdeal (a*b*c*d*e) o2 = simplicialComplex | bcde acde abde abce abcd | o2 : SimplicialComplex i3 : facets Δ o3 = {b*c*d*e, a*c*d*e, a*b*d*e, a*b*c*e, a*b*c*d} o3 : List i4 : assert (facets Δ == {b*c*d*e, a*c*d*e, a*b*d*e, a*b*c*e, a*b*c*d} and isPure Δ and dim Δ === 3)

The abstract simplicial complex from Example 1.8 of Miller-Sturmfels' Combinatorial Commutative Algebra consists of a triangle (on vertices $a$, $b$, $c$), two edges (connecting $c$ to $d$ and $b$ to $d$), and an isolated vertex (namely $e$). It has six minimal nonfaces.

 i5 : Γ = simplicialComplex {e, c*d, b*d, a*b*c} o5 = simplicialComplex | e cd bd abc | o5 : SimplicialComplex i6 : facets Γ o6 = {e, c*d, b*d, a*b*c} o6 : List i7 : assert (facets Γ == {e, c*d, b*d, a*b*c} and ideal Γ == ideal (a*d, b*c*d, a*e, b*e, c*e, d*e) and not isPure Γ and dim Γ === 2)

The irrelevant complex has the empty set as a facet whereas the void complex has no facets.

 i8 : irrelevant = simplicialComplex {1_S} o8 = simplicialComplex | 1 | o8 : SimplicialComplex i9 : facets irrelevant o9 = {1} o9 : List i10 : void = simplicialComplex monomialIdeal 1_S o10 = simplicialComplex 0 o10 : SimplicialComplex i11 : facets void o11 = {} o11 : List i12 : assert (facets irrelevant == {1_S} and facets void == {})

The list of facets is part of the defining data of an abstract simplicial complex. While this method function does no computation, it allows us access to this data.

 i13 : peek Δ o13 = SimplicialComplex{cache => CacheTable{...1...} } facets => {b*c*d*e, a*c*d*e, a*b*d*e, a*b*c*e, a*b*c*d} monomialIdeal => monomialIdeal(a*b*c*d*e) ring => S