Matrix Group Actions

The functions described in this section apply only to finite groups for which a base and strong generating set may be constructed.

Contents

Orbits and Stabilizers

Let G be a matrix group and let M be its natural module. Now G has an action on the elements and submodules of M. A derived G-set for G consists of the closure under the natural action of G of one of the following:

A set of vectors of M;
A set of k element subsets of vectors of M;
A set of k element sequences of vectors of M;
A set of submodules of M, each of which has fixed dimension k;
A cartesian product of G-sets.
u * g : ModTupRngElt, GrpMatElt -> ModTupRngElt
Given an element g belonging to the matrix group G with natural module M and an element u of this module, return the vector u * g.
y ^ g : Elt, GrpMatElt -> Elt
Given an element g belonging to the matrix group G with natural module M and an object y which is an element of some derived G-set of M, find the image of y under g.
y ^ G : Elt, GrpMat -> SetEnum
Orbit(G, y) : GrpMat, Elt -> SetEnum
Given a matrix group G with natural module M and an object y which is either a vector of M, a submodule of M, or a tuple whose components are either vectors or submodules, find the orbit of y under G.
OrbitBounded(G, y, b) : GrpMat, Elt, RngIntElt -> BoolElt, SetEnum
Given a matrix group G with natural module M and an object y which is either a vector of M, a submodule of M, or a tuple whose components are either vectors or submodules, return true if the orbit of y under G has length less than or equal to b. Otherwise the function returns false. If it returns true, then the orbit of y is returned as the second value.
Orbits(G) : GrpMat -> [ SetIndx ]
Given a matrix group G with natural R-module M, construct the orbits of G on the vectors of M. The orbits are returned as a sequence of sets.
LineOrbits(G) : GrpMat -> [ SetIndx ]
Given a matrix group G with natural R-module M, construct the orbits of G on the rank-1 submodules of M. The orbits are returned as a sequence of sets.
OrbitClosure(G, S) : GrpMat, { Elt } -> GSet
Given a matrix group G with natural module M and a set S of vectors or subspaces of M, return the union of orbits of the elements of S under the natural action of G on M.
Stabilizer(G, y) : GrpMat, Elt -> GrpMat
Given a matrix group G with natural module M and an object y which is either a vector of M, a submodule of M, or a tuple whose components are either vectors or submodules, determine the stabilizer of y in G.

Example GrpMatGen_Orbits (H65E24)

We continue with the group J2A2 introduced above.
> V := RSpace(G);
> u := V![1,0,0,0,0,0];
> U := sub< V | u >;
> x := < u, U >;
> W := sub< V | u, u*G.1 >;
> u^G.1;
(w^6 w^3 w^2   0   0   0)
> U^G.1;
Vector space of degree 6, dimension 1 over GF(3, 2)
Echelonized basis:
(  1 w^5   2   0   0   0)
> W^G.1;
Vector space of degree 6, dimension 2 over GF(3, 2)
Echelonized basis:
(  1 w^5   0   0   0   0)
(  0   0   1   0   0   0)
> x^G.1;
<(w^6 w^3 w^2   0   0   0), Vector space of degree 6,
dimension 1 over GF(3, 2)
Echelonized basis:
(  1 w^5   2   0   0   0)>
> H := sub< G | G.1, G.2 >;
> #Orbit(H, u);
252
> #Orbit(H, U);
63
> #Orbit(G, U);
3150
> Stabilizer(G, U);
MatrixGroup(6, GF(3^2)) of order 384 = 2^7 * 3
Generators:
[  2   0   0   0   0   0]
[w^3   w   w   0   2 w^2]
[w^5 w^7 w^7   0   1 w^2]
[  0   0   1   2   1   0]
[w^7 w^5   0   0   0 w^6]
[  w w^3   0   0   0 w^6]
[w^2   0   0   0   0   0]
[w^5 w^5 w^5   0   w   0]
[w^7 w^3 w^3   0   0 w^7]
[w^2 w^3   w w^6   w w^3]
[w^3   1 w^6   0   w w^7]
[  w w^6   2   0   w w^7]
[w^6   0   0   0   0   0]
[  0   2   0   0   0   0]
[  0   0 w^6   0   0   0]
[w^2 w^7 w^6 w^2   0   0]
[  w   0   w   0   2   0]
[w^6 w^7 w^2   0   0 w^2]
[  2   0   0   0   0   0]
[  0   2   0   0   0   0]
[  0   0   2   0   0   0]
[  0   0   0   2   0   0]
[  0   0   0   0   2   0]
[  0   0   0   0   0   2]
> #Orbit(H, x);
252
> #Orbit(H, W);
28

