[Next] [Prev] [Right] [Left] [Up] [Index] [Root]
Basic Operations on Ideals

Basic Operations on Ideals

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.

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 true if and only if I and J are the same.
IsGroebner(S) : { RngMPolElt } -> BoolElt
IsGroebner(S) : [ RngMPolElt ] -> BoolElt
Given a set or sequence S of polynomials describing a basis of an ideal, return whether the basis is a Gröbner basis.
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.
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.
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.
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.
IsZero(I) : RngMPol -> BoolElt
Given an ideal I of the polynomial ring P, return whether I is the zero ideal.
IsZeroDimensional(I) : RngMPol -> BoolElt
Given an ideal I of the polynomial ring P, return whether I is zero-dimensional (so the quotient of P by I has finite dimension as a vector space over the coefficient field -- see the section on dimension for further details).
I ne J : RngMPol, RngMPol -> BoolElt
Given two ideals I and J of the same polynomial ring P, return false if and only if I and J are the same.
I notsubset J : RngMPol, RngMPol -> BoolElt
Given two ideals I and J in the same polynomial ring P return false if and only if I is contained in J.
I subset J : RngMPol, RngMPol -> BoolElt
Given two ideals I and J in the same polynomial ring P return true if and only if I is contained in J.

Example RngMPol_IdealArithmetic (H29E14)

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.
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 RngMPol_ElementOperations (H29E15)

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]