[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Standard Constructions

Given one or more existing modules, various standard constructions are available to construct new modules.

Subsections

Changing the Coefficient Ring

In this collection of functions will be found utilities for changing the base ring of the module. Note that several of the functions for rewriting over a minimal field are restricted to rings K[G] where K is a finite field.

ChangeRing(M, S) : ModRng, Rng -> ModRng, Map
Given an A-module M with base ring R, together with a ring S, such that there is a natural homomorphism from R to S, construct the module N with base ring S where N is obtained from M by coercing the components of the vectors of M into N. The corresponding homomorphism from M to N is returned as a second value.
ChangeRing(M, S, f) : ModRng, Rng, Map -> ModRng, Map
Given a module M with base ring R, together with a ring S, and a homomorphism f: R -> S, construct the module N with base ring S, where N is obtained from M by applying f to the components of the vectors of M. The corresponding homomorphism from M to N is returned as a second value.

Writing a Module over a Smaller Field

The functions in this section currently only apply to K[G]-modules defined over a finite field K.

IsRealisableOverSmallerField(M) : ModGrp -> BoolElt, ModGrp
Given a K[G]-module M, where K is a finite field, return true if M can be realised over a proper subfield F of K. The equivalent F[G]-module is also returned. The Glasby-Howlett algorithm is used to determine the smallest field over which M can be realised.
IsRealisableOverSubfield(M, F) : ModGrp, FldFin -> BoolElt, ModGrp
Let M be a K[G]-module, where K is a finite field of characteristic p, and let F be a finite field also of characteristic p. If it is possible to realise M over the subfield F of K, return true and the equivalent F[G]-module.
WriteOverSmallerField(M, F) : ModGrp, FldFin -> ModGrp, Map
Given a module M of dimension d over a finite field E having degree e and a subfield F of E having degree f, write the action of M as d * e/f by d * e/f matrices over F and return the module and the isomorphism.
AbsoluteModuleOverMinimalField(M, F) : ModGrp, FldFin -> ModGrp
Let M be a K[G]-module, where K is a finite field of characteristic p, and let F be a finite field also of characteristic p. This function returns the module obtained by writing M over the smallest possible field containing F subject to the condition that the dimension of M does not increase. The Glasby-Howlett algorithm is used to determine the smallest field over which M can be realised.
AbsoluteModuleOverMinimalField(M) : ModGrp -> ModGrp
    SetVerbose("Reduce", n):            Maximum: 2
    SetVerbose("Cohomology", n):        Maximum: 2
    SetVerbose("GrunwaldWang", n):      Maximum: 2
Let M be a K[G]-module, where K is a finite field of characteristic p or a number field. This function returns the module obtained by writing M over a field of smallest possible degree subject to the condition that the dimension of M does not increase. For modules over finite fields, a field of smallest degree is always a subfield of K, in this case, the Glasby-Howlet algorithm is used. For number fields, a different field might be necessary and a combination of Plesken's method and a constructive version of the Grunwald-Wang theorem is used.
Minimize(R) : Map -> Map
    All: BoolElt                        Default: false
    Char: AlgChtrElt                    Default: false
    FindSmallest: BoolElt               Default: false
    SetVerbose("Reduce", n):            Maximum: 2
    SetVerbose("Cohomology", n):        Maximum: 2
    SetVerbose("GrunwaldWang", n):      Maximum: 2
Let R:G to Gl(n, K) be an absolutely irreducible representation over some number field K. This function tries to find minimal subfields k of K that afford R, ie. it tries to write the representation over a smaller field. In general however, there might be number field k not contained in K of smaller degree that afford R. If All is given, then instead of a single representation over a minimal degree subfield of K, a list of representations over all minimal subfields of K is returned instead. If Char is given, it should be set to the character of the representation. If FindSmallest is given, the field K will be extended by some auxiliary field A such that KA will contain a minimal degree field affording R. This involves a constructive version of the Grunwald-Wang theorem and can be computationally expensive if the degree of KA is too large.
AbsoluteModulesOverMinimalField(Q, F) : [ ModGrp ], FldFin -> [ ModGrp ]
Let Q be a sequence of K[G]-modules, where K is a finite field of characteristic p, and let F be a finite field also of characteristic p. This function returns the sequence of modules obtained by writing each module M of Q over the smallest possible field containing F subject to the condition that the dimension of M does not increase. Thus, the effect of the function is to apply the function AbsoluteModuleOverMinimalField to each module of Q. The Glasby-Howlett algorithm is used to determine the smallest field over which the modules M of Q can be realised.
ModuleOverSmallerField(M, F) : ModGrp, FldFin -> ModGrp
Let M be a K[G]-module of dimension d, where K is a finite field of characteristic p, and let F be a subfield of K of index n. This function returns the F[G]-module N obtained by writing the action of M as dn x dn matrices over F.
ModulesOverSmallerField(Q, F) : SeqEnum, FldFin -> ModGrp
Let Q be a sequence of K[G]-modules, where K is a finite field of characteristic p, and let F be a subfield of K of index n. This function returns the sequence R of F[G]-modules obtained by applying the function ModuleOverSmallerField to each term of Q. That is, each term N of R is formed by writing the action of the corresponding term of Q as dn x dn matrices over F.
ModulesOverCommonField(M, N) : ModGrp, ModGrp -> ModGrp, ModGrp
Given K[G]-modules M and N, change their base fields to K, where K is the smallest field containing the base fields of M and N.
WriteGModuleOver(M, K) : ModGrp, FldAlg -> ModGrp
    Char: AlgChtrElt                    Default: false
    Subfield: BoolElt                   Default: false
    SetVerbose("Reduce", n):            Maximum: 2
    SetVerbose("Cohomology", n):        Maximum: 2
    SetVerbose("GrunwaldWang", n):      Maximum: 2
Given a L[G] module M and some number field K, try to write M over K. If Char is specified, it should be set to the character of this module. If Subfield is given, the module will be rewritten over a minimal degree subfield of K.
WriteRepresentationOver(R, K) : Map, FldAlg -> Map
    Char: AlgChtrElt                    Default: false
    Subfield: BoolElt                   Default: false
    SetVerbose("Reduce", n):            Maximum: 2
    SetVerbose("Cohomology", n):        Maximum: 2
    SetVerbose("GrunwaldWang", n):      Maximum: 2
Given an absolutely irreducible representation R:G to Gl(n, L) and some normal number field K, try to write R over K. If Char is specified, it should be set to the character of this representation. If Subfield is given, the representation will be rewritten over a minimal degree subfield of K.

Example ModGrp_minimal-field (H90E11)

We will work with the G-module and character of the unique 2-dimensional character of Q8. It is well known that, while the character is defined over Q, the corresponding representation can only be defined over fields where -1 is the sum of 2 squares.

> G := TransitiveGroup(8, 5);
> TransitiveGroupDescription(G);
Q_8(8);
> R := AbsolutelyIrreducibleModules(G, Rationals());
> R;
[
    GModule of dimension 1 over Rational Field,
    GModule of dimension 1 over Rational Field,
    GModule of dimension 1 over Rational Field,
    GModule of dimension 1 over Rational Field,
    GModule of dimension 2 over Cyclotomic Field
    of order 4 and degree 2
]
> R := R[5];
> WriteGModuleOver(R, CyclotomicField(5));
GModule of dimension 2 over Cyclotomic Field 
of order 5 and degree 4
So Q(ζ5) is an example of a field affording the module but having no minimal degree subfield (of degree 2 here) affording R!.

> AbsoluteModuleOverMinimalField($1);
GModule of dimension 2 over Number Field with
defining polynomial Qx.1^2 - Qx.1 + 1 over the
Rational Field
Note that the base field returned here is Q(ζ3) which is of degree 2 but different from Q(ζ4) that was found initially. In general there are infinetely many minimal degree splitting fields.

If we try to realize R over a field where -1 cannot be written as a sums of two squares we get an error:


> WriteGModuleOver(R, QuadraticField(3)); >> WriteGModuleOver(R, QuadraticField(3)); ^ Runtime error in 'WriteGModuleOver': The G-module cannot be realised over K
We can try to find a minimal field containing Q(sqrt 3) by computing the local Schur-indices and then obtain a splitting field:

> k := QuadraticField(3);
> SchurIndices(Character(R), k);
[ <1st place at infinity, 2>, <2nd place at
infinity, 2> ]
> A := SplittingField($1);
> A;
FldAb, defined by (<3>, [1      2])
of structure: Z/2
So the splitting field is returned as an abelian extension. We can see that A is of degree 2 over k and will be ramified at most at 3 and both infinite places. In order to use it to rewrite the module, we need to convert to a number field over Q first:

> A := NumberField(A);
> A;
Number Field with defining polynomial $.1^2 + 1
over k
> A := AbsoluteField(A);
> A;
Number Field with defining polynomial Qx.1^4 -
    4*Qx.1^2 + 16 over the Rational Field

> WriteGModuleOver(R, A);
GModule of dimension 2 over A
> WriteGModuleOver(R, A:Subfield);
GModule of dimension 2 over Number Field with
defining polynomial Qx.1^2 - Qx.1 + 1 over the
Rational Field

Direct Sum

DirectSum(M, N) : ModGrp, ModGrp -> ModGrp, Map, Map, Map, Map
Given K[G]-modules M and N, construct the direct sum D of M and N as an K[G]-module. The embedding maps from M into D and from N into D respectively and the projection maps from D onto M and from D onto N respectively are also returned.
DirectSum(Q) : [ ModGrp ] -> [ ModGrp ], [ Map ], [ Map ]
Given a sequence Q of K[G]-modules, construct the direct sum D of these modules. The embedding maps from each of the elements of Q into D and the projection maps from D onto each of the elements of Q are also returned.

Tensor Products of K[G]-Modules

TensorProduct(M, N) : ModGrp, ModGrp -> ModGrp
Let M and N be two K[G] modules. This function constructs the tensor product, M tensor A N, with diagonal action.
TensorPower(M, n) : ModGrp, RngIntElt -> ModGrp
Given a K[G]-module M and an integer n ≥1, construct the n-th tensor power of M.
ExteriorSquare(M) : ModGrp -> ModGrp
Given a K[G]-module M, construct the A-submodule of M tensor A M consisting of the skew tensors.
SymmetricSquare(M) : ModGrp -> ModGrp
Given a K[G]-module M, construct the A-submodule of M tensor A M consisting of the symmetric tensors.

Induction and Restriction

Dual(M) : ModGrp -> ModGrp
Given an K[G]-module M, construct the K[G]-module which is the K-dual, HomK(M, K), of M.

Induction(M, G) : ModGrp, Grp -> ModGrp
Given a K[H]-module M and a supergroup G of H, construct the K[G]-module obtained by inducing M up to G.
Induction(R, G) : Map, Grp -> Map
Given a representation R of a subgroup of G, construct the representation of G obtained by inducing R up to G.

Restriction(M, H) : ModGrp, Grp -> ModGrp
Given a K[G]-module M and a subgroup H of G, form the K[H]-module corresponding to the restriction of M to the subgroup H.

Example ModGrp_GModules1 (H90E12)

Starting with the permutation module M over GF(2) for the Mathieu group M22, we apply the induction and restriction functions to find new irreducible modules for M22.

> SetSeed(1);
> G := PermutationGroup< 22 |
>         (1,2,4,8,16,9,18,13,3,6,12)(5,10,20,17,11,22,21,19,15,7,14),
>         (1,18,4,2,6)(5,21,20,10,7)(8,16,13,9,12)(11,19,22,14,17),
>         (1,18,2,4)(3,15)(5,9)(7,16,21,8)(10,12,20,13)(11,17,22,14) >;
> M := PermutationModule(G, GaloisField(2));
> M;
GModule M of dimension 22 with base ring GF(2)
> CM := Constituents(M);
> CM;
[
    GModule of dimension 1 over GF(2),
    GModule of dimension 10 over GF(2),
    GModule of dimension 10 over GF(2)
]

We restrict the module M to the stabilizer of a point in M22 and then induce back up, a constituent of the restriction.

> L34 := Stabilizer(G, 1);
> N := Restriction(M, L34);
> N;
GModule N of dimension 22 with base ring GF(2)
> CN := Constituents(N);
> CN;
[
    GModule of dimension 1 over GF(2),
    GModule of dimension 9 over GF(2),
    GModule of dimension 9 over GF(2)
]
> Ind1 := Induction(CN[1], G);
> Ind1;
GModule Ind1 of dimension 22 over GF(2)
> Constituents(Ind1);
[
    GModule of dimension 1 over GF(2),
    GModule of dimension 10 over GF(2),
    GModule of dimension 10 over GF(2)
]
> Ind2 := Induction(CN[2], G);
> Ind2;
GModule Ind2 of dimension 198 over GF(2)
> Constituents(Ind2);         
[
    GModule of dimension 1 over GF(2),
    GModule of dimension 10 over GF(2),
    GModule of dimension 10 over GF(2),
    GModule of dimension 34 over GF(2),
    GModule of dimension 98 over GF(2)
]

Thus, inducing up the 1-dimensional constituent of N gives us irreducible modules for G having the same dimensions as those appearing as constituents of M. However, inducing up the 9-dimensional module gives us irreducible modules of new dimensions: 34 and 98. Hence starting out with only the permutation module for M22 over GF(2), we have found 5 irreducible modules for the group.


The Fixed-point Space of a Module

Fix(M): Mod -> Mod
Given an K[G]-module M, construct the largest submodule of M on which G acts trivially, i.e. the fixed-point space of M.

Changing Basis

M ^ T : ModGrp, AlgMatElt -> ModGrp
Given a K[G]-module M of dimension n over the field K, and a nonsingular n x n matrix T over K, construct the K[G]-module N which corresponds to taking the rows of T as a basis for M.
 [Next][Prev] [Right] [Left] [Up] [Index] [Root]

Version: V2.19 of Wed Apr 24 15:09:57 EST 2013