Overview - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


Introduction to the PolynomialIdeals Package

 

Calling Sequence

Description

List of PolynomialIdeals Package Commands

List of Subpackages

Examples

Calling Sequence

PolynomialIdeals:-command(arguments)

command(arguments)

Description

• 

The PolynomialIdeals package is a collection of commands that support computations with commutative polynomial ideals in one or more variables over fields, such as computing the primary decomposition of a polynomial ideal.

• 

The main computational engine behind the package is Groebner bases, but no knowledge of them is required to use this package.

• 

Most of the commands support polynomials over the rational numbers, algebraic number fields, rational function fields, and algebraic function fields, as well as finite fields. Coefficients from algebraic extension fields can be specified using radicals or RootOfs.

• 

For an overview of the PolynomialIdeals package, see the PolynomialIdeals Package Example Worksheet.

• 

Each command and variable in the PolynomialIdeals package can be accessed by using either the long form or the short form of the name in the calling sequence.

• 

The long form, PolynomialIdeals:-command, is always available. The short form can be used after loading the package.

• 

You can use the Groebner package in conjunction with the PolynomialIdeals package.

  

Note: Both packages have the following exports of the same name and almost identical functionality: HilbertDimension, IsProper, IsZeroDimensional, and UnivariatePolynomial. After loading both packages using with, these names refer to the corresponding exports of the most recently loaded package, but you can still access the exports with the same name in the other package using the long form name, that is, by prepending the package name.

List of PolynomialIdeals Package Commands

  

The following is a list of available commands.

Add

Contract

EliminationIdeal

EquidimensionalDecomposition

Generators

HilbertDimension

IdealContainment

IdealInfo

IdealMembership

in

Intersect

IsMaximal

IsPrimary

IsPrime

IsProper

IsRadical

IsZeroDimensional

MaximalIndependentSet

Multiply

NumberOfSolutions

PolynomialIdeal

PrimaryDecomposition

PrimeDecomposition

Quotient

Radical

RadicalMembership

Saturate

Simplify

subset

UnivariatePolynomial

VanishingIdeal

ZeroDimensionalDecomposition

  

To display the help page for a particular PolynomialIdeals command, click the corresponding link in the table, or enter ?PolynomialIdeals:-command at the Maple prompt.

List of Subpackages

• 

The following is a list of available subpackages.

IdealInfo

interface to PolynomialIdeal data structure

Operators

binary operators: +, *, /, and ^, as well as a form of

 

Simplify that simplifies to a canonical form

Examples

withPolynomialIdeals:

We first create an ideal J using the PolynomialIdeal command. This ideal is generated by the two polynomials given to the constructor. The ideal is assumed to lie in the polynomial ring Qx,y,z by default.

JPolynomialIdealxzy2,x3yz

Jxzy2,x3yz

(1)

Now we test if a polynomial f in the polynomial ring Qx,y,z is in the ideal J using the IdealMembership command. Because the polynomial f is a polynomial combination of the generators, it is in J.

fexpandxy+1x3yzz2+x3xzy2

fx4z+x3y2+x4x3yxz3+y2z2+x3xyz+y2zyz

(2)

IdealMembershipf,J

true

(3)

Now we show how to do this using a shortcut syntax that corresponds more closely to a standard notation for ideals. This syntax is available whenever the package has been loaded using with(PolynomialIdeals). Otherwise, enclosing a quantity in angled brackets constructs a Vector for use with the LinearAlgebra package. For further options and details for constructing polynomial ideals, see PolynomialIdeal.

Jxzy2,x3yz

Jxzy2,x3yz

(4)

finJ

true

(5)

The PrimeDecomposition and PrimaryDecomposition commands compute prime and primary decompositions, respectively. Both return a sequence of ideals whose intersection contains the input ideal.  For a prime decomposition, this intersection has the same solutions as the original ideal (the intersection is equal to the radical), whereas for a primary decomposition the intersection is identically equal to the given ideal. The Intersect command is used below to compute this intersection.  In this case, our ideal J is radical, so the prime and primary decompositions are the same.

IsRadicalJ

true

(6)

PPrimeDecompositionJ

Px,y,xz+y2,x2yz2,x3yz

(7)

KIntersectP

Kxz+y2,x3yz

(8)

How do we know that K=J? The IdealContainment command can be used to test multiple inclusions simultaneously.  It returns true if all of the inclusions are true, and false if any of them fail. A particularly useful form of the command is shown below, where it is used to test ideal equality.

IdealContainmentJ,K,J

true

(9)

Turning back to the prime decomposition, to extract the set of generators for one of the components:  the Generators command accepts a single ideal, and returns the set of generators in a set.

P1

x,y

(10)

GeneratorsP1

x,y

(11)

How are these computations done? An ideal membership test and an ideal decomposition are performed by first computing a Groebner basis for the ideal. If we inspect the data representation for the ideal J, we notice that a Groebner basis was implicitly computed.

lprintJ

POLYNOMIALIDEAL(x*z-y^2,x^3-y*z,characteristic = 0,variables = {x, y, z},known_groebner_bases = (table([(tdeg(z,y,x))=[[1, y^2, -x*z+y^2], [1, x^3, x^3-y*z]]])))

