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

simplicialComplex(MonomialIdeal) -- make a simplicial complex from its Stanley–Reisner ideal



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 its faces. The faces having cardinality 1 are its vertices and the maximal faces (order by inclusion) are its 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 monomialIdeal (a*b*c*d*e)

o2 = simplicialComplex | bcde acde abde abce abcd |

o2 : SimplicialComplex
i3 : monomialIdeal Δ

o3 = monomialIdeal(a*b*c*d*e)

o3 : MonomialIdeal of S
i4 : facets Δ

o4 = {b*c*d*e, a*c*d*e, a*b*d*e, a*b*c*e, a*b*c*d}

o4 : List
i5 : dim Δ

o5 = 3
i6 : assert (dim Δ === 3 and numgens ideal Δ === 1 and isPure Δ)

An isomorphic abstract simplicial complex may be constructed in a larger polynomial ring.

i7 : R = QQ[a..f];
i8 : Γ = simplicialComplex monomialIdeal (a*b*c*d*e, f)

o8 = simplicialComplex | bcde acde abde abce abcd |

o8 : SimplicialComplex
i9 : monomialIdeal Γ

o9 = monomialIdeal (a*b*c*d*e, f)

o9 : MonomialIdeal of R
i10 : facets Γ

o10 = {b*c*d*e, a*c*d*e, a*b*d*e, a*b*c*e, a*b*c*d}

o10 : List
i11 : assert((for F in facets Γ list sub(F,S)) === 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 monomialIdeal (a*d, b*c*d, a*e, b*e, c*e, d*e)

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 Δ')

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.

i18 : irrelevant = simplicialComplex monomialIdeal gens S

o18 = simplicialComplex | 1 |

o18 : SimplicialComplex
i19 : monomialIdeal irrelevant

o19 = monomialIdeal (a, b, c, d, e)

o19 : MonomialIdeal of S
i20 : facets irrelevant

o20 = {1}

o20 : List
i21 : void = simplicialComplex monomialIdeal 1_R

o21 = simplicialComplex 0

o21 : SimplicialComplex
i22 : monomialIdeal void

o22 = monomialIdeal 1

o22 : MonomialIdeal of R
i23 : facets void

o23 = {}

o23 : List
i24 : assert (facets irrelevant === {1_S} and facets void === {})

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 = QQ  <-- QQ  <-- QQ   <-- QQ   <-- QQ
      -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

The input can be an Ideal, in which case the constructor verifies that it is a squarefree monomial ideal.

i28 : Bowtie = simplicialComplex ideal {a*d, b*d, a*e, b*e}

o28 = simplicialComplex | cde abc |

o28 : SimplicialComplex

See also

Ways to use this method: