# Ideal -- the class of all ideals

## Description

For basic information about ideals in Macaulay2, see ideals.

Common ways to make an ideal:

Common ways to get information about an ideal:
Common operations on ideals:
Gröbner bases, normal forms, free resolutions
• gb -- compute a Gröbner basis
• leadTerm -- get the greatest term
• codim -- compute the codimension
• dim -- compute the Krull dimension
• Matrix % Ideal -- normal form of ring elements and matrices
• resolution -- projective resolution
• betti -- display or modify a Betti diagram
Primary decomposition and components of an ideal
Ideals from geometry
Common ways to use an ideal:

An ideal I is an immutable object, so if you want to cache information about it, put it in the hash table I.cache.

## Types of ideal :

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

## Functions and methods returning an ideal :

• "Ideal * Ring" -- see * -- a binary operator, usually used for multiplication
• "MonomialIdeal * Ring" -- see * -- a binary operator, usually used for multiplication
• "Ring * Ideal" -- see * -- a binary operator, usually used for multiplication
• "Ring * MonomialIdeal" -- see * -- a binary operator, usually used for multiplication
• "RingElement * Ideal" -- see * -- a binary operator, usually used for multiplication
• "annihilator(CoherentSheaf)" -- see annihilator -- the annihilator ideal
• "annihilator(Ideal)" -- see annihilator -- the annihilator ideal
• "annihilator(Module)" -- see annihilator -- the annihilator ideal
• "annihilator(RingElement)" -- see annihilator -- the annihilator ideal
• "conductor(RingMap)" -- see conductor -- the conductor of a finite ring map
• "content(RingElement)" -- see content -- the content of a polynomial
• "content(RingElement,RingElement)" -- see content -- the content of a polynomial
• "expectedReesIdeal(Module)" -- see expectedReesIdeal -- symmetric algebra ideal plus jacobian dual
• Fano(ZZ,Ideal) -- Fano scheme
• Fano(ZZ,Ideal,Ring) -- Fano scheme
• fittingIdeal -- Fitting ideal of a module
• graphIdeal(RingMap) -- the ideal of the graph of the regular map corresponding to a ring map
• "Grassmannian" -- see Grassmannian(ZZ,ZZ) -- the Grassmannian of linear subspaces of a vector space
• "homogenize(Ideal,RingElement)" -- see homogenize -- homogenize with respect to a variable
• "icPIdeal(RingElement,RingElement,ZZ)" -- see icPIdeal -- compute the integral closure in prime characteristic of a principal ideal
• ideal -- make an ideal
• Ideal * Ideal -- product of ideals
• "Ideal * MonomialIdeal" -- see Ideal * Ideal -- product of ideals
• "MonomialIdeal * Ideal" -- see Ideal * Ideal -- product of ideals
• Ideal * RingElement (missing documentation)
• Ideal + Ideal -- sum of ideals
• "Ideal + MonomialIdeal" -- see Ideal + Ideal -- sum of ideals
• "MonomialIdeal + Ideal" -- see Ideal + Ideal -- sum of ideals
• Ideal ^ ZZ -- power of an ideal
• ideal(List) -- make an ideal
• "ideal(Sequence)" -- see ideal(List) -- make an ideal
• ideal(Matrix) -- make an ideal
• ideal(Module) -- converts a module to an ideal
• "ideal(Number)" -- see ideal(RingElement) -- make an ideal
• ideal(RingElement) -- make an ideal
• ideal(String) -- make an ideal using classic Macaulay syntax
• "integralClosure(Ideal)" -- see integralClosure(Ideal,RingElement,ZZ) -- integral closure of an ideal in an affine domain
• "integralClosure(Ideal,RingElement)" -- see integralClosure(Ideal,RingElement,ZZ) -- integral closure of an ideal in an affine domain
• "integralClosure(Ideal,ZZ)" -- see integralClosure(Ideal,RingElement,ZZ) -- integral closure of an ideal in an affine domain
• "intersect(Ideal)" -- see intersect(Ideal,Ideal) -- compute an intersection of a sequence of ideals or modules
• intersect(Ideal,Ideal) -- compute an intersection of a sequence of ideals or modules
• kernel(RingMap) -- kernel of a ringmap
• "lift(Ideal,type of RingElement)" -- see lift -- lift to another ring
• "localize(Ideal,Ideal)" -- see localize -- localize an ideal at a prime ideal
• minimalPresentation(Ideal) -- compute a minimal presentation of the quotient ring defined by an ideal
• "prune(Ideal)" -- see minimalPresentation(Ideal) -- compute a minimal presentation of the quotient ring defined by an ideal
• "minimalReduction(Ideal)" -- see minimalReduction -- Find a minimal reduction of an ideal
• minors(ZZ,Matrix) -- ideal generated by minors
• "Ideal ** Ring" -- see Module ** Ring -- tensor product
• "Ring ** Ideal" -- see Module ** Ring -- tensor product
• "permanents(ZZ,Matrix)" -- see permanents -- ideal generated by square permanents of a matrix
• pfaffians -- ideal generated by Pfaffians
• "primaryComponent(Ideal,Ideal)" -- see primaryComponent -- find a primary component corresponding to an associated prime
• "Ideal : Ideal" -- see quotient(Module,Module) -- ideal or submodule quotient
• "Ideal : RingElement" -- see quotient(Module,Module) -- ideal or submodule quotient
• "Module : Module" -- see quotient(Module,Module) -- ideal or submodule quotient
• "quotient(Ideal,Ideal)" -- see quotient(Module,Module) -- ideal or submodule quotient
• "quotient(Ideal,RingElement)" -- see quotient(Module,Module) -- ideal or submodule quotient
• quotient(Module,Module) -- ideal or submodule quotient
• "reesIdeal(Ideal)" -- see reesIdeal -- Compute the defining ideal of the Rees Algebra
• "reesIdeal(Ideal,RingElement)" -- see reesIdeal -- Compute the defining ideal of the Rees Algebra
• "reesIdeal(Module)" -- see reesIdeal -- Compute the defining ideal of the Rees Algebra
• "reesIdeal(Module,RingElement)" -- see reesIdeal -- Compute the defining ideal of the Rees Algebra
• "regSeqInIdeal(Ideal)" -- see regSeqInIdeal -- a regular sequence contained in an ideal
• "regSeqInIdeal(Ideal,ZZ)" -- see regSeqInIdeal -- a regular sequence contained in an ideal
• "regSeqInIdeal(Ideal,ZZ,ZZ,ZZ)" -- see regSeqInIdeal -- a regular sequence contained in an ideal
• "removeLowestDimension(Ideal)" -- see removeLowestDimension -- remove components of lowest dimension
• "RingMap Ideal" -- see RingMap RingElement -- apply a ring map
• "saturate(Ideal)" -- see saturate -- saturation of ideal or submodule
• "saturate(Ideal,Ideal)" -- see saturate -- saturation of ideal or submodule
• "saturate(Ideal,RingElement)" -- see saturate -- saturation of ideal or submodule
• "Schubert" -- see Schubert(ZZ,ZZ,VisibleList) -- find the Plücker ideal of a Schubert variety
• specialFiberIdeal -- Special fiber of a blowup
• "substitute(Ideal,List)" -- see substitute -- substituting values for variables
• "substitute(Ideal,Matrix)" -- see substitute -- substituting values for variables
• "substitute(Ideal,Ring)" -- see substitute -- substituting values for variables
• "substitute(Ideal,RingFamily)" -- see substitute -- substituting values for variables
• "symmetricAlgebraIdeal(Ideal)" -- see symmetricAlgebraIdeal -- Ideal of the symmetric algebra of an ideal or module
• "symmetricAlgebraIdeal(Module)" -- see symmetricAlgebraIdeal -- Ideal of the symmetric algebra of an ideal or module
• "symmetricKernel(Matrix)" -- see symmetricKernel -- Compute the Rees ring of the image of a matrix
• "tangentCone" -- see tangentCone(Ideal)
• "topComponents(Ideal)" -- see topComponents -- compute top dimensional component of an ideal or module
• "trim(Ideal)" -- see trim -- minimize generators and relations
• truncate(List,Ideal)
• truncate(List,Ring)

