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

# simplicialComplex(List) -- make an abstract simplicial complex from a list of faces

## Synopsis

• Function: simplicialComplex
• Usage:
simplicialComplex L
• Inputs:
• L, a list, whose entries are monomials in a polynomial ring corresponding to faces or a Matrix with one row and monomial entries
• Outputs:
• , that is generated by the given faces

## Description

An abstract simplicial complex on a finite set is a family of subsets that is closed under taking subsets. The elements in the abstract simplicial complex are called faces. The faces having cardinality 1 are called vertices and the maximal faces (order by inclusion) are called facets. Following the combinatorial conventions, every nonempty abstract simplicial complex has the empty set as a face.

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.

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

 i1 : S = ZZ[a..e]; i2 : Δ = simplicialComplex {a*b*d*e, b*c*d*e, a*b*c*e, a*b*c*d, a*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 : monomialIdeal Δ o4 = monomialIdeal(a*b*c*d*e) o4 : MonomialIdeal of S i5 : dim Δ o5 = 3 i6 : assert (dim Δ === 3 and numgens ideal Δ === 1 and isPure Δ) i7 : assert (Δ === simplicialComplex facets Δ)

Although the list of faces may include non-facets, an abstract simplicial complex is displayed by listing its facets. The order of faces in the input list is unimportant.

 i8 : Γ = simplicialComplex {a*b*d*e, b*c, a*b*c*d, a*c*d*e, a*c*d, b*c*d*e, d, a*b*c*e} o8 = simplicialComplex | bcde acde abde abce abcd | o8 : SimplicialComplex i9 : monomialIdeal Γ o9 = monomialIdeal(a*b*c*d*e) o9 : MonomialIdeal of S i10 : assert (Γ === Δ) i11 : assert (Γ === simplicialComplex facets Γ)

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.

 i12 : S' = ZZ/101[a..e]; i13 : Δ' = simplicialComplex {e, c*d, b*d, a*b*c} o13 = simplicialComplex | e cd bd abc | o13 : SimplicialComplex i14 : monomialIdeal Δ' o14 = monomialIdeal (a*d, b*c*d, a*e, b*e, c*e, d*e) o14 : MonomialIdeal of S' i15 : facets Δ' o15 = {e, c*d, b*d, a*b*c} o15 : List i16 : dim Δ' o16 = 2 i17 : assert (dim Δ' === 2 and not isPure Δ') i18 : assert (Δ' === simplicialComplex facets Δ')

There are two "trivial" simplicial complexes: The irrelevant complex has the empty set as a facet whereas the void complex has no facets. Since every abstract simplicial complex in this package is equipped with a chosen polynomial ring, the void complex cannot be constructed by just listing its facets.

 i19 : irrelevant = simplicialComplex {1_S'}; i20 : dim irrelevant o20 = -1 i21 : void = simplicialComplex monomialIdeal 1_S o21 = simplicialComplex 0 o21 : SimplicialComplex i22 : dim void o22 = -infinity o22 : InfiniteNumber i23 : assert (dim irrelevant === -1 and dim void === -infinity) i24 : assert (irrelevant === simplicialComplex facets irrelevant)

Although an abstract simplicial complex can be represented by a Stanley–Reisner ideal in any polynomial ring with a sufficiently large number of variables, some operations in this package do depend of the choice of the polynomial ring (or its coefficient ring). For example, the chain complex of an abstract simplicial complex is typically constructed over the coefficient ring of this polynomial ring, and the dual of a simplicial complex (or monomial ideal) is dependent on the number of variables in the polynomial ideal.

 i25 : chainComplex Δ 1 5 10 10 5 o25 = ZZ <-- ZZ <-- ZZ <-- ZZ <-- ZZ -1 0 1 2 3 o25 : ChainComplex i26 : chainComplex Γ 1 5 10 10 5 o26 = ZZ <-- ZZ <-- ZZ <-- ZZ <-- ZZ -1 0 1 2 3 o26 : ChainComplex i27 : chainComplex Δ' ZZ 1 ZZ 5 ZZ 5 ZZ 1 o27 = (---) <-- (---) <-- (---) <-- (---) 101 101 101 101 -1 0 1 2 o27 : ChainComplex