Orbit and Stabilizer Functions for Large Groups

In this section we describe a number of constructions for orbits and stabilizers which in certain circumstances may be applicable to much larger groups than the functions described above.

OrbitsOfSpaces(G, k) : GrpMat, RngIntElt -> SeqEnum
Determine representatives and lengths for the orbits of all k-dimensional subspaces of the natural vector space under action of a matrix group defined over a prime field; return a sequence of tuples each containing an orbit length and representative. This function is very space-efficient and hence has a significantly larger range than the general-purpose Orbits; however, only representatives and lengths are stored. Theoretical details of the algorithm used may be found in O'Brien [O'B90].
NumberOfFixedSpaces(x, s) : GrpMatElt, RngIntElt -> RngIntElt
NumberOfFixedSpaces(x, s) : AlgMatElt, RngIntElt -> RngIntElt
Return number of subspaces of dimension s fixed by matrix x.

Example GrpMatGen_OrbitsOfSpaces (H65E25)

> G := GL (4, 5);
> H := ExteriorSquare (G);
> H;
MatrixGroup(6, GF(5))
Generators:
    [2 0 0 0 0 0]
    [0 2 0 0 0 0]
    [0 0 1 0 0 0]
    [0 0 0 2 0 0]
    [0 0 0 0 1 0]
    [0 0 0 0 0 1]
    [0 0 0 1 0 0]
    [1 0 0 0 1 0]
    [1 0 0 0 0 0]
    [0 1 0 0 0 1]
    [0 1 0 0 0 0]
    [0 0 1 0 0 0]
> O := OrbitsOfSpaces (H, 2);
We see that there are four orbits:
> O;
[
    <
        4836,
        Vector space of degree 6, dimension 2 over GF(5)
        Generators:
        (1 0 0 0 0 0)
        (0 1 0 0 0 0)
        Echelonized basis:
        (1 0 0 0 0 0)
        (0 1 0 0 0 0)
    >,
    <
        96720,
        Vector space of degree 6, dimension 2 over GF(5)
        Generators:
        (1 0 1 1 0 0)
        (0 1 0 0 0 0)
        Echelonized basis:
        (1 0 1 1 0 0)
        (0 1 0 0 0 0)
    >,
    <
        251875,
        Vector space of degree 6, dimension 2 over GF(5)
        Generators:
        (1 0 0 0 1 0)
        (0 1 0 0 0 0)
        Echelonized basis:
        (1 0 0 0 1 0)
        (0 1 0 0 0 0)
    >,
    <
        155000,
        Vector space of degree 6, dimension 2 over GF(5)
        Generators:
        (1 0 1 1 1 0)
        (0 1 1 1 0 0)
        Echelonized basis:
        (1 0 1 1 1 0)
        (0 1 1 1 0 0)
    >
]
We compute the number of spaces of dimension 2 fixed by H.1 and the number of spaces of dimension 3 fixed by H.2.
> NumberOfFixedSpaces(H.1, 2);
1023
> NumberOfFixedSpaces(H.2, 3);
2
EstimateOrbit(G, v: parameters) : GrpMat, ModTupFldElt -> RngIntElt, RngIntElt, RngIntElt
EstimateOrbit(G, U: parameters) : GrpMat, ModTupFld -> RngIntElt, RngIntElt, RngIntElt
    MaxSize: RngIntElt                  Default: 10000
    NumberCoincidences: RngIntElt       Default: 15
Estimate the size of the orbit of the vector v or subspace U of natural vector space under the action of matrix group G by constructing at most MaxSize random elements of the orbit and counting at most NumberCoincidences coincidences. The function returns a lower bound, upper bound, and estimate of size; if insufficient coincidences are found to estimate the orbit size, the function returns 0. Theoretical details of the algorithm used may be found in Eick, Leedham-Green and O'Brien [ELGO02].
ApproximateStabiliser(G, A, U: parameters) : GrpMat, GrpMat, ModTupFld -> GrpMat, GrpMat, RngIntElt, RngIntElt, RngIntElt
    ImageGenerators: SeqEnum            Default: []
    MaxSize: RngIntElt                  Default: 10000
    NumberCoincidences: RngIntElt       Default: 15
    OrderCheck: BoolElt                 Default: false
The matrix group A is the image of the representation of the matrix group G and A acts on U, a subspace or vector. Approximate the stabiliser of U under A. We assume either a 1 - 1 correspondence between generators of G and those of A, or between generators of G and those elements of A supplied as ImageGenerators. Elements of G whose images in A fix U are obtained by constructing at most MaxSize elements of the orbit of U under A or until we find Numbercoincidences repetitions in this orbit; if OrderCheck is true, report the order of the subgroup S of A which is found. Return preimage of S in G and S, together with a lower bound, upper bound, and estimate of the size of orbit of U. If insufficient coincidences are found to estimate the orbit size, the function returns these last values as 0.

Example GrpMatGen_OrbitsOfSpaces (H65E26)

> G := GL (4, 5);
> A := ExteriorSquare (G);
> V := VectorSpace (GF (5), 6);
> U := sub < V | [Random (V): i in [1..2]]>;
> U;
Vector space of degree 6, dimension 2 over GF(5)
Generators:
(4 3 2 1 0 2)
(3 2 2 4 4 1)
Echelonized basis:
(1 0 2 0 2 4)
(0 1 3 2 4 2)
> EstimateOrbit (A, U);
209316 594421 324272
> H, B, lb, ub, estimate := ApproximateStabiliser (G, A, U);
> #H, #B;
460800 230400
StabiliserOfSpaces(Q) : SeqEnum -> GrpMat, SeqEnum
Determine the subgroup of GL(d, F), for F a finite field, which stabilises the sequence Q of subspaces of the natural vector space. The function also returns generators for the largest unipotent subgroup of the stabiliser. For a description of this algorithm, see Schwingel [Sch00]; this implementation was prepared by Eamonn O'Brien.

Example GrpMatGen_StabiliserOfSpaces (H65E27)

> V := VectorSpace(GF (3), 4);
> Spaces := [sub< V | [1,1,0,2]>, sub < V | [ 1, 0, 2, 0 ], [ 0, 1, 0, 0]>];
> S, P := StabiliserOfSpaces(Spaces);
> #S;
5184
> P;
[
    [1 1 0 0]
    [0 1 0 0]
    [0 1 1 0]
    [0 1 0 1],
    [2 0 2 0]
    [0 1 0 0]
    [1 0 0 0]
    [1 0 2 1],
    [1 0 1 2]
    [0 1 0 0]
    [0 0 2 2]
    [0 0 1 0]
]
Thus, the unipotent subgroup generated by P has order 33.
IsUnipotent(G) : GrpMat -> BoolElt
If G is a p-subgroup of GL(d, F), where F is a finite field of characteristic p, then return true, else return false.
UnipotentStabiliser(G, U: parameters) : GrpMat, ModTupFld -> GrpMat, ModTupFld, GrpMatElt, GrpSLPElt
Given a unipotent subgroup G of GL(d, F), for F a finite field, U a subspace of the natural vector space, determine the stabiliser in G of U. The function returns the stabiliser in G of U, the canonical element C of the orbit of U under G, an element x of G such that Ux = C, and an SLP for x as an element of WordGroup(G). This function does not compute the orbit of U under G, but instead constructs the canonical element of the orbit. Hence it can be used to decide whether or not two subspaces belong to the same orbit. For a description of this algorithm, see [Sch00]; this implementation was prepared by Elliot Costi.

Example GrpMatGen_UnipotentStabiliser (H65E28)

> V := VectorSpace(GF (3), 4);
> G := sub< GL (4, 3) |
>     [ 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1 ],
>     [ 2, 0, 2, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 2, 1 ],
>     [ 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 2, 2, 0, 0, 1, 0 ] >;
> U := sub < V | [ 1, 2, 0, 1 ],[ 2, 2, 1, 0 ]>;
> S, C, x, w := UnipotentStabiliser(G, U);
> S;
MatrixGroup(4, GF(3))
Generators:
    [2 1 2 0]
    [0 1 0 0]
    [1 1 0 0]
    [1 1 2 1]
