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

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

## Synopsis

• Function: monomialIdeal
• Usage:
monomialIdeal Delta
• Inputs:
• Delta, ,
• Outputs:
• , that is generated by the monomials representing the minimal nonfaces in $\Delta$

## Description

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