[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Basic Operations on Ideals

In the following, note that since ideals of a full polynomial ring P are regarded as subrings of P, the ring P itself is a valid ideal as well (the ideal containing 1).

Subsections

Construction of New Ideals

I + J : RngMPol, RngMPol -> RngMPol
Given ideals I and J of the same polynomial ring P, return the sum of I and J, which is the ideal generated by the generators of I and those of J.
I * J : RngMPol, RngMPol -> RngMPol
Given ideals I and J of the same polynomial ring P, return the product of I and J, which is the ideal generated by the products of the generators of I and those of J.
I ^ k : RngMPol, RngIntElt -> RngMPol
Given an ideal I of the polynomial ring P, and an integer k, return the k-th power of I.
I / J : RngMPol, RngMPol -> RngMPolRes
Given a polynomial ring P over a field and an ideal J of P, return the affine algebra P/J.
ColonIdeal(I, J) : RngMPol, RngMPol -> RngMPol
IdealQuotient(I, J) : RngMPol, RngMPol -> RngMPol
Given ideals I and J of the same polynomial ring P, return the colon ideal I:J (or ideal quotient of I by J), consisting of the polynomials f of P such that f * g is in I for all g in J.
ColonIdeal(I, f) : RngMPol, RngMPolElt -> RngMPol, RngIntElt
IdealQuotient(I, f) : RngMPol, RngMPolElt -> RngMPol, RngIntElt
Given an ideal I and an element f of a polynomial ring P, return the colon ideal I:f^Infinity, consisting of the polynomials g of P such that there exists an i >= 1 with f^i * g in I. An integer s with s >= 1 is also returned such that I:f^Infinity = I:f^s. Note that if s is not needed, only one return value of the function should be expected which increases the efficiency enormously. Note also that this function is not equivalent to taking the ideal quotient of I by the ideal of P generated by f.
Generic(I) : RngMPol -> RngMPol
Given an ideal I of a generic polynomial ring P, return P.
LeadingMonomialIdeal(I) : RngMPol -> RngMPol
Given an ideal I, return the leading monomial ideal of I; that is, the ideal generated by all the leading monomials of I.
I meet J : RngMPol, RngMPol -> RngMPol
Given ideals I and J of the same polynomial ring P, return the intersection of I and J.
&meet S : [ RngMPol ] -> RngMPol
Given a set or sequence S of ideals of the same polynomial ring P, return the intersection of all the ideals of S.

Ideal Predicates

I eq J : RngMPol, RngMPol -> BoolElt
Given two ideals I and J of the same polynomial ring P, return whether I and J are equal.
I ne J : RngMPol, RngMPol -> BoolElt
Given two ideals I and J of the same polynomial ring P, return whether I and J are not equal.
I notsubset J : RngMPol, RngMPol -> BoolElt
Given two ideals I and J in the same polynomial ring P return whether I is not contained in J.
I subset J : RngMPol, RngMPol -> BoolElt
Given two ideals I and J in the same polynomial ring P return whether I is contained in J.
IsZero(I) : RngMPol -> BoolElt
Given an ideal I of the polynomial ring P, return whether I is the zero ideal (contains zero alone).
IsProper(I) : RngMPol -> BoolElt
Given an ideal I of the polynomial ring P, return whether I is proper; that is, whether I is strictly contained in P, or whether the Groebner basis of I does not contain 1 alone.
IsPrincipal(I) : RngMPol -> BoolElt, RngMPolElt
Given an ideal I of the polynomial ring P, return whether I is principal, and if so, return also a generator of I.
IsPrimary(I) : RngMPol -> BoolElt
Given an ideal I of the polynomial ring P, return whether I is primary. An ideal I is primary if and only if for all ab in I, either a in I or b^n in I for some n >= 1. The restrictions on I are the same as for the function PrimaryDecomposition---see the description of that function.
IsPrime(I) : RngMPol -> BoolElt
Given an ideal I of the polynomial ring P, return whether I is prime. An ideal I is prime if and only if for all ab in I, either a in I or b in I. The restrictions on I are the same as for the function PrimaryDecomposition---see the description of that function.
IsMaximal(I) : RngMPol -> BoolElt
Given an ideal I of the polynomial ring P, return whether I is maximal. The restrictions on I are the same as for the function PrimaryDecomposition---see the description of that function.
IsRadical(I) : RngMPol -> BoolElt
Given an ideal I of the polynomial ring P, return whether I is radical; that is, whether the radical of I is I itself. The restrictions on I are the same as for the function Radical---see the description of that function.
IsZeroDimensional(I) : RngMPol -> BoolElt
Given an ideal I of the polynomial ring P, defined over a field, return whether I is zero-dimensional (so the quotient of P by I has non-zero finite dimension as a vector space over the coefficient field -- see the section on dimension for further details). Note that the full polynomial ring P has dimension -1, so it is not zero-dimensional.

Example GB_IdealArithmetic (H66E8)

We construct some ideals in Q[x, y, z] and perform basic arithmetic on them.

> P<x, y, z> := PolynomialAlgebra(RationalField(), 3);
> I := ideal<P | x*y - 1, x^3*z^2 - y^2, x*z^3 - x - 1>;
> J := ideal<P | x*y - 1, x^2*z - y, x*z^3 - x - 1>;
> A := I * J;
> A;
Ideal of Polynomial ring of rank 3 over Rational Field
Lexicographical Order
Variables: x, y, z
Basis:
[
    x^2*y^2 - 2*x*y + 1
    x^3*y*z - x^2*z - x*y^2 + y
    x^2*y*z^3 - x^2*y - x*y - x*z^3 + x + 1
    x^4*y*z^2 - x^3*z^2 - x*y^3 + y^2
    x^5*z^3 - x^3*y*z^2 - x^2*y^2*z + y^3
    x^4*z^5 - x^4*z^2 - x^3*z^2 - x*y^2*z^3 + x*y^2 + y^2
    x^2*y*z^3 - x^2*y - x*y - x*z^3 + x + 1
    x^3*z^4 - x^3*z - x^2*z - x*y*z^3 + x*y + y
    x^2*z^6 - 2*x^2*z^3 + x^2 - 2*x*z^3 + 2*x + 1
]
> M := I meet J;
> M;
Ideal of Polynomial ring of rank 3 over Rational Field
Lexicographical Order
Variables: x, y, z
Basis:
[
    x^3 + x^2 + y^5 - y^2*z - z^2
    x^4 + x^3 - x*z^2 + y^4 - y*z
    -y + z^3 - 1
    x*y - 1
]
> A eq M;
true
> ColonIdeal(I, J);
Ideal of Polynomial ring of rank 3 over Rational Field
Lexicographical Order
Variables: x, y, z
Basis:
[
    -x*z^2 + y^4
    -x^2 - x + y^3*z
    x^2*z^2 - y^3
    x^3 + x^2 - y^2*z
    -y + z^3 - 1
    x*y - 1
]

Operations on Elements of Ideals

f in I : RngMPolElt, RngMPol -> BoolElt
Given a polynomial f from a polynomial ring P, together with an ideal I of P, return whether f is in I.
IsInRadical(f, I) : RngMPolElt, RngMPol -> BoolElt
Given a polynomial f from a polynomial ring P, together with an ideal I of P, return whether f is in the radical of I. Note that using this function is much quicker in general than actually computing the radical of I.
JacobianIdeal(f) : RngMPolElt -> RngMPol
Return the ideal generated by all first partial derivatives of the polynomial f.
NormalForm(f, I) : RngMPolElt, RngMPol -> RngMPolElt
Given a polynomial f from a polynomial ring P, together with an ideal I of P, return the unique normal form of f with respect to (the Gröbner basis of) I. The normal form of f is zero if and only if f is in I.
NormalForm(f, S) : RngMPolElt, [ RngMPolElt ] -> RngMPolElt
Given a polynomial f from a polynomial ring P, together with a set or sequence S of polynomials from P, return a normal form of f with respect to S. This is not unique in general. If the normal form of f is zero then f is in the ideal generated by S, but the converse is false in general. In fact, the normal form is unique if and only if S forms a Gro"ebner basis.
f notin I : RngMPolElt, RngMPol -> BoolElt
Given a polynomial f from a polynomial ring P, together with an ideal I of P, return whether f is not in I.
SPolynomial(f, g) : RngMPolElt, RngMPolElt -> RngMPolElt
Given elements f and g from a polynomial ring P, return the S-polynomial of f and g.

Example GB_ElementOperations (H66E9)

We demonstrate the element operations with respect to an ideal of Q[x, y, z].

> P<x, y, z> := PolynomialRing(RationalField(), 3);
> I := ideal<P | (x + y)^3, (y - z)^2, y^2*z + z>;
> NormalForm(y^2*z + z, I);
0
> NormalForm(x^3, I);
-3*x^2*y - 3*x*z^4 - 6*x*z^2 + 1/2*z^3 + 3/2*z
> NormalForm(z^4 + y^2, I);
2*z^4 + 2*z^2
> x + y in I;
false
> IsInRadical(x + y, I);
true
> IsInRadical((x + y)^2, I);
true
> IsInRadical(z, I);
false
> SPolynomial(x^4 + y - z, x^2 + y - z);
-x^2*y + x^2*z + y - z

 [Next][Prev] [Right] [Left] [Up] [Index] [Root]