# MonomialIdeal -- the class of all monomial ideals handled by the engine

## Description

Monomial ideals are kinds of ideals, but many algorithms are much faster. Generally, any routines available for ideals are also available for monomial ideals.
 i1 : R = QQ[a..d]; i2 : I = monomialIdeal(a*b*c,b*c*d,a^2*d,b^3*c) 3 2 o2 = monomialIdeal (a*b*c, b c, a d, b*c*d) o2 : MonomialIdeal of R i3 : I^2 2 2 2 4 2 6 2 3 2 3 2 2 4 2 o3 = monomialIdeal (a b c , a*b c , b c , a b*c*d, a b c*d, a*b c d, b c d, ------------------------------------------------------------------------ 4 2 2 2 2 2 2 a d , a b*c*d , b c d ) o3 : MonomialIdeal of R i4 : I + monomialIdeal(b*c) 2 o4 = monomialIdeal (b*c, a d) o4 : MonomialIdeal of R i5 : I : monomialIdeal(b*c) 2 o5 = monomialIdeal (a, b , d) o5 : MonomialIdeal of R i6 : radical I o6 = monomialIdeal (b*c, a*d) o6 : MonomialIdeal of R i7 : associatedPrimes I o7 = {monomialIdeal (a, b), monomialIdeal (a, c), monomialIdeal (b, d), ------------------------------------------------------------------------ monomialIdeal (c, d), monomialIdeal (a, b, d)} o7 : List i8 : primaryDecomposition I 2 2 o8 = {monomialIdeal (a , b), monomialIdeal (a , c), monomialIdeal (b, d), ------------------------------------------------------------------------ 3 monomialIdeal (c, d), monomialIdeal (a, b , d)} o8 : List

### Specialized functions only available for monomial ideals

 i9 : borel I 3 2 2 3 2 2 2 2 2 o9 = monomialIdeal (a , a b, a*b , b , a c, a*b*c, b c, a*c , b*c , a d, ------------------------------------------------------------------------ 2 a*b*d, b d, a*c*d, b*c*d) o9 : MonomialIdeal of R i10 : isBorel I o10 = false i11 : I - monomialIdeal(b^3*c,b^4) 2 o11 = monomialIdeal (a*b*c, a d, b*c*d) o11 : MonomialIdeal of R i12 : standardPairs I o12 = {{1, {c, d}}, {a, {c, d}}, {1, {b, d}}, {a, {b, d}}, {1, {a, c}}, {1, ----------------------------------------------------------------------- 2 {b, a}}, {b, {c}}, {b , {c}}} o12 : List i13 : independentSets I o13 = {a*b, a*c, b*d, c*d} o13 : List i14 : dual I 3 2 3 o14 = monomialIdeal (a*b , a*c, a b*d, b d, c*d) o14 : MonomialIdeal of R
The ring of a monomial ideal must be a commutative polynomial ring. This ring must not be a skew commuting ring, and/or a quotient ring.

## Functions and methods returning a monomial ideal :

• "MonomialIdeal * MonomialIdeal" -- see * -- a binary operator, usually used for multiplication
• "RingElement * MonomialIdeal" -- see * -- a binary operator, usually used for multiplication
• "MonomialIdeal + MonomialIdeal" -- see + -- a unary or binary operator, usually used for addition
• "borel(MonomialIdeal)" -- see borel(Matrix) -- make a Borel fixed submodule
• "MonomialIdeal ^ ZZ" -- see Ideal ^ ZZ -- power of an ideal
• monomialIdeal -- make a monomial ideal
• MonomialIdeal - MonomialIdeal -- monomial ideal difference
• MonomialIdeal : RingElement (missing documentation)
• monomialIdeal(Ideal) -- monomial ideal of lead monomials of a Gröbner basis
• "monomialIdeal(Module)" -- see monomialIdeal(Ideal) -- monomial ideal of lead monomials of a Gröbner basis
• "monomialIdeal(List)" -- see monomialIdeal(Matrix) -- monomial ideal of lead monomials
• monomialIdeal(Matrix) -- monomial ideal of lead monomials
• "monomialIdeal(RingElement)" -- see monomialIdeal(Matrix) -- monomial ideal of lead monomials
• monomialIdeal(String) -- make a monomial ideal using classic Macaulay syntax
• "quotient(MonomialIdeal,RingElement)" -- see quotient(Module,Module) -- ideal or submodule quotient
• "saturate(MonomialIdeal,RingElement)" -- see saturate (missing documentation) -- saturation of ideal or submodule
• "trim(MonomialIdeal)" -- see trim -- minimize generators and relations

