Magma

MAGMA Computational Algebra System

Magma
 •  How to get it
 •  Download
 •  Online Demo
 
Resources
 •  Online Help
 •  Discovering Mathematics with Magma
 •  Citations
 •  How to cite Magma
 •  Links
 •  Contact us
 
[Next][Prev] [Right] [Left] [Up] [Index] [Root]

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

Basic Operations

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 an ideal I of a polynomial ring P over a field and an ideal J of P, such that J ⊂I, return the affine algebra I/J.
QuotientDimension(I) : RngMPol -> RngIntElt
Given an ideal I of a polynomial ring P over a field K, return the dimension of P/I as a K-vector space. Note that this is quite different from the function Dimension below (which returns the Krull dimension of an ideal).
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 saturation (colon) ideal I:f^∞, consisting of the polynomials g of P such that there exists an i ≥1 with fi * g ∈I. An integer s with s ≥1 is also returned such that I:f^∞= I:fs. 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.
ColonIdealEquivalent(I, f) : RngMPol, RngMPolElt -> RngMPol, RngMPolElt
Saturation(I, f) : RngMPol, RngMPolElt -> RngMPol, RngMPolElt
Given an ideal I and an element f of a polynomial ring P, return the saturation (colon) ideal C=I:f^∞, and a polynomial g∈P such that C=I:< g > and g is of minimal degree. The irreducible factors of g will be a subset of the irreducible factors of f (and the corresponding multiplicities may be greater or lesser, depending on how often an irreducible factor divides the ideal I).
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.
Saturation(I, J) : RngMPol, RngMPol -> RngMPol
Given ideals I and J of some polynomial ring P, return the saturation (I:J^∞): that is, the ideal { f ∈P: exists n > 0, fn J ⊆I}.
Saturation(I, x) : RngMPol, RngMPolElt -> RngMPol
Given an ideal I of a polynomial ring P and an element x of P, return the saturation of I with respect to the principal ideal generated by x.
Saturation(I): RngMPol -> RngMPol
Given an ideal I of a polynomial ring P, return the saturation of I with respect to the irrelevant ideal of P -- that is, the ideal of all elements of P having positive degree.

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.
IsHomogeneous(I) : RngMPol -> BoolElt
Given an ideal I of the polynomial ring P, this function returns whether I is homogeneous with respect to the weights on the variables of P (i.e., whether I possesses a basis consisting of homogeneous polynomials 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 ∈I, either a ∈I or bn ∈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 ∈I, either a ∈I or b ∈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.
HasGrevlexOrder(I) : RngMPol -> BoolElt
Given an ideal I of the polynomial ring P, return whether the monomial order of I is the grevlex order.

Example GB_IdealArithmetic (H97E11)

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

> P<x,y,z> := PolynomialRing(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
Order: Lexicographical
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
Order: Lexicographical
Variables: x, y, z
Basis:
[
    x^4 + x^3 - x*z^2 + z^12 - 4*z^9 + 6*z^6 - z^4 - 4*z^3 + z + 1,
    x^5 + x^4 - x^2*z^2 + z^9 - 3*z^6 + 3*z^3 - z - 1,
    x*z^3 - x - 1,
    y - z^3 + 1
]
> A eq M;
true
> QuotientDimension(A);
24
> ColonIdeal(I, J);
Ideal of Polynomial ring of rank 3 over Rational Field
Order: Lexicographical
Variables: x, y, z
Inhomogeneous, Dimension 0
Basis:
[
    x*y - 1,
    x^3*z^2 - y^2,
    x*z^3 - x - 1
]

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, [ 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 g 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 Gröbner basis.) If S is a sequence, one may also assign a second return value C which gives the coordinates of the reduction, so that C[i].S[i] is subtracted from f for each i to yield g.
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 (H97E12)

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]
                       

Version: V2.15 of Tue Dec 23 15:17:23 EST 2008

Valid HTML 4.01! Valid CSS!