> #S;
3
> Index(G, S);
9
So the stabiliser of U has order 3 and U lies in an orbit of size 9. We print the canonical element of the orbit of U under G. The element x maps U to C and w evaluates to x.
> C;
Vector space of degree 4, dimension 2 over GF(3)
Echelonized basis:
(1 0 0 0)
(0 1 2 0)
>  U^x;
Vector space of degree 4, dimension 2 over GF(3)
Echelonized basis:
(1 0 0 0)
(0 1 2 0)
> W, phi := WordGroup (G);
>  phi (w);
[1 0 2 1]
[0 1 0 0]
[0 0 0 1]
[0 0 2 2]

Action on Orbits

OrbitAction(G, T) : GrpMat, Elt -> Hom(Grp), GrpPerm, GrpMat
Given a matrix group G with natural module M, and a set T consisting of either (a) elements of M, (b) submodules of M or (c) tuples, form the G-closure Y of T and construct the homomorphism φ: G -> L, where the permutation group L gives the action of G on the set Y. The function returns:
(a)
The natural homomorphism φ: G -> L;
(b)
The induced group L;
(c)
The kernel of the action (a subgroup of G).

The permutation group L acts on the set X = {1..#Y}. The map φ can be used to pass between X and Y. If k∈X then φ(k) is the corresponding element of Y, while if t∈Y then the inverse image of t under φ is the corresponding element of X.

OrbitActionBounded(G, T, b) : GrpMat, Elt, RngIntElt -> BoolElt, Hom(Grp), GrpPerm, GrpMat
Given a matrix group G with natural module M, and a set T consisting of either (a) elements of M, (b) submodules of M or (c) tuples, form the G-closure Y of T. If the cardinality of Y does not exceed b, then construct the homomorphism φ: G -> L, where the permutation group L gives the action of G on the set Y. In this case the function returns:
(a)
The boolean value true.
(b)
The natural homomorphism φ: G -> L;
(c)
The induced group L;
(d)
The kernel of the action (a subgroup of G). If the cardinality of Y exceeds b, simply return false. (The action of G on Y is not constructed in this case).
OrbitImage(G, T) : GrpMat, Set -> GrpPerm, SetIndx
Given a matrix group G with natural module M, and a set T consisting of either (a) elements of M, (b) submodules of M or (c) tuples, form the G-closure Y of T and return the permutation group L giving the action of G on Y. The second return value is Y, with the indexing of Y giving the correspondence between Y and the points acted on by L.
OrbitImageBounded(G, T, b) : GrpMat, Set, RngIntElt -> BoolElt, GrpPerm, SetIndx
Given a matrix group G with natural module M, and set T consisting of either (a) elements of M, (b) submodules of M or (c) tuples, form the G-closure Y of T. If the cardinality of Y does not exceed b, return true together with the permutation group L giving the action of G on Y. If the cardinality of Y does exceed b, the action is not constructed and the single value false is returned.
OrbitKernel(G, T) : GrpMat, Set -> GrpMat
Given a matrix group G with natural module M, and a set T consisting of either (a) elements of M, (b) submodules of M or (c) tuples, form the G-closure Y of T and return the the kernel of the action of G on Y.
OrbitKernelBounded(G, T, b) : GrpMat, Set, RngIntElt -> BoolElt, GrpMat
Given a matrix group G with natural module M, and set T consisting of either (a) elements of M, (b) submodules of M or (c) tuples, form the G-closure Y of T. If the cardinality of Y does not exceed b, return the boolean value true together with the kernel of the action of G on Y. If the cardinality of Y does exceed b, the kernel is not constructed and the single value false is returned.

Example GrpMatGen_Actions (H65E29)

We look for a small G-set for the group J2A2 (defined above) by examining eigenspaces of its generators. Having found a reasonably sized set, we then construct a permutation representation for G on this set.
> [ Factorization(CharacteristicPolynomial(G.i)) : i in [1..3] ];
[
    [
          <x^3 + w^5*x^2 + w^3*x + 2, 1>,
          <x^3 + w^7*x^2 + w*x + 2, 1>
    ],
    [
          <x + 2, 6>
    ],
    [
         <x + w^2, 3>,
         <x + w^6, 3>
    ]
]
> y := Eigenspace(G.2, -2);
> y;
Vector space of degree 6, dimension 3 over GF(3, 2)
Echelonized basis:
(1 0 0 1 2 1)
(0 1 0 2 1 2)
(0 0 1 1 2 1)
> #Orbit(G, y);
280
> P := OrbitImage(G, y);
> P;
Permutation group P of degree 280
> Order(P);
604800
> CompositionFactors(P);
    G
    |  J2
    1

Thus, our group has the simple group J2 of Janko as a composition factor.

> Order(G);
1209600

Hence the kernel of this action has order 2.

Action on a Coset Space

CosetAction(G, H) : GrpMat, GrpMat -> Hom(Grp), GrpPerm, GrpMat
Given a subgroup H of the group G, construct the permutation representation of G given by the action of G on the set of (right) cosets of H in G. The function returns:
(a)
The natural homomorphism f: G -> L;
(b)
The induced permutation group L;
(c)
The kernel K of the action (a subgroup of G).
CosetImage(G, H) : GrpMat, GrpMat -> GrpPerm
Given a subgroup H of the group G, construct the image L of G given by the action of G on the set of (right) cosets of H in G. L is returned as a permutation group.
CosetKernel(G, H) : GrpMat, GrpMat -> GrpMat
Given a subgroup H of the group G, construct the kernel of the action of G on the set of (right) cosets of H in G.

Example GrpMatGen_CosetAction (H65E30)

We construct G = SL(3, 3), a subgroup H of G, and the permutation representation of G given by its action on the cosets of H.
> G := MatrixGroup< 3, GF(3) | [0,2,0, 1,1,0, 0,0,1], [0,1,0, 0,0,1, 1,0,0] >;
> Order(G);
5616
> H := sub< G | G.1^2, G.2 >;
> Order(H);
216
> P := CosetImage(G, H);
> P;
Permutation group P of degree 26
    (1, 2)(3, 4, 6, 5, 7, 9)(8, 11)(10, 13, 15, 20, 18, 17)
      (12, 16, 21, 14, 19, 24)(23, 26)
    (2, 3, 5)(4, 6, 8)(7, 10, 14)(9, 12, 17)(11, 15, 20)(13, 18, 23)
      (16, 22, 21)(19, 25, 24)

Action on the Natural G-Module

A set of functions is provided for working with the action of G on the natural G-module M, for a matrix group G defined over a finite field. Many of these functions are similar to those presented in the general module chapter.

GModule(G) : GrpMat -> ModGrp
The natural R[G]-module M for the matrix group G.
IsIrreducible(G) : GrpMat -> BoolElt, ModGrp
Given a matrix group G, return true iff G acts irreducibly on its natural module M. If G acts reducibly on M, a proper submodule S of M is also returned.
SubmoduleAction(G, S) : GrpMat -> Map, GrpMat
Given a matrix group G and a submodule S of the natural module M of G, return the action homomorphism f of G on S, together with the image of f.
SubmoduleImage(G, S) : GrpMat -> GrpMat
Given a matrix group G and a submodule S of the natural module M of G, return the image of the action homomorphism of G on S.
QuotientModuleAction(G, S) : GrpMat -> Map, GrpMat
Given a matrix group G and a submodule S of the natural module M of G, return the quotient action homomorphism f of G on S, together with the image of f.
QuotientModuleImage(G, S) : GrpMat -> GrpMat
Given a matrix group G and a submodule S of the natural module M of G, return the quotient image of the action homomorphism of G on S.
IsAbsolutelyIrreducible(G) : GrpMat -> BoolElt
Given a matrix group G, return true if and only if G acts absolutely irreducibly on its natural module M. In addition, if G is absolutely irreducible, the function returns the (matrix algebra) generator of the endomorphism algebra E of M (which is always a field), and the dimension of E.
AbsoluteRepresentation(G) : GrpMat -> GrpMat, Map
Given an irreducible matrix group G, return the isomorphic reduced-degree absolute representation A of G, which is over the absolute field of the natural module M of G and is absolutely irreducible, together with the corresponding isomorphism.
MinimalField(G) : GrpMat -> FldFin
Given a matrix group G defined over a finite field K, return the minimal subfield of K over which G can be realised.
V2.28, 13 July 2023