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

# prune(SimplicialComplex) -- make a minimal presentation of an abstract simplicial complex

## Synopsis

• Function: prune
• Usage:
prune Delta
• Inputs:
• Delta, ,
• Optional inputs:
• Exclude => a list, default value {}, that is ignored by this particular function
• Outputs:
• , where vertices are precisely the generators in its polynomial ring

## Description

In this package, an abstract simplicial complex is represented by its Stanley–Reisner ideal in a polynomial ring. When the vertex set of $\Delta$ is a proper subset of the variables in its polynomial ring, this method creates an isomorphic abstract simplicial complex such that the generators of its polynomial ring are the vertices of $\Delta$.

When the monomial ideal of the abstract simplicial complex contains no linear forms, this method just returns the input.

 i1 : S = QQ[a..e]; i2 : Δ4 = simplexComplex(4, S) o2 = simplicialComplex | abcde | o2 : SimplicialComplex i3 : monomialIdeal Δ4 o3 = monomialIdeal () o3 : MonomialIdeal of S i4 : prune Δ4 o4 = simplicialComplex | abcde | o4 : SimplicialComplex i5 : assert(Δ4 === prune Δ4)

When the monomial ideal contains one or more variables, this method returns an isomorphic abstract simplicial complex represented by a monomial ideal in a smaller polynomial ring.

 i6 : Γ = simplicialComplex monomialIdeal(a, a*b, b*c, c*d) o6 = simplicialComplex | ce bde | o6 : SimplicialComplex i7 : monomialIdeal Γ o7 = monomialIdeal (a, b*c, c*d) o7 : MonomialIdeal of S i8 : prune Γ o8 = simplicialComplex | ce bde | o8 : SimplicialComplex i9 : monomialIdeal prune Γ o9 = monomialIdeal (b*c, c*d) o9 : MonomialIdeal of QQ[b..e] i10 : R = ring prune Γ; i11 : (gens R, vertices Γ) o11 = ({b, c, d, e}, {b, c, d, e}) o11 : Sequence i12 : assert(ring Γ =!= ring prune Γ) i13 : assert(gens R === apply(vertices Γ, x -> sub(x, R)))
 i14 : Δ2 = simplexComplex(2, S) o14 = simplicialComplex | abc | o14 : SimplicialComplex i15 : prune Δ2 o15 = simplicialComplex | abc | o15 : SimplicialComplex i16 : R = ring prune Δ2; i17 : (gens R, vertices Δ2) o17 = ({a, b, c}, {a, b, c}) o17 : Sequence i18 : assert(ring Δ2 =!= ring prune Δ2) i19 : assert(gens R === apply(vertices Δ2, x -> sub(x, R)))

There are two distinct abstract simplicial complexes that have no vertices.

 i20 : void = simplicialComplex monomialIdeal(1_S) o20 = simplicialComplex 0 o20 : SimplicialComplex i21 : facets void o21 = {} o21 : List i22 : monomialIdeal prune void o22 = monomialIdeal 1 o22 : MonomialIdeal of QQ[] i23 : assert(gens ring prune void === {}) i24 : assert(monomialIdeal prune void == 1)
 i25 : irrelevant = simplicialComplex{1_S} o25 = simplicialComplex | 1 | o25 : SimplicialComplex i26 : facets irrelevant o26 = {1} o26 : List i27 : prune irrelevant o27 = simplicialComplex | 1 | o27 : SimplicialComplex i28 : monomialIdeal prune irrelevant o28 = monomialIdeal () o28 : MonomialIdeal of QQ[] i29 : assert(gens ring prune irrelevant === {}) i30 : assert(monomialIdeal prune irrelevant == 0)