# 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 degrees
Numeric information about homogeneous ideals
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) -- 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
• fittingIdeal(ZZ,Module), see 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 ** LocalRing (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
• kernel(RingMap) -- kernel of a ringmap
• lift(Ideal,type of RingElement), see lift -- lift to another ring
• localize(Ideal,Ideal) -- 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
• permanents(ZZ,Matrix), see permanents -- ideal generated by square permanents of a matrix
• pfaffians -- ideal generated by Pfaffians
• pfaffians(ZZ,Matrix), see pfaffians -- ideal generated by Pfaffians
• primaryComponent(Ideal,Ideal) -- find a primary component corresponding to an associated prime
• Ideal : Ideal, see quotient(Ideal,Ideal) -- ideal or submodule quotient
• Ideal : RingElement, see quotient(Ideal,Ideal) -- ideal or submodule quotient
• Module : Module, see quotient(Ideal,Ideal) -- ideal or submodule quotient
• quotient(Ideal,Ideal) -- ideal or submodule quotient
• quotient(Ideal,RingElement), see quotient(Ideal,Ideal) -- ideal or submodule quotient
• quotient(Module,Module), see quotient(Ideal,Ideal) -- ideal or submodule quotient
• radical(Ideal), see radical -- the radical of an ideal
• 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
• 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
• saturate(MonomialIdeal,RingElement), see saturate -- saturation of ideal or submodule
• Schubert, see Schubert(ZZ,ZZ,VisibleList) -- find the Pluecker 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) -- compute top dimensional component
• trim(Ideal) (missing documentation)

## 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
• ? Ideal (missing documentation)
• analyticSpread(Ideal), see analyticSpread -- Compute the analytic spread of a module or ideal
• analyticSpread(Ideal,RingElement), see analyticSpread -- Compute the analytic spread of a module or ideal
• associatedPrimes(Ideal) -- find the associated primes of an ideal
• 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) -- gives the degrees of generators.
• codim(Ideal) -- compute the codimension
• codim(Ideal,Ideal) (missing documentation)
• 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)
• degreeLength(Ideal), see degreeLength -- the number of degrees
• degrees(Ideal), see degrees(Ring) -- degrees of generators
• degreesRing(Ideal) (missing documentation)
• depth(Ideal,Ideal) (missing documentation) -- computes the depth of a ring
• depth(Ideal,Module) (missing documentation) -- computes the depth of a ring
• depth(Ideal,Ring) (missing documentation) -- computes the depth of a ring
• 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 * ChainComplex (missing documentation)
• 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
• info(Ideal) (missing documentation)
• installHilbertFunction(Ideal,RingElement), see installHilbertFunction -- install a Hilbert function without computation
• integralClosure(Ideal), see integralClosure(Ideal,ZZ) -- integral closure of an ideal in an affine domain
• integralClosure(Ideal,ZZ) -- integral closure of an ideal in an affine domain
• integralClosures(Ideal) (missing documentation)
• intersectInP(Ideal,Ideal), see intersectInP -- Compute distinguished varieties for an intersection in A^n or P^n
• inverse(Ideal) (missing documentation)
• 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 an ideal is primary
• isPrimary(Ideal,Ideal), see isPrimary -- determine whether an ideal is primary
• isPrime(Ideal), see isPrime -- whether a integer, polynomial, or 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
• jacobian(Ideal) -- the Jacobian matrix of the generators of an ideal
• leadTerm(Ideal) -- get the ideal of greatest terms
• leadTerm(ZZ,Ideal) -- get the ideal of lead polynomials
• lift(Ideal,type of QQ), see lift -- lift to another ring
• lift(Ideal,type of ZZ), see lift -- lift to another ring
• localRing(EngineRing,Ideal) (missing documentation)
• localRing(Ring,Ideal) (missing documentation) -- Localizing polynomial rings at a prime ideal
• member(RingElement,Ideal) (missing documentation)
• 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) -- minimal betti numbers of (the mininimal free resolution of) a homogeneous ideal or module
• decompose(Ideal), see minimalPrimes -- minimal associated primes of an ideal
• minimalPrimes(Ideal), see minimalPrimes -- minimal associated 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) -- assemble degrees of the quotient of the ambient ring by an 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(Ideal,Ideal) -- ideal or submodule quotient
• quotient(Module,Ideal), see quotient(Ideal,Ideal) -- ideal or submodule quotient
• 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) (missing documentation)
• 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
• switch(Ideal) (missing documentation)
• 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(List,Ideal), see truncate -- truncation of the graded ring, ideal or module at a specified degree or set of degrees
• truncate(ZZ,Ideal), see truncate -- truncation of the graded ring, ideal or module at a specified degree or set of degrees
• 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.