MonomialOrder - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.
Our website is currently undergoing maintenance, which may result in occasional errors while browsing. We apologize for any inconvenience this may cause and are working swiftly to restore full functionality. Thank you for your patience.

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

withOre_algebra:

withGroebner:

Apoly_algebrax,y,z

AOre_algebra

(1)

TMonomialOrderA,plexx,y,z

Tmonomial_order

(2)

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

f4yx3z2+yz25x4+x3z2

fx3z25x4+yz24yx3z2

(3)

LeadingTermf,T

−5,x4

(4)

LeadingTermf,plexx,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].

Adiff_algebraD1,x1,D2,x2

AOre_algebra

(6)

Apolynomial_indets

D1,D2

(7)

Arational_indets

x1,x2

(8)

TMonomialOrderA,tdegD1,D2

Tmonomial_order

(9)

SPolynomialD1x2x2,D2x1x1,T

x2x1+x1D1+x2x1x2D2x1+x2

(10)

A user-defined (lexicographic) order

Apoly_algebrax,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:

TMonomialOrderA&comma;userP&comma;x&comma;y&comma;z

Tmonomial_order

(11)

LeadingTermf&comma;T

−5,x4

(12)

See Also

Basis_details

LeadingTerm

Monomial Orders

Ore_algebra

TestOrder