This chapter describes the data structures and functions for modules in GAP.
After the introduction of the data structures (see More about Modules, Row Modules, Free Modules) the functions for constructing modules and submodules (see Module, Submodule, AsModule, AsSubmodule, AsSpace for Modules) and testing for modules (see IsModule, IsFreeModule) are described.
The next sections describe operations and functions for modules (see StandardBasis for Row Modules, IsEquivalent for Row Modules, FixedSubmodule).
The next section describes available module homomorphisms. At the moment only operation homomorphisms are supported (see Module Homomorphisms).
The last sections describe the implementation of the data structures (see Row Module Records, Module Homomorphism Records).
Many examples in this chapter use the natural permutation module for the symmetric group S_3. If you want to run the examples you must first define this module, as is done using the following commands.
gap> mat1:= PermutationMat( (1,2,3), 3, GF(2) );; gap> mat2:= PermutationMat( (1,2), 3, GF(2) );; gap> a:= UnitalAlgebra( GF(2), [ mat1, mat2 ] );; a.name:= "a";; gap> nat:= NaturalModule( a );; gap> nat.name:= "nat";;
There is no possibility to compute the lattice of submodules with the
implementations in GAP. However, it is possible to use the MeatAxe
share library (see chapter The MeatAxe) to compute the lattice, and then
(perhaps) to carry back interesting parts to GAP format using GapObject