## Methods that use a monomial ideal :

• "ZZ % MonomialIdeal" -- see % -- a binary operator, usually used for remainder and reduction
• "MonomialIdeal * Module" -- see * -- a binary operator, usually used for multiplication
• "MonomialIdeal * Ring" -- see * -- a binary operator, usually used for multiplication
• "Ring * MonomialIdeal" -- see * -- a binary operator, usually used for multiplication
• "ZZ // MonomialIdeal" -- see // -- a binary operator, usually used for quotient
• "Ideal == MonomialIdeal" -- see == -- equality
• "MonomialIdeal == Ideal" -- see == -- equality
• "MonomialIdeal == MonomialIdeal" -- see == -- equality
• "MonomialIdeal == Ring" -- see == -- equality
• "MonomialIdeal == ZZ" -- see == -- equality
• "Ring == MonomialIdeal" -- see == -- equality
• "ZZ == MonomialIdeal" -- see == -- equality
• "betti(MonomialIdeal)" -- see betti(Ideal) -- gives the degrees of generators.
• codim(MonomialIdeal) -- compute the codimension
• "dim(MonomialIdeal)" -- see dim(Ideal) -- compute the Krull dimension
• dual(MonomialIdeal) -- the Alexander dual of a monomial ideal
• dual(MonomialIdeal,List) -- the Alexander dual
• dual(MonomialIdeal,RingElement) -- the Alexander dual
• "MonomialIdeal _ ZZ" -- see generators of ideals and modules
• "generators(MonomialIdeal)" -- see generators(Ideal) -- the generator matrix of an ideal
• "Ideal * MonomialIdeal" -- see Ideal * Ideal -- product of ideals
• "MonomialIdeal * Ideal" -- see Ideal * Ideal -- product of ideals
• "Ideal + MonomialIdeal" -- see Ideal + Ideal -- sum of ideals
• "MonomialIdeal + Ideal" -- see Ideal + Ideal -- sum of ideals
• "MonomialIdeal ^ Array" -- see Ideal ^ Array -- bracket power of an ideal
• ideal(MonomialIdeal) -- converts a monomial ideal to an ideal
• "independentSets(MonomialIdeal)" -- see independentSets -- some size-maximal independent subsets of variables modulo an ideal
• "irreducibleDecomposition(MonomialIdeal)" -- see irreducibleDecomposition -- express a monomial ideal as an intersection of irreducible monomial ideals
• "isBorel(MonomialIdeal)" -- see isBorel -- whether an ideal is fixed by upper triangular changes of coordinates
• "isIdeal(MonomialIdeal)" -- see isIdeal -- whether something is an ideal
• "isMonomialIdeal(MonomialIdeal)" -- see isMonomialIdeal -- whether something is a monomial ideal
• "isSquareFree(MonomialIdeal)" -- see isSquareFree -- whether something is square free monomial ideal
• "jacobian(MonomialIdeal)" -- see jacobian(Ideal) -- the Jacobian matrix of the generators of an ideal
• lcm(MonomialIdeal) -- least common multiple of all minimal generators
• "Matrix // MonomialIdeal" -- see Matrix // Matrix -- factor a map through another
• "RingElement // MonomialIdeal" -- see Matrix // Matrix -- factor a map through another
• "Matrix % MonomialIdeal" -- see methods for normal forms and remainder -- normal form of ring elements and matrices
• "RingElement % MonomialIdeal" -- see methods for normal forms and remainder -- normal form of ring elements and matrices
• "monomialIdeal(MonomialIdeal)" -- see monomialIdeal(Ideal) -- monomial ideal of lead monomials of a Gröbner basis
• "numgens(MonomialIdeal)" -- see numgens(Ring) -- number of generators of a polynomial ring
• "polarize(MonomialIdeal)" -- see polarize -- given a monomial ideal, computes the squarefree monomial ideal obtained via polarization
• "resolution(MonomialIdeal)" -- see resolution(Ideal) -- compute a projective resolution of (the quotient ring corresponding to) an ideal
• "ring(MonomialIdeal)" -- see ring -- get the associated ring of an object
• "Ring / MonomialIdeal" -- see Ring / Ideal -- make a quotient ring
• "standardPairs(MonomialIdeal)" -- see standardPairs -- find the standard pairs of a monomial ideal
• "standardPairs(MonomialIdeal,List)" -- see standardPairs -- find the standard pairs of a monomial ideal

## For the programmer

The object MonomialIdeal is a type, with ancestor classes Ideal < HashTable < Thing.