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

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

Synopsis

• Function: ideal
• Usage:
ideal Delta
• Inputs:
• Delta, ,
• Outputs:
• an ideal, 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 function returns the defining 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 = ideal Δ o3 = ideal(a*b*c*d*e) o3 : Ideal of S i4 : dim Δ o4 = 3 i5 : assert (I == ideal a*b*c*d*e and instance(I, Ideal) and numgens I === 1 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 = ideal Γ o7 = ideal (a*d, b*c*d, a*e, b*e, c*e, d*e) o7 : Ideal of S i8 : assert (J == ideal (a*d, b*c*d, a*e, b*e, c*e, d*e) and dim Γ === 2 and instance(J, Ideal))

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

 i9 : irrelevant = simplicialComplex {1_S}; i10 : M = ideal irrelevant o10 = ideal (a, b, c, d, e) o10 : Ideal of S i11 : assert (M == ideal gens S and instance(M, Ideal)) i12 : void = simplicialComplex monomialIdeal 1_S o12 = simplicialComplex 0 o12 : SimplicialComplex i13 : U = ideal void o13 = ideal 1 o13 : Ideal of S i14 : assert (U == ideal 1_S and instance (U, Ideal))

This routine is identical to monomialIdeal(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.