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

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  by default.

(1)

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

(2)

(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.

(4)

(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  is radical, so the prime and primary decompositions are the same.

(6)

(7)

(8)

How do we know that ? 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.

(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.

(10)

(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.

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 . 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 , , and .

(12)

(13)

(14)

(15)

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

There are a finite number of solutions.

(16)

There are no repeated solutions.

(17)

There is more than one irreducible component.

(18)

(19)

There are 10 distinct solutions.

(20)

There are two irreducible components.

(21)

The smaller component:

(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 .  We can use a different letter for the square root of  after using the following command, leaving us free to use the letter I for an ideal.  We show an example of this next.

(23)

(24)

(25)

(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 , which forces all computations onto the integers modulo p, and , 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 , rather than the default . When using the shortcut  syntax, the Maple operator precedence rules require that you enclose any options in parentheses.

(27)

As an example of a computation with ideals, the intersection of two ideals  and  in  is given by the following formula: . We make use of the Operators subpackage, which provides binary operators for ideal arithmetic.

(28)

(29)

(30)

(31)

Note: When ideal operations are applied to different rings, for example,  and , the ideals are first put into a common ring, in this case, the ring . 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  has dimension zero if the set of leading monomials of the ideal contains , for .

(32)

(33)

(34)

(35)

(36)

(37)

See Also

Groebner

lprint

MonomialOrders

RegularChains

The PolynomialIdeals Package example worksheet

UsingPackages

with

 


Download Help Document