First we recall the definition of a module term-ordering. We assume
that all our free modules have finite rank and are of the type M = R^r
where R is a polynomial ring with n indeterminates. Let
{e_i|i=1,...,r} be the canonical basis of M. A "term" of M is an
element of the form Te_i where T belongs to the set T(R) of the terms
of R. Hence the set T(M), of the terms of M, is in one-to-one
correspondence with the Cartesian product, T(R)x{1,...,r}.
A "module term-ordering" is defined as a total ordering > on T(M)
such that for all T, T_1, T_2 in T(R), with T not equal to 1, and for
all i, j in {1,...,r},
* T T_1 e_i > T_1 e_i
* T_1 e_i > T_2 e_j => T T_1 e_i > T T_2 e_j
Each term-ordering on the current ring induces several term-orderings
on a free module. CoCoA allows the user to choose between the
following:
* the ordering called "ToPos" (which is the default one) defined by:
T_1 e_i > T_2 e_j <=> T_1 > T_2 in R
or, if T_1 = T_2 , i < j
* the ordering called "PosTo" defined by:
T_1 e_i > T_2 e_j <=> i < j
or, if i = j, T_1 > T_2 in R .
|
-- The leading term of the vector (x,y^2) with respect two different
-- module term-orderings:
Use R ::= Q[x,y],ToPos;
LT(Vector(x,y^2));
Vector(0, y^2)
-------------------------------
Use R ::= Q[x,y],PosTo;
LT(Vector(x,y^2));
Vector(x, 0)
-------------------------------
|