Details of the Groebner Package - Maple Programming Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : Algebra : Polynomials : Groebner : Groebner/details

Details of the Groebner Package

 

Calling Sequence

Description

List of Groebner Package Commands

Examples

Calling Sequence

Groebner[command](arguments)

command(arguments)

Description

• 

This page contains complete information about the Groebner package, with the exception of computations of Groebner bases for modules, for which users are referred to Groebner Bases for Modules.  For basic information on the Groebner package, see the Groebner help page.

• 

The Groebner package is a collection of commands for doing Groebner basis calculations in skew algebras like Weyl and Ore algebras and in corresponding modules like D-modules.  It can also be used in the case of usual commutative polynomials.

• 

Whereas in the commutative case the ideals (respectively modules) are two-sided, in the skew case we focus on left-sided ideal (respectively modules).  This corresponds to skew polynomials acting on functions on the left.

• 

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

List of Groebner Package Commands

• 

The following is a list of available commands.

Basis

FGLM

HilbertDimension

HilbertPolynomial

HilbertSeries

Homogenize

InitialForm

InterReduce

IsBasis

IsProper

IsZeroDimensional

LeadingCoefficient

LeadingMonomial

LeadingTerm

MatrixOrder

MaximalIndependentSet

MonomialOrder

MultiplicationMatrix

MultivariateCyclicVector

NormalForm

NormalSet

RationalUnivariateRepresentation

Reduce

RememberBasis

Solve

SPolynomial

SuggestVariableOrder

Support

TestOrder

ToricIdealBasis

TrailingTerm

UnivariatePolynomial

Walk

WeightedDegree

 

 

• 

To display the help page for a particular Groebner command, see Getting Help with a Command in a Package.

• 

These commands make Groebner basis calculations and related facilities available in commutative algebras of polynomials and in skew algebras. For details, see Ore_algebra[poly_algebra], Ore_algebra[Weyl_algebra], and Ore_algebra. Such calculations are also available in the case of algebraic and modular coefficients.  For the case of modules, see Computing Groebner Bases for Modules.

• 

The MonomialOrder command declares a monomial order on an algebra and returns a table that describes it.  This table is needed by other commands in the package. Alternatively, a short monomial order description can be used in simple cases (see type(...,ShortMonomialOrder)). The TestOrder command checks if two monomials are in a given monomial order.  Many predefined monomial orderings are available, including total degree, lexicographic, elimination, and matrix-defined orderings.

• 

The commands LeadingCoefficient, LeadingMonomial, and LeadingTerm compute the leading coefficient, leading monomial, and leading term of a polynomial respectively.

• 

The NormalForm command computes the normal form of a polynomial modulo an ideal.  The command Reduce returns the pseudo-remainder of a polynomial in the division by a list of polynomials.  The InterReduce command inter-reduces a list of polynomials.  Both the NormalForm and Reduce commands are usually used after a (reduced) Groebner basis has been computed.

• 

The Basis command computes a (reduced) Groebner bases either in an algebra of skew polynomials (an Ore algebra) or in an algebra of usual polynomials.  It also computes Groebner bases for modules over (usual or skew) polynomial rings.  The RememberBasis command makes a Groebner basis known to the system without performing any computation.

• 

In the commutative case, the Solve command preprocesses a set of generators in view of solving.

• 

The SPolynomial command computes the S-polynomial of two polynomials.

• 

The UnivariatePolynomial command finds univariate polynomials of least degree in a polynomial ideal.

• 

The MultivariateCyclicVector command is a general-purpose and parametrizable iteration algorithm based on idea behind the FGLM algorithm.

• 

The commands IsZeroDimensional and IsProper decide whether an ideal has finitely many solutions, or at least one solution, respectively.

• 

The commands HilbertDimension, HilbertPolynomial, and HilbertSeries compute the Hilbert dimension, Hilbert polynomial, and Hilbert series of an ideal, respectively.

• 

A typical Groebner basis computation is one of the following.

  

1. Define the appropriate algebra with one of: Ore_algebra[poly_algebra], Ore_algebra[diff_algebra], Ore_algebra[shift_algebra], Ore_algebra[qshift_algebra], or Ore_algebra[skew_algebra].

  

