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

monomialIdeal(SimplicialComplex) -- get the Stanley–Reisner monomial ideal



In this package, an abstract simplicial complex is represented as squarefree monomial ideal in a polynomial ring. This method returns the defining monomial ideal.

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 {b*c*d*e, a*c*d*e, a*b*d*e, a*b*c*e, a*b*c*d}

o2 = simplicialComplex | bcde acde abde abce abcd |

o2 : SimplicialComplex
i3 : I = monomialIdeal Δ

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

o3 : MonomialIdeal of S
i4 : dim Δ

o4 = 3
i5 : assert (I == monomialIdeal a*b*c*d*e and numgens I === 1 and
         instance(I, MonomialIdeal) 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.

i6 : Γ = simplicialComplex {e, c*d, b*d, a*b*c}

o6 = simplicialComplex | e cd bd abc |

o6 : SimplicialComplex
i7 : J = monomialIdeal Γ

o7 = monomialIdeal (a*d, b*c*d, a*e, b*e, c*e, d*e)

o7 : MonomialIdeal of S
i8 : assert (J == monomialIdeal (a*d, b*c*d, a*e, b*e, c*e, d*e) and
         dim Γ === 2 and instance(J, MonomialIdeal))

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

i9 : irrelevant = simplicialComplex {1_S};
i10 : M = monomialIdeal irrelevant

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

o10 : MonomialIdeal of S
i11 : void = simplicialComplex monomialIdeal 1_S

o11 = simplicialComplex 0

o11 : SimplicialComplex
i12 : assert (M == monomialIdeal gens S and instance(M, MonomialIdeal))
i13 : U = monomialIdeal void

o13 = monomialIdeal 1

o13 : MonomialIdeal of S
i14 : assert (U == monomialIdeal 1_S and instance (U, MonomialIdeal))

This routine is identical to ideal(SimplicialComplex) except for the type of the output.

i15 : printWidth = 250;
i16 : code (ideal, SimplicialComplex)

o16 = -- code for method: ideal(SimplicialComplex)
      /usr/local/share/Macaulay2/SimplicialComplexes/Code.m2:19:38-19:49: --source code:
      ideal SimplicialComplex := Ideal => D -> ideal D.monomialIdeal
i17 : code (monomialIdeal, SimplicialComplex)

o17 = -- code for method: monomialIdeal(SimplicialComplex)
      /usr/local/share/Macaulay2/SimplicialComplexes/Code.m2:20:54-20:59: --source code:
      monomialIdeal SimplicialComplex := MonomialIdeal => D -> D.monomialIdeal

As the Stanley–Reisner ideal is part the defining data of an abstract simplicial complex, so this method does no computation.

i18 : peek Δ

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

See also

Ways to use this method: