next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
Macaulay2Doc > rings > monomial orderings > definition of product (block) orders

definition of product (block) orders

MonomialOrder => {n_1, ..., n_l} divides the variables of the ring into l blocks, the first block consisting of the first n_1 variables, the second block consisting of the subsequent n_2 variables, and so on. For each block of variables, we can compute the total degree of a monomial with respect to the variables in that block. This gives a length l vector of total degrees for each monomial. We say x^A > x^B if the total degree vector of x^A is lexicographically greater than the total degree vector of x^B, or if the two total degree vectors are equal and if in the first block of variables where A and B differ, A > B in GRevLex order.
i1 : R = QQ[a..l, MonomialOrder => {3,3,3,3}];
i2 : a*e^3 + a^2*c*i + a*b^2*i + b^2*e*i

        2     2       2         3
o2 = a*b i + a c*i + b e*i + a*e

o2 : R
We may replace MonomialOrder => {3,3,3,3} with the shorter MonomialOrder => {4:3}

The default GRevLex order on any block may be changed to other orders, as follows.

i3 : R = QQ[a..i, MonomialOrder => {Lex =>3,3:1,3}];
i4 : a*e^3 + a^2*c*i + a*b^2*i + b^2*e*i + d^2*f*h + d*e^2*h

      2         2       3    2       2         2
o4 = a c*i + a*b i + a*e  + b e*i + d f*h + d*e h

o4 : R
Note: Weights and Eliminate do not create blocks, they only assign weights to the variables.

See also