This chapter describes modules over affine algebras (multivariate polynomial rings and their quotients) in Magma. Multivariate polynomial rings are not principal ideal rings in general, so the standard matrix echelonization algorithms are not applicable. Magma allows computations in modules over such rings by adding a column field to each monomial of a polynomial and then by using all the ideal machinery based on Gröbner bases. This method is much more efficient than that of introducing new variables to represent the columns since the number of columns does not affect the total number of variables.
Quotient modules are fully supported and modules over quotient rings of multivariate polynomial rings (affine algebras) are also supported (which is done by simply adding appropriate quotient relations to each module).
This chapter assumes that the reader is completely familiar with multivariate polynomial rings and their ideals in Magma -- see the chapter on multivariate polynomial rings for details. In this chapter, the term "module" will mean just this kind of module unless otherwise stated. Currently, the coefficient ring of the multivariate polynomial ring must be a field, so the multivariate polynomial ring can be written as K[x_1, ..., x_n] with K a field.
Suppose P = K[x_1, ..., x_n] is a multivariate polynomial ring over the field K. A monomial-column pair of P is a pair consisting of a monomial s of P and a column number c (with c >= 1), written as s[c].
Suppose the monomial order for P is <. There are two natural module monomial orders which can be placed on the monomial-column pairs of P. The term over position module order (TOP) compares the pairs s_1[c_1] and s_2[c_2] as follows: s_1[c_1] < s_2[c_2] if and only if s_1 < s_2 or s_1 = s_2 and c_1 < c_2. Thus the monomials are compared first, and then the columns. The position over term module order (POT) compares the pairs s_1[c_1] and s_2[c_2] as follows: s_1[c_1] < s_2[c_2] if and only if c_1 < c_2 or c_1 = c_2 and s_1 < s_2. Thus the columns are compared first, and then the monomials. (The terminology "term" and "position" is more standard than "monomial" or "column" when discussing module orders so that is why it is used here). The TOP order is generally preferable since it tends to give simpler Gröbner bases (see below), and is thus the default order used when a specific module order is not given.
For a fixed module monomial order <, a module polynomial is a linearly ordered sum of terms of the form a.s[c], where a in P is the coefficient, and s[c] is a monomial-column pair. Finally, a module M of degree r over P is a structure whose elements are module polynomials with columns in the range [1 .. r]. The module M may be full (or generic), containing all valid module polynomials. Otherwise, M is proper (or a submodule of a full module).
Within Magma, a module M over the multivariate polynomial ring P is thought of (and implemented) as an ideal I of P with columns attached to all monomials of I (called a "column-extended ideal"). The ideal I is stored in M and is used for many of the operations applied to M. Thus many of the concepts associated with polynomial ring ideals carry over to M (which concepts do not necessarily exist for other module types). Thus M has a current basis (the current basis of I), a Gröbner basis (the Gröbner basis of I), and so on. Elements of M have a normal form, and the S-polynomial of two elements of M can be formed if and only if their leading terms have the same columns. Sometimes the column structure of the module M and its elements is in view; at other times, the polynomial structure is in view and the column structure is ignored.
A given module M may possess quotient relations. A module not possessing quotient relations is called free. For each module M, there is a free module F corresponding to M which has the same coefficient ring and degree. The quotient relations of M are stored as a sequence R of elements of F such that M is isomorphic to the quotient of F by the submodule S of F generated by R. R is stored in M as the Gröbner basis of the submodule S. All elements of M are always reduced to normal form with respect to R so all elements of M have a unique representation. This means that elements of the basis of M are always reduced with respect to R also. Submodules of M have the same quotient relations R as M and their bases are also reduced with respect to R. A module with quotient relations is created by means of the quo constructor, like other categories within Magma. Note, however, that the resulting module is still a module within the same category -- there is no separate category for quotient modules. This makes it easy to create quotient modules, and then quotient modules of these, and so on, without confusion. Two modules are said to be compatible if they have the same coefficient rings, degrees, and quotient relations. Most binary operations only work for compatible modules since it is obvious that comparing two modules with different coefficient rings, degrees, or quotient relations is meaningless.
Let Q be a quotient ring formed by dividing the polynomial ring P by an ideal I of P. A module M can be created over Q by simply creating the corresponding module over P but with the (possibly extra) quotient relations given by all the vectors having any entry an element of a basis of I. This is the way modules over such quotient rings is handled in Magma.
It is possible to place weights on the columns of a module M. Such a module is called weighted or graded. This is a natural extension of graded polynomial rings; see the section on graded polynomial rings in the multivariate polynomial chapter. Within a fixed graded module M the weighted degree of a monomial-column pair s[c] is the sum of the weighted degree of the monomial s and the weight for column c. (A module created without specific column weights is assumed to have weight 0 for each column.)
The elements of a module M can be printed in two styles: matrix or polynomial. In the matrix printing style, an element is printed as a vector with entries from the coefficient ring P (and a basis of the module is printed as a matrix similarly). In the polynomial printing style, an element is printed just like a polynomial but with the column number printed in square brackets after each monomial. The matrix printing style is used by default since one usually thinks of elements of such modules as vectors. But the polynomial printing style is in fact often more natural because of the way the module M is thought of as a column-extended ideal I and since the elements are actually implemented as module polynomials. In fact, if the TOP order is used (the default), then the columns of the terms of a module polynomial, taken in order, may not successively increase or decrease (since the monomial order dominates) which is a little unintuitive but reflects the true order used in the ideal I. See below for methods for changing the printing style.
[Next] [Prev] [Right] [____] [Up] [Index] [Root]