So far we have only considered orders on the monomials in a polynomial
ring. However, if we wish to compute standard bases of submodules of
free modules as well as for ideals, we need to define monomial orders
on the monomials in a free module. First, what are the monomials in a
free module? Let
be the
unit (column) vector in the free module
,
.
The monomials are just
.
There are two basic ways of extending a monomial order ;SPMgt; to free modules.
The first of these is the default in Macaulay. The second can be obtained using the ring command in the following way. When prompted for the monomial order, respond with the letter ``c''. The ``c'' stands for the ``module component number'', or the ``row number'' of the monomial. The effect of this response is that the higher the component, or row, number, the greater the monomial.
For example,
% ring R ! characteristic (if not 31991) ? <return> ! number of variables ? 5 ! 5 variables, please ? a-e ! variable weights (if not all 1) ? <return> ! monomial order (if not rev. lex.) ? c ; largest degree of a monomial : 217 % ; the component number is now considered before the order on the monomials % ; of the ring. % pring R ; ring R ; characteristic : 31991 ; number of variables : 5 ; variables : abcde ; weights : 1 1 1 1 1 ; monomial order : c 5 ; top degree of a monomial : 217
Important note for computing finite free resolutions: It is often much more efficient, both in space and elapsed time, to use this second order rather than the default. The default has been chosen to make elimination of variables for modules a simpler process.
In fact, if you have several blocks of variables, you can put the ``c'' before or after any block. The default in Macaulay is to tag the ``c'' on at the end of what you type (assuming you did not include a ``c''). At the end of this section we describe these more general forms.
Usually, when you display a polynomial using type, for example, the monomials are displayed in descending order. For column vectors this is not possible, since the lead monomial can occur in any row. You can see the initial monomial by using the in command.