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

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



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

See also

Ways to use this method: