Introduction

Contents

Free Modules

This chapter describes the facilities provided for modules in the following representations:

Tuple Modules: Modules whose elements are n-tuples over a fixed ring R, i.e., modules R(n);

Matrix Modules: Modules whose elements are homomorphisms of modules, i.e., HomR(M, N). The elements of these modules are m x n matrices over the ring R;

The ring R acts on the right of the module element by scalar multiplication. If R is not an Euclidean Domain then, currently, only arithmetic with vectors is supported. In particular, the ability to work with submodules and quotient modules is restricted to situations where R is either a field or Euclidean Domain.

In the first part of the chapter we describe the operations that apply to modules generally, while in the second half we describe the creation of modules HomR(M, N) together with the operations that are specific to them. Insofar as elementary module-theoretic operations are concerned, there is no real difference between tuple modules and matrix modules except for the input and display of elements. Many special operations provided for matrices are described in the chapter on matrices.

The reader is referred to the chapter on vector spaces for descriptions of the extensive functionality provided for modules over fields.

Module Categories

The family of all finitely generated modules over a given ring R forms a category, while the set of all finitely generated modules forms a family of categories indexed by the ring R. In this family of categories, objects are modules and the morphisms are module homomorphisms. The category name for modules is ModRng. We distinguish the following subcategories of ModRng:

ModTupFld - the category of modules of n-tuples over a field;

ModMatFld - the category of modules of m x n matrices over a field;

ModTupEd - the category of modules of n-tuples over an euclidean domain.

ModTupRng - the category of modules of n-tuples over a ring;

ModMatRng - the category of modules of m x n matrices over a ring;

Presentation of Submodules

Let N be a free submodule of the R-module M. We have two alternative ways of presenting N. Firstly, we can present it on a set of generators that are elements of M; we call such a presentation an embedded presentation. Alternatively, given that N has rank r, we can present it as the module S(r), with appropriate action induced from the action of R on M. We call this presentation of N a reduced presentation.

The user can control the method of submodule presentation at the time of creation of an initial module through selection of the appropriate creation function. Thus, the function RModule will create a module with the convention that it and all its submodules and quotient modules will have their submodules presented in reduced form. The use of RSpace, on the other hand, signifies that submodules are to be presented in embedded form.

Notation

Throughout this chapter, R will denote a ring (possibly a field) while K will denote a field. The letters M and N will denote modules, while U and V will denote vector spaces.

V2.28, 13 July 2023