# PolynomialIdeal(F, Expon, VarSet, DPoly)ΒΆ

ideal.spad line 1 [edit on github]

F: Field

Expon: OrderedAbelianMonoidSup

VarSet: OrderedSet

DPoly: PolynomialCategory(F, Expon, VarSet)

This domain represents polynomial ideals with coefficients in any field and supports the basic ideal operations, including intersection, sum and quotient. An ideal is represented by a list of polynomials (the generators of the ideal) and a boolean that is `true`

if the generators are a Groebner basis. The algorithms used are based on Groebner basis computations. The ordering is determined by the datatype of the input polynomials. Users may use refinements of total degree orderings.

- *: (%, %) -> %
`I*J`

computes the product of the ideal`I`

and`J`

.

- +: (%, %) -> %
`I+J`

computes the ideal generated by the union of`I`

and`J`

.

- ^: (%, NonNegativeInteger) -> %
`I^n`

computes the`n`

th power of the ideal`I`

.

- backOldPos: Record(mval: Matrix F, invmval: Matrix F, genIdeal: %) -> %
`backOldPos(genPos)`

takes the result produced by generalPosition and performs the inverse transformation, returning the original ideal`backOldPos(generalPosition(I, listvar))`

=`I`

.

- coerce: % -> OutputForm
from CoercibleTo OutputForm

- coerce: List DPoly -> %
`coerce(polyList)`

converts the list of polynomials`polyList`

to an ideal.

- dimension: % -> Integer
`dimension(I)`

gives the dimension of the ideal`I`

. in the ring`F[lvar]`

, where lvar are the variables appearing in`I`

- dimension: (%, List VarSet) -> Integer
`dimension(I, lvar)`

gives the dimension of the ideal`I`

, in the ring`F[lvar]`

- element?: (DPoly, %) -> Boolean
`element?(f, I)`

tests whether the polynomial`f`

belongs to the ideal`I`

.

- generalPosition: (%, List VarSet) -> Record(mval: Matrix F, invmval: Matrix F, genIdeal: %)
`generalPosition(I, listvar)`

perform a random linear transformation on the variables in listvar and returns the transformed ideal along with the change of basis matrix.

- generators: % -> List DPoly
`generators(I)`

returns a list of generators for the ideal`I`

.

- groebner?: % -> Boolean
`groebner?(I)`

tests if the generators of the ideal`I`

are a Groebner basis.

- groebner: % -> %
`groebner(I)`

returns a set of generators of`I`

that are a Groebner basis for`I`

.

- groebnerIdeal: List DPoly -> %
`groebnerIdeal(polyList)`

constructs the ideal generated by the list of polynomials`polyList`

which are assumed to be a Groebner basis. Note: this operation avoids a Groebner basis computation.

- ideal: List DPoly -> %
`ideal(polyList)`

constructs the ideal generated by the list of polynomials`polyList`

.

- in?: (%, %) -> Boolean
`in?(I, J)`

tests if the ideal`I`

is contained in the ideal`J`

.

- inRadical?: (DPoly, %) -> Boolean
`inRadical?(f, I)`

tests if some power of the polynomial`f`

belongs to the ideal`I`

.

- intersect: (%, %) -> %
`intersect(I, J)`

computes the intersection of the ideals`I`

and`J`

.

- intersect: List % -> %
`intersect(LI)`

computes the intersection of the list of ideals`LI`

.

- latex: % -> String
from SetCategory

- leadingIdeal: % -> %
`leadingIdeal(I)`

is the ideal generated by the leading terms of the elements of the ideal`I`

.

- one?: % -> Boolean
`one?(I)`

tests whether the ideal`I`

is the unit ideal, i.e. contains 1.

- quotient: (%, %) -> %
`quotient(I, J)`

computes the quotient of the ideals`I`

and`J`

,`(I: J)`

.

- quotient: (%, DPoly) -> %
`quotient(I, f)`

computes the quotient of the ideal`I`

by the principal ideal generated by the polynomial`f`

,`(I: (f))`

.

- relationsIdeal: List DPoly -> SuchThat(List Polynomial F, List Equation Polynomial F) if VarSet has ConvertibleTo Symbol
`relationsIdeal(polyList)`

returns the ideal of relations among the polynomials in`polyList`

.

- saturate: (%, DPoly) -> %
`saturate(I, f)`

is the saturation of the ideal`I`

with respect to the multiplicative set generated by the polynomial`f`

.

- saturate: (%, DPoly, List VarSet) -> %
`saturate(I, f, lvar)`

is the saturation with respect to the prime principal ideal which is generated by`f`

in the polynomial ring`F[lvar]`

.

- zero?: % -> Boolean
`zero?(I)`

tests whether the ideal`I`

is the zero ideal

- zeroDim?: % -> Boolean
`zeroDim?(I)`

tests if the ideal`I`

is zero dimensional, i.e. all its associated primes are maximal, in the ring`F[lvar]`

, where lvar are the variables appearing in`I`