Groebner bases are used extensively by almost every command in this package. They are computed by the system as required. You need not be familiar with Groebner bases to use this package. The Groebner:-Basis command computes a Groebner basis explicitly for an ideal with respect to a given monomial order.  A variety of monomial orders are implemented, with a complete list available under MonomialOrders. The default monomial ordering used is known as graded reverse lexicographical order or tdeg in Maple. Here, we explicitly compute a Groebner basis for our ideal J using lexicographic order with z>y>x. See Groebner:-Basis for details. From this example, you can see that the Groebner basis depends on the monomial ordering used.  We extract the leading terms of the generators for the Groebner basis; they are y3, xz, and yz.

GGroebner:-BasisJ,plexz,y,x

Gx4+y3,xzy2,x3+yz

(12)

Groebner:-LeadingMonomialG1,plexz,y,x

y3

(13)

Groebner:-LeadingMonomialG2,plexz,y,x

xz

(14)

Groebner:-LeadingMonomialG3,plexz,y,x

yz

(15)

The next ideal is the intersection of two components, both of which are maximal, that is, prime over Q and zero-dimensional. We extract the smaller component of interest, and then simplify it.

T45p+35s165b36,35p+40z+25t27s,15w+25ps+30z18t165b2,9w+15pt+20zs,wp+2zt11b3,99w11sb+3b2:

There are a finite number of solutions.

IsZeroDimensionalT

true

(16)

There are no repeated solutions.

IsRadicalT

true

(17)

There is more than one irreducible component.

IsPrimeT

false

(18)

LIdealInfo:-KnownGroebnerBasesT

Lplexw,z,t,p,s,b,tdegw,z,t,p,s,b

(19)

There are 10 distinct solutions.

Groebner:-LeadingMonomialT,plexw,z,t,p,s,b

p,s,t,w,z,b10

(20)

There are two irreducible components.

factorUnivariatePolynomialb,T

10000b2+6600b+26734380800000000000b8+16108202000000000b7+22514571860000000b6+18624678595600000b5+9432310305572000b4+2959977269862580b3+617295990812985b2+80609374775160b+3361317558192

(21)

The smaller component:

SimplifyT,10000b2+6600b+2673

13773100b+1800p,9500b+200s,811850b+750t,3969+9500b+60000w,10287+24500b+18000z,10000b2+6600b+2673

(22)

In the mathematical literature, the letters I, J, and K are often used to denote ideals. We have so far refrained from using I because Maple, by default, uses I to denote the imaginary unit whose square is −1.  We can use a different letter for the square root of −1 after using the following command, leaving us free to use the letter I for an ideal.  We show an example of this next.

I2

−1

(23)

interfaceimaginaryunit=_i

I

(24)

_i2

−1

(25)

I2

I2

(26)

In addition to the generators (which are always specified as polynomials), we can also input options for the polynomial ring (which are always specified as equations). Two of the most important options are characteristic=p, which forces all computations onto the integers modulo p, and variables=S, in which a set S specifies the variables of the polynomial ring.  We make use of both options in the following example. The resulting ideal will lie in the polynomial ring Z5ax,y, rather than the default Qx,y,a. When using the shortcut <...> syntax, the Maple operator precedence rules require that you enclose any options in parentheses.

Ja2x32xy&comma;x2y2ay2+a3x&comma;characteristic=5&comma;variables=x&comma;y

Ja2x3+3xy&comma;a3x+3ay2+x2y

(27)

As an example of a computation with ideals, the intersection of two ideals J1 and J2 in k&lsqb;x1,x2,...,xn&rsqb; is given by the following formula: J1intersectJ2=tJ1+1tJ2intersectk&lsqb;x1,x2,...,xn&rsqb;. We make use of the Operators subpackage, which provides binary operators for ideal arithmetic.

withOperators&colon;

J1x2y2

J1x2y2

(28)

J2x3y3

J2x3y3

(29)

KtJ1+1tJ2

Ktx2ty2&comma;x4+x3yxy3y4&comma;txy2ty3x3+y3

(30)

EliminationIdealK&comma;x&comma;y=IntersectJ1&comma;J2

x4+x3yxy3y4=x4+x3yxy3y4

(31)

Note: When ideal operations are applied to different rings, for example, kt,x and kx,y, the ideals are first put into a common ring, in this case, the ring kt,x,y. For our final example, we explain how to test if an ideal is zero-dimensional, that is, the polynomial system of equations has finitely many solutions if in characteristic zero. You can use the HilbertDimension command to compute the dimension of an ideal to do this. Another way is the following; an ideal J in k&lsqb;x1,...,xn&rsqb; has dimension zero if the set of leading monomials of the ideal contains {x1e1,...,xnen}, for 0ei.

Jx2+y21&comma;x22xy+y2&comma;z22

Jz22&comma;x2+y21&comma;x22xy+y2

(32)

IsRadicalJ

false

(33)

HilbertDimensionJ

0

(34)

Groebner:-LeadingMonomialJ&comma;tdegx&comma;y&comma;z

x2&comma;y3&comma;z2&comma;xy

(35)

GGroebner:-BasisJ&comma;tdegx&comma;y&comma;z

Gz22&comma;2xy1&comma;x2+y21&comma;2y3+x2y

(36)

mapGroebner:-LeadingMonomial&comma;G&comma;tdegx&comma;y&comma;z

z2&comma;xy&comma;x2&comma;y3

(37)

See Also

Groebner

lprint

MonomialOrders

RegularChains

The PolynomialIdeals Package example worksheet

UsingPackages

with