## Methods that use an ideal :

• "Number % Ideal" -- see % -- a binary operator, usually used for remainder and reduction
• "Ideal * CoherentSheaf" -- see * -- a binary operator, usually used for multiplication
• "Ideal * Module" -- see * -- a binary operator, usually used for multiplication
• "Ideal * Vector" -- see * -- a binary operator, usually used for multiplication
• "Ideal + RingElement" -- see + -- a unary or binary operator, usually used for addition
• "Ideal == Ideal" -- see == -- equality
• "Ideal == Module" -- see == -- equality
• "Ideal == MonomialIdeal" -- see == -- equality
• "Ideal == Ring" -- see == -- equality
• "Ideal == ZZ" -- see == -- equality
• "Module == Ideal" -- see == -- equality
• "MonomialIdeal == Ideal" -- see == -- equality
• "Ring == Ideal" -- see == -- equality
• "ZZ == Ideal" -- see == -- equality
• "associatedPrimes(Ideal)" -- see associatedPrimes -- find associated primes
• "basis(Ideal)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(InfiniteNumber,InfiniteNumber,Ideal)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(InfiniteNumber,List,Ideal)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(InfiniteNumber,ZZ,Ideal)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(List,Ideal)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(List,InfiniteNumber,Ideal)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(List,List,Ideal)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(List,ZZ,Ideal)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(ZZ,Ideal)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(ZZ,InfiniteNumber,Ideal)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(ZZ,List,Ideal)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "basis(ZZ,ZZ,Ideal)" -- see basis -- basis or generating set of all or part of a ring, ideal or module
• "betti(Ideal)" -- see betti -- display or modify a Betti diagram
• codim(Ideal) -- compute the codimension
• "CoherentSheaf / Ideal" -- see CoherentSheaf / CoherentSheaf -- quotient of coherent sheaves
• "comodule(Ideal)" -- see comodule -- submodule to quotient module
• "quotient(Ideal)" -- see comodule -- submodule to quotient module
• degree(Ideal)
• "degrees(Ideal)" -- see degrees(Ring) -- degrees of generators
• dim(Ideal) -- compute the Krull dimension
• "distinguished(Ideal)" -- see distinguished -- Compute the distinguished subvarieties of a pullback, intersection or cone
• "distinguished(Ideal,Ideal)" -- see distinguished -- Compute the distinguished subvarieties of a pullback, intersection or cone
• "distinguished(RingMap,Ideal)" -- see distinguished -- Compute the distinguished subvarieties of a pullback, intersection or cone
• "eliminate(List,Ideal)" -- see eliminate
• "eliminate(RingElement,Ideal)" -- see eliminate
• euler(Ideal) -- Euler characteristic
• eulers(Ideal) -- list the sectional Euler characteristics
• "expectedReesIdeal(Ideal)" -- see expectedReesIdeal -- symmetric algebra ideal plus jacobian dual
• "Ext(Ideal,Ideal)" -- see Ext(Module,Module) -- total Ext module
• "Ext(Ideal,Module)" -- see Ext(Module,Module) -- total Ext module
• "Ext(Ideal,Ring)" -- see Ext(Module,Module) -- total Ext module
• "Ext(Module,Ideal)" -- see Ext(Module,Module) -- total Ext module
• "Ext^ZZ(Matrix,Ideal)" -- see Ext^ZZ(Matrix,Module) -- map between Ext modules
• "Ext^ZZ(Ideal,Matrix)" -- see Ext^ZZ(Module,Matrix) -- map between Ext modules
• "Ext^ZZ(Ideal,Ideal)" -- see Ext^ZZ(Module,Module) -- Ext module
• "Ext^ZZ(Ideal,Module)" -- see Ext^ZZ(Module,Module) -- Ext module
• "Ext^ZZ(Ideal,Ring)" -- see Ext^ZZ(Module,Module) -- Ext module
• "Ext^ZZ(Module,Ideal)" -- see Ext^ZZ(Module,Module) -- Ext module
• "flattenRing(Ideal)" -- see flattenRing -- write a ring as a (quotient of a) polynomial ring
• "gb(Ideal)" -- see gb -- compute a Gröbner basis
• "gbRemove(Ideal)" -- see gbRemove -- remove Gröbner basis
• "gbSnapshot(Ideal)" -- see gbSnapshot -- the Gröbner basis matrix as so far computed
• genera(Ideal) -- list of the successive linear sectional arithmetic genera
• "generator(Ideal)" -- see generator -- provide a single generator
• "Ideal _ ZZ" -- see generators of ideals and modules
• generators(Ideal) -- the generator matrix of an ideal
• "genus(Ideal)" -- see genus(CoherentSheaf) -- arithmetic genus
• "groebnerBasis(Ideal)" -- see groebnerBasis -- Gröbner basis, as a matrix
• "hilbertFunction(List,Ideal)" -- see hilbertFunction -- the Hilbert function
• "hilbertFunction(ZZ,Ideal)" -- see hilbertFunction -- the Hilbert function
• hilbertPolynomial(Ideal) -- compute the Hilbert polynomial of the quotient of the ambient ring by the ideal
• hilbertSeries(Ideal) -- compute the Hilbert series of the quotient of the ambient ring by the ideal
• "Hom(Ideal,Ideal)" -- see Hom(Module,Module) -- module of homomorphisms
• "Hom(Ideal,Module)" -- see Hom(Module,Module) -- module of homomorphisms
• "Hom(Ideal,Ring)" -- see Hom(Module,Module) -- module of homomorphisms
• "Hom(Module,Ideal)" -- see Hom(Module,Module) -- module of homomorphisms
• "Hom(Ring,Ideal)" -- see Hom(Module,Module) -- module of homomorphisms
• Ideal * ZZ (missing documentation)
• Ideal + Number (missing documentation)
• /// Function \ Ideal /// -- see Ideal / Function -- apply a function to generators of an ideal
• Ideal / Function -- apply a function to generators of an ideal
• Ideal / Ideal -- quotient module
• Ideal ^ Array -- bracket power of an ideal
• Ideal _* -- get the list of generators of an ideal
• "idealizer(Ideal,RingElement)" -- see idealizer -- compute Hom(I,I) as a quotient ring
• "independentSets(Ideal)" -- see independentSets -- some size-maximal independent subsets of variables modulo an ideal
• installHilbertFunction(Ideal,RingElement) (missing documentation)
• integralClosure(Ideal,RingElement,ZZ) -- integral closure of an ideal in an affine domain
• "intersectInP(Ideal,Ideal)" -- see intersectInP -- Compute distinguished varieties for an intersection in A^n or P^n
• "inverseSystem(Ideal)" -- see inverseSystem -- Inverse systems with equivariance
• "inverseSystem(ZZ,Ideal)" -- see inverseSystem -- Inverse systems with equivariance
• "irreducibleCharacteristicSeries(Ideal)" -- see irreducibleCharacteristicSeries -- irreducible characteristic series of an ideal
• "isHomogeneous(Ideal)" -- see isHomogeneous -- whether something is homogeneous (graded)
• "isIdeal(Ideal)" -- see isIdeal -- whether something is an ideal
• "isLinearType(Ideal)" -- see isLinearType -- Determine whether module has linear type
• "isLinearType(Ideal,RingElement)" -- see isLinearType -- Determine whether module has linear type
• "isMonomialIdeal(Ideal)" -- see isMonomialIdeal -- whether something is a monomial ideal
• "isPrimary(Ideal)" -- see isPrimary -- determine whether a submodule is primary
• "isPrimary(Ideal,Ideal)" -- see isPrimary -- determine whether a submodule is primary
• isPrime(Ideal) -- whether an ideal is prime
• "isReduction(Ideal,Ideal)" -- see isReduction -- Determine whether an ideal is a reduction
• "isReduction(Ideal,Ideal,RingElement)" -- see isReduction -- Determine whether an ideal is a reduction
• isSubset(Ideal,Ideal) -- whether one object is a subset of another
• "isSubset(Ideal,Module)" -- see isSubset(Module,Module) -- whether one object is a subset of another
• "isSubset(Module,Ideal)" -- see isSubset(Module,Module) -- whether one object is a subset of another
• "isSupportedInZeroLocus(Ideal,GradedModule)" -- see isSupportedInZeroLocus -- whether support of a module is contained in the zero locus of the (irrelevant) ideal
• "isSupportedInZeroLocus(Ideal,Ideal)" -- see isSupportedInZeroLocus -- whether support of a module is contained in the zero locus of the (irrelevant) ideal
• "isSupportedInZeroLocus(Ideal,Module)" -- see isSupportedInZeroLocus -- whether support of a module is contained in the zero locus of the (irrelevant) ideal
• jacobian(Ideal) -- the Jacobian matrix of the generators of an ideal
• "kernelOfLocalization(Module,Ideal)" -- see kernelOfLocalization -- the kernel of the localization map
• leadTerm(Ideal) -- get the ideal of greatest terms
• "lift(Ideal,type of QQ)" -- see lift -- lift to another ring
• "lift(Ideal,type of ZZ)" -- see lift -- lift to another ring
• "Matrix % Ideal" -- see methods for normal forms and remainder -- normal form of ring elements and matrices
• "RingElement % Ideal" -- see methods for normal forms and remainder -- normal form of ring elements and matrices
• "mingens(Ideal)" -- see mingens(Module) -- minimal generator matrix
• "minimalBetti(Ideal)" -- see minimalBetti -- minimal betti numbers of (the minimal free resolution of) a homogeneous ideal or module
• "decompose(Ideal)" -- see minimalPrimes -- minimal primes of an ideal
• "minimalPrimes(Ideal)" -- see minimalPrimes -- minimal primes of an ideal
• "Module / Ideal" -- see Module / Module -- quotient module
• "Ideal _ List" -- see Module _ List -- map from free module to some generators
• module(Ideal) (missing documentation)
• monomialIdeal(Ideal) -- monomial ideal of lead monomials of a Gröbner basis
• "monomialSubideal(Ideal)" -- see monomialSubideal -- find the largest monomial ideal in an ideal
• "multidegree(Ideal)" -- see multidegree -- multidegree
• "multiplicity(Ideal)" -- see multiplicity -- Compute the Hilbert-Samuel multiplicity of an ideal
• "multiplicity(Ideal,RingElement)" -- see multiplicity -- Compute the Hilbert-Samuel multiplicity of an ideal
• "normalCone(Ideal)" -- see normalCone -- The normal cone of a subscheme
• "normalCone(Ideal,RingElement)" -- see normalCone -- The normal cone of a subscheme
• Number + Ideal (missing documentation)
• numgens(Ideal) -- number of generators of an ideal
• "poincare(Ideal)" -- see poincare -- assemble degrees of a ring, module, or ideal into a polynomial
• "preimage(RingMap,Ideal)" -- see preimage -- preimage of an ideal under a ring map
• "primaryDecomposition(Ideal)" -- see primaryDecomposition -- irredundant primary decomposition of an ideal
• "Module : Ideal" -- see quotient(Module,Module) -- ideal or submodule quotient
• "quotient(Module,Ideal)" -- see quotient(Module,Module) -- ideal or submodule quotient
• "radicalContainment(Ideal,Ideal)" -- see radicalContainment -- whether an element is contained in the radical of an ideal
• "radicalContainment(RingElement,Ideal)" -- see radicalContainment -- whether an element is contained in the radical of an ideal
• "random(List,Ideal)" -- see random(ZZ,Ideal) -- get a random homogeneous element from a graded ideal
• random(ZZ,Ideal) -- get a random homogeneous element from a graded ideal
• "randomKRationalPoint(Ideal)" -- see randomKRationalPoint -- Pick a random K rational point on the scheme X defined by I
• "reductionNumber(Ideal,Ideal)" -- see reductionNumber -- Reduction number of one ideal with respect to another
• "reesAlgebra(Ideal)" -- see reesAlgebra -- Compute the defining ideal of the Rees Algebra
• "reesAlgebra(Ideal,RingElement)" -- see reesAlgebra -- Compute the defining ideal of the Rees Algebra
• "regularity(Ideal)" -- see regularity -- compute the Castelnuovo-Mumford regularity
• resolution(Ideal) -- compute a projective resolution of (the quotient ring corresponding to) an ideal
• "ring(Ideal)" -- see ring -- get the associated ring of an object
• Ring / Ideal -- make a quotient ring
• RingElement + Ideal (missing documentation)
• "saturate(Module,Ideal)" -- see saturate -- saturation of ideal or submodule
• "saturate(Vector,Ideal)" -- see saturate -- saturation of ideal or submodule
• "singularLocus(Ideal)" -- see singularLocus -- singular locus
• "specialFiber(Ideal)" -- see specialFiber -- Special fiber of a blowup
• "specialFiber(Ideal,RingElement)" -- see specialFiber -- Special fiber of a blowup
• "specialFiberIdeal(Ideal)" -- see specialFiberIdeal -- Special fiber of a blowup
• "specialFiberIdeal(Ideal,RingElement)" -- see specialFiberIdeal -- Special fiber of a blowup
• "substitute(Ideal,Option)" -- see substitute -- substituting values for variables
• support(Ideal) -- list of variables occurring in the generators of an ideal
• tangentCone(Ideal)
• "toDual(ZZ,Ideal)" -- see toDual -- finds the inverse system to an ideal up to a given degree
• Tor_ZZ(Ideal,Matrix) (missing documentation)
• Tor_ZZ(Matrix,Ideal) (missing documentation)
• "Tor_ZZ(Ideal,Ideal)" -- see Tor_ZZ(Module,Module) -- compute a Tor module
• "Tor_ZZ(Ideal,Module)" -- see Tor_ZZ(Module,Module) -- compute a Tor module
• "Tor_ZZ(Ideal,Ring)" -- see Tor_ZZ(Module,Module) -- compute a Tor module
• "Tor_ZZ(Module,Ideal)" -- see Tor_ZZ(Module,Module) -- compute a Tor module
• truncate(ZZ,Ideal)
• variety(Ideal) -- the closed projective subvariety defined by an ideal
• Vector % Ideal (missing documentation)
• "versalEmbedding(Ideal)" -- see versalEmbedding -- Compute a versal embedding
• "whichGm(Ideal)" -- see whichGm -- Largest Gm satisfied by an ideal

## For the programmer

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