2. Define the appropriate monomial order on the algebra with Groebner[MonomialOrder].

  

3. Call Groebner[Basis], or in simple cases call Groebner[Basis] with the short syntax.

• 

A typical test of membership in an ideal is:

  

1. Perform a Groebner basis computation to find a Groebner basis of the ideal (usually with tdeg);

  

2. Call Groebner[Reduce] to test whether it returns zero.

• 

A typical use of Groebner bases for elimination is:

  

1. Compute a Groebner basis with respect to an elimination monomial order (with the lexdeg syntax);

  

2. Select those polynomials in which the indeterminate to be eliminated has disappeared.

  

Note: Elimination of a single indeterminate between two polynomials can also be performed using Ore_algebra[skew_elim].

• 

When relevant, most commands of the Groebner package accept algebraic numbers and algebraic functions denoted by I, radicals, or RootOfs in their the inputs. Exceptions are Groebner[MultiplicationMatrix], Groebner[NormalSet], and Groebner[Solve]. Also when relevant, they accept PolynomialIdeal data structures in their input.

• 

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, that is, by prepending the package name.

Examples

Short Versus General Syntax for Term Orders

withGroebner:

Simple Groebner basis calculation using the short syntax:

Gmapnumer,s22s+1x2ys+1y,3s13xy21s1x:

BasisG,tdegx,y

3s2x2+6s4s3+7s2+s1y2,3s24s+1y33y,3s24s+1xy23x

(1)

More complicated one using the general syntax:

withOre_algebra:

Apoly_algebras,x,y,characteristic=3,rational=s:

TMonomialOrderA,tdegx,y:

BasisG,T

y2,s2x2y+s2y+2y

(2)

Lauricella Functions and Partial Differential Systems

The following example deals with Lauricella functions. It illustrates Groebner basis computation in D-modules with parameters in the ground field.

n2:

SaddxiDi,i=1..n

Sx1D1+x2D2

(3)

Askew_algebracomm=a,b,seqci,i=1..n,seqdiff=Di,xi,i=1..n,polynom=seqxi,i=1..n:

Pskew_productS+a,S+b,A

PD12x12+2D1D2x1x2+a+b+1x1D1+D22x22+a+b+1x2D2+ab

(4)

The following operators introduce n other parameters.

foritondoliskew_productDi,xiDi+ci1,APenddo

l1D12x1+D1c1D12x122D1D2x1x2a+b+1x1D1D22x22a+b+1x2D2ab

l2D22x2+D2c2D12x122D1D2x1x2a+b+1x1D1D22x22a+b+1x2D2ab

(5)

MMonomialOrderA,lexdegseqDi,i=1..n,seqxi,i=1..n:

The result is a third-order differential system of four equations.

Basisseqli,i=1..n,M

2D1D2x1x2+D22x1x2+D22x22+x1D1a+x2D2a+x1D1b+x2D2bx1D1c1D22x2+c2D2x1+ab+x1D1D2c2+x2D2,D12x1D22x2+D1c1D2c2,2D23x12x24D23x1x22+2D23x23+2D1D2x12aD22x1x2a+3D22x22a+2D1D2x12bD22x1x2b+3D22x22b2D1D2x12c14D1D2x12c24D23x1x24D23x22+D22x1x2c13c1D22x22+2D22x12c26D22x1x2c2+x1D1a2+x2D2a22ax1D1b+2abD2x1+4ax2D2b2aD1D2x13aD22x23c1x2D2a3ac2D2x1+x1D1b2+x2D2b22bD1D2x13bD22x23c1x2D2b3bc2D2x1+2D1D2c1x1+4D1D2c2x1+6D1D2x12x1D1c12+2D23x2+3D22c1x24D22c2x12D22x2c2+2D22x125D22x1x2+9D22x22+c1c2D2x1+a2b+ab22abD23c1abaD2c2+2aD2x1+6x2D2abD2c2+2bD2x1+6x2D2b6D1D2x1+2x1D1c1+2D22c24D22x111D22x2+3D2c1c23c1x2D25c2D2x1+3ab2aD22bD2x1D1+2D223D2c2+2D2x1+5x2D22D2,2D1D22x22D23x1x2+3D23x22aD1D2x1+2aD1D2x2+aD22x2bD1D2x1+2bD1D2x2+bD22x22D1D22x2+D1D2c1x14D1D2x2c1+2D1D2c2x1+D23x22D22c1x2D22c2x1+4D22x2c2+2abD1abD22aD1c1+2aD2c22bD1c1+2bD2c22D1D2c23D1D2x1+6D1D2x2+2D1c12+D22c2D22x1+5D22x22D2c1c2+2aD1aD2+2bD1bD24D1c1+D22+4D2c2+2D1D2

(6)

Legendre Polynomials and Differential-Difference Linear Systems

The following example deals with Legendre polynomials: from a differential equation and a mixed differential-difference equation that define them, elimination of Dx yields a difference equation that vanishes on them.

unassignn,P:

DE1x2Dx22xDx+nn+1

DEx2+1Dx22xDx+nn+1

(7)

RDE1x2DxSn+n+1xSnn+1

RDEx2+1DxSn+n+1xSnn1

(8)

withOre_algebra:

Askew_algebradiff=Dx,x,shift=Sn,n,polynom=n,x:

withGroebner:

MMonomialOrderA,lexdegDx,n,x,Sn:

GBasisDE,RDE,M

GSn2n2+2Snn2x4Sn2n+7xSnn4Sn2+6xSnn23n2,DxSnn+DxnxDxSn+xDx+n2+2n+1,DxSn2n+2DxSn2DxSnx2Snn2Dxn6SnnDx5Sn,DxSnx2xSnnDxSnxSn+n+1,Dx2x2Dx2+2xDxn2n

(9)

Continuing this application, we derive a proof that Legendre polynomials satisfy

SumorthopolyPn,zun,n=0..=1sqrt12zu+u2

n=0orthopolyPn,zun=1u22zu+1

(10)

Indeed, it follows that the summand orthopolyPn,zun in the identity that we want to prove satisfies

Gmap`@`numer,normal,evalconvertG,set,Sn=SnuunionuDun

GuDun,Dx2x2Dx2+2xDxn2n,DxSnx2xSnnDxSnxSn+nu+u,DxnxuDxSnn+xDxu+n2uDxSn+2nu+u,DxSn2nDxSnxuDxnu22Snn2u+2DxSn2Dxu26Snnu5Snu,2Snn2xuSn2n2+7xSnnun2u24Sn2n+6xSnu3nu24Sn22u2

(11)

in the new algebra Cz,unDz,Du,Sn. (Since the index of summation is n, we consider polynomials in this variable to allow for its elimination.)

withOre_algebra

Ore_to_DESol,Ore_to_RESol,Ore_to_diff,Ore_to_shift,annihilators,applyopr,diff_algebra,dual_algebra,dual_polynomial,poly_algebra,qshift_algebra,rand_skew_poly,reverse_algebra,reverse_polynomial,shift_algebra,skew_algebra,skew_elim,skew_gcdex,skew_pdiv,skew_power,skew_prem,skew_product

(12)

Askew_algebradiff=Dx,x,diff=Du,u,shift=Sn,n,polynom=n:

MMonomialOrderA,lexdegn,Dx,Du,Sn:

GBBasisG,M

GBuxDuSn+DxSnx2+u2DuDxSn+u,u2Du2+Dx2x22uDuDx2+2xDx,Du2u2xDuDxux2+uDu2Sn+uDxDu3DuuxDxx2+DuSn+Dxx,uDu+n

(13)

The previous equations are satisfied by the summand. Setting Sn=1 in them yields equations satisfied by the sum.  A final Groebner basis calculation returns these equations:

GBBasisevalremovehas,GB,n,Sn=1,M:

collectGB,Du,Dx,distributed,factor

uxuDu+x1x+1Dx+u,uu22ux+1Du2+4u25ux+1Du+2ux

(14)

Solving this simple system of PDEs yields the announced closed form.

See Also

Groebner

Ore_algebra

Ore_algebra/poly_algebra

Ore_algebra/skew_algebra

Ore_algebra/Weyl_algebra

PolynomialIdeals

PolynomialIdeals Example Worksheet

PolynomialIdeals[PolynomialIdeal]

RegularChains

Terminology Used in Groebner

UsingPackages

with