MonomialOrder - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Mozilla Firefox.

Online Help

All Products    Maple    MapleSim


Groebner

  

MonomialOrder

  

construct a MonomialOrder

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

MonomialOrder(A, tord, M)

Parameters

A

-

a polynomial algebra created with the Ore_algebra package

tord

-

ShortMonomialOrder or a user-defined monomial order

M

-

(optional) module placeholder variables

Description

• 

The MonomialOrder command constructs a term order on a polynomial algebra A. This object (called a MonomialOrder) may be used with other commands in the Groebner package to do computations with modules and (left) ideals of non-commutative skew polynomials.

• 

For commutative problems you typically do not need to construct a MonomialOrder, you can use a short monomial order description (such as plex(x,y,z)) instead. For a list of these short monomial orders, see the Monomial Orders help page.

• 

The first argument is an algebra A defined by the Ore_algebra package.  It can be one of the following:

– 

a commutative polynomial algebra defined by Ore_algebra[poly_algebra]

– 

a Weyl algebra defined by Ore_algebra[diff_algebra]

– 

a difference algebra defined by Ore_algebra[shift_algebra]

– 

a q-difference algebra defined by Ore_algebra[qshift_algebra]

– 

a general Ore algebra defined by Ore_algebra[skew_algebra]

• 

The second argument should be a ShortMonomialOrder, which describes the order imposed on variables of the algebra. For example, plex(x,y,z) describes lexicographic order with x > y > z. All of the variables of the algebra A must be ordered.  For a list of short monomial orders, see the Monomial Orders help page.

• 

The second argument can also describe a user-defined monomial order, which can have the form user(P, L) or user(P, Q, L). In both cases P is a procedure taking two monomials as arguments and returning true if and only if they are in increasing order, L is the list of indeterminates with respect to which the monomial order is defined, and (optionally) Q is a procedure for computing the leading term of a polynomial (see LeadingTerm).  The procedure Q should take a polynomial as input and return the sequence (leading coefficient, leading monomial).

• 

The optional third argument M is a list or set of module placeholder variables. These variables must be included in the algebra A and ordered by the monomial order tord. Multiplication by elements of M is not allowed, so distinct monomials in the variables of M indicate different module components.  See the Groebner[Basis_details] help page for more information.

• 

Due to technical limitations in the Ore_algebra package, you can not use algebras with pairs of variables that depend on each other, such as d[x] and x, to construct a MonomialOrder. In general, depends(u,v) must return false for each pair of variables u≠v, otherwise MonomialOrder will return an error. Use variable names such as dx and x or d[1] and x[1] instead. This limitation does not apply to ordinary commutative computations using ShortMonomialOrders.

• 

Note: the termorder command is deprecated.  It may not be supported in a future Maple release.

Examples

First we construct a monomial order on the polynomial ring Q[x,y,z]. The monomials are ordered by lexicographic order with x > y > z.

> 

with⁡Ore_algebra:

> 

with⁡Groebner:

> 

A≔poly_algebra⁡x,y,z

A≔Ore_algebra

(1)
> 

T≔MonomialOrder⁡A,plex⁡x,y,z

T≔monomial_order

(2)

We can now do Groebner basis computations using T, although in this case an equivalent short syntax can be used.

> 

f≔−4⁢y⁢x−3⁢z2+y⁢z2−5⁢x4+x3⁢z2

f≔x3⁢z2−5⁢x4+y⁢z2−4⁢y⁢x−3⁢z2

(3)
> 

LeadingTerm⁡f,T

−5,x4

(4)
> 

LeadingTerm⁡f,plex⁡x,y,z

−5,x4

(5)

For more complicated domains, such as modules or skew polynomial rings, it is necessary to define a MonomialOrder. Below we define a Weyl algebra with D[i]*x[i] = x[i]*D[i] + 1 for i=1..2.  The D[i] are variables and the x[i] are parameters. The ring is ordered using graded-reverse lexicographic order with D[1] > D[2].

> 

A≔diff_algebra⁡D1,x1,D2,x2

A≔Ore_algebra

(6)
> 

Apolynomial_indets

D1,D2

(7)
> 

Arational_indets

x1,x2

(8)
> 

T≔MonomialOrder⁡A,tdeg⁡D1,D2

T≔monomial_order

(9)
> 

SPolynomial⁡D1⁢x2−x2,D2⁢x1−x1,T

x2⁢x1+x1⁢D1+−x2⁢x1−x2⁢D2−x1+x2

(10)

A user-defined (lexicographic) order

> 

A≔poly_algebra⁡x,y,z:

> 

P := proc(t1, t2) global x,y,z; (degree(t1,x) < degree(t2,x)) or (degree(t1,x) = degree(t2,x) and degree(t1,y) < degree(t2,y)) or (degree(t1,x) = degree(t2,x) and degree(t1,y) = degree(t2,y) and degree(t1,z) <= degree(t2,z)) end proc:

> 

T≔MonomialOrder⁡A&comma;user⁡P&comma;x&comma;y&comma;z

T≔monomial_order

(11)
> 

LeadingTerm⁡f&comma;T

−5,x4

(12)

See Also

Basis_details

LeadingTerm

Monomial Orders

Ore_algebra

TestOrder