ideal.spad line 1 [edit on github]
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
.
I^n
computes the n
th power of the ideal I
.
backOldPos(genPos)
takes the result produced by generalPosition and performs the inverse transformation, returning the original ideal backOldPos(generalPosition(I, listvar))
= I
.
coerce(polyList)
converts the list of polynomials polyList
to an ideal.
dimension(I)
gives the dimension of the ideal I
. in the ring F[lvar]
, where lvar are the variables appearing in I
dimension(I, lvar)
gives the dimension of the ideal I
, in the ring F[lvar]
element?(f, I)
tests whether the polynomial f
belongs to the ideal I
.
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(I)
returns a list of generators for the ideal I
.
groebner(I)
returns a set of generators of I
that are a Groebner basis for I
.
groebner?(I)
tests if the generators of the ideal I
are a Groebner basis.
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(polyList)
constructs the ideal generated by the list of polynomials polyList
.
in?(I, J)
tests if the ideal I
is contained in the ideal J
.
inRadical?(f, I)
tests if some power of the polynomial f
belongs to the ideal I
.
intersect(I, J)
computes the intersection of the ideals I
and J
.
intersect(LI)
computes the intersection of the list of ideals LI
.
leadingIdeal(I)
is the ideal generated by the leading terms of the elements of the ideal I
.
one?(I)
tests whether the ideal I
is the unit ideal, i.e. contains 1.
quotient(I, J)
computes the quotient of the ideals I
and J
, (I: J)
.
quotient(I, f)
computes the quotient of the ideal I
by the principal ideal generated by the polynomial f
, (I: (f))
.
relationsIdeal(polyList)
returns the ideal of relations among the polynomials in polyList
.
saturate(I, f)
is the saturation of the ideal I
with respect to the multiplicative set generated by the polynomial f
.
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?(I)
tests whether the ideal I
is the zero ideal
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
zeroDim?(I, lvar)
tests if the ideal I
is zero dimensional, i.e. all its associated primes are maximal, in the ring F[lvar]