57 Modules

57.1 Generating modules

57.1-1 IsLeftOperatorAdditiveGroup

‣ IsLeftOperatorAdditiveGroup( D )

( category )

A domain D lies in IsLeftOperatorAdditiveGroup if it is an additive group that is closed under scalar multiplication from the left, and such that \(\lambda * ( x + y ) = \lambda * x + \lambda * y\) for all scalars \(\lambda\) and elements \(x, y \in D\) (here and below by scalars we mean elements of a domain acting on D from left or right as appropriate).

57.1-6 IsRightOperatorAdditiveGroup

‣ IsRightOperatorAdditiveGroup( D )

( category )

A domain D lies in IsRightOperatorAdditiveGroup if it is an additive group that is closed under scalar multiplication from the right, and such that \(( x + y ) * \lambda = x * \lambda + y * \lambda\) for all scalars \(\lambda\) and elements \(x, y \in D\).

57.1-11 LeftActingDomain

Let D be an external left set, that is, D is closed under the action of a domain \(L\) by multiplication from the left. Then \(L\) can be accessed as value of LeftActingDomain for D.

57.2 Submodules

57.2-1 Submodule

‣ Submodule( M, gens[, "basis"] )

( function )

is the left module generated by the collection gens, with parent module M. If the string "basis" is entered as the third argument then the submodule of M is created for which the list gens is known to be a list of basis vectors; in this case, it is not checked whether gens really is linearly independent and whether all in gens lie in M.

57.3 Free Modules

57.3-1 IsFreeLeftModule

A left module is free as module if it is isomorphic to a direct sum of copies of its left acting domain.

Free left modules can have bases.

The characteristic (see Characteristic (31.10-1)) of a free left module is defined as the characteristic of its left acting domain (see LeftActingDomain (57.1-11)).

57.3-2 FreeLeftModule

‣ FreeLeftModule( R, gens[, zero][, "basis"] )

( function )

FreeLeftModule( R, gens ) is the free left module over the ring R, generated by the vectors in the collection gens.

If there are three arguments, a ring R and a collection gens and an element zero, then FreeLeftModule( R, gens, zero ) is the R-free left module generated by gens, with zero element zero.

If the last argument is the string "basis" then the vectors in gens are known to form a basis of the free module.

It should be noted that the generators gens must be vectors, that is, they must support an addition and a scalar action of R via left multiplication. (See also Section 31.3 for the general meaning of "generators" in GAP.) In particular, FreeLeftModule is not an equivalent of commands such as FreeGroup (37.2-1) in the sense of a constructor of a free group on abstract generators. Such a construction seems to be unnecessary for vector spaces, for that one can use for example row spaces (see FullRowSpace (61.9-4)) in the finite dimensional case and polynomial rings (see PolynomialRing (66.15-1)) in the infinite dimensional case. Moreover, the definition of a "natural" addition for elements of a given magma (for example a permutation group) is possible via the construction of magma rings (see Chapter 65).

57.3-7 IsMatrixModule

57.3-8 IsFullRowModule

‣ IsFullRowModule( M )

( property )

A full row module is a module \(R^n\), for a ring \(R\) and a nonnegative integer \(n\).

More precisely, a full row module is a free left module over a ring \(R\) such that the elements are row vectors of the same length \(n\) and with entries in \(R\) and such that the dimension is equal to \(n\).

Several functions delegate their tasks to full row modules, for example Iterator (30.8-1) and Enumerator (30.3-2).

57.3-9 FullRowModule

‣ FullRowModule( R, n )

( function )

is the row module R^n, for a ring R and a nonnegative integer n.

gap>V:= FullRowModule( Integers, 5 );
( Integers^5 )

57.3-10 IsFullMatrixModule

‣ IsFullMatrixModule( M )

( property )

A full matrix module is a module \(R^{{[m,n]}}\), for a ring \(R\) and two nonnegative integers \(m\), \(n\).

More precisely, a full matrix module is a free left module over a ring \(R\) such that the elements are \(m\) by \(n\) matrices with entries in \(R\) and such that the dimension is equal to \(m n\).

57.3-11 FullMatrixModule

‣ FullMatrixModule( R, m, n )

( function )

is the matrix module R^[m,n], for a ring R and nonnegative integers m and n.