[Up] [Previous] [Next] [Index]

# 4 Additional functionality for matrix groups

### Sections

1. Basic attributes for matrix groups
2. Irreducibility and maximality of matrix groups
3. Primitivity of matrix groups
4. Conjugating matrix groups into smaller fields

This chapter explains some attributes, properties, and operations which may be useful for working with matrix groups. Some of these are part of the GAP library and are listed for the sake of completeness, and some are provided by the package IRREDSOL. Note that groups constructed by functions in IRREDSOL already have the appropriate properties and attributes.

## 4.1 Basic attributes for matrix groups

- `DegreeOfMatrixGroup(`G`) A`
- `Degree(`G`) O`
- `DimensionOfMatrixGroup(`G`) A`
- `Dimension(`G`) A`

  This is the degree of the matrix group or, equivalently, the dimension of the natural underlying vector space. See also DimensionOfMatrixGroup in the GAP reference manual.

- `FieldOfMatrixGroup(`G`) A`

  This is the field generated by the matrix entries of the elements of G. See also FieldOfmatrixGroup in the GAP reference manual.

- `DefaultFieldOfMatrixGroup(`G`) A`

  This is a field containing all matrix entries of the elements of G. See also DefaultFieldOfMatrixGroup in the GAP reference manual.

- `SplittingField(`G`) A`

  Let G be an irreducible subgroup of GL(n, F), where F = `FieldOfMatrixGroup(`G`)` is a finite field. This attribute stores the splitting field E for G, that is, the (unique) smallest field E containing F such that the natural E G-module En is the direct sum of absolutely irreducible E G- submodules. The number of these absolutely irreducible summands equals the dimension of E as an F-vector space.

- `CharacteristicOfField(`G`) A`
- `Characteristic(`G`) O`

  This is the characteristic of `FieldOfMatrixGroup`(G) (see FieldOfMatrixGroup).

- `RepresentationIsomorphism(`G`) A`

  This attribute stores an isomorphism H toG, where H is a group in which computations can be carried out more efficiently than in G, and the isomorphism can be evaluated easily. Every group in the IRREDSOL library has such a representation isomorphism from a pc group H to G.

  In this way, computations which only depend on the isomorphism type of G can be carried out in the group H and translated back to the group G via the representation isomorphism. Possible applications are the conjugacy classes of G, Sylow subgroups, composition and chief series, normal subgroups, group theoretical properties of G, and many more.

  The concept of a representation isomorphism is related to nice monomorphisms; see Section Nice Monomorphisms in the GAP reference manual. However, unlike nice monomorphisms, `RepresentationIsomorphism` need not be efficient for computing preimages (and, indeed, will not usually be, in the case of the groups in the IRREDSOL library).

  ## 4.2 Irreducibility and maximality of matrix groups

- `IsIrreducibleMatrixGroup(`G`) P`
- `IsIrreducibleMatrixGroup(`G`,` F`) O`
- `IsIrreducible(`G`[,` F`]) O`

  The matrix group G of degree d is irreducible over the field F if no subspace of Fd is invariant under the action of G. If F is not specified, F = `FieldOfMatrixGroup`(G) is assumed.

      gap> G := IrreducibleSolvableMatrixGroup (4, 2, 2, 3);
      <matrix group of size 10 with 2 generators>
      gap> IsIrreducibleMatrixGroup (G);
      true
      gap> IsIrreducibleMatrixGroup (G, GF(2));
      true
      gap> IsIrreducibleMatrixGroup (G, GF(4));
      false

- `IsAbsolutelyIrreducibleMatrixGroup(`G`) P`
- `IsAbsolutelyIrreducible(`G`) O`

  If present, this operation returns true if G is absolutely irreducible, i. e., irreducible over any extension field of `FieldOfMatrixGroup`(G).

      gap> G := IrreducibleSolvableMatrixGroup (4, 2, 2, 3);
      <matrix group of size 10 with 2 generators>
      gap> IsAbsolutelyIrreducibleMatrixGroup(G);
      false;

- `IsMaximalAbsolutelyIrreducibleSolvableMatrixGroup(`G`) P`

  This property, if present, is `true` if, and only if, G is absolutely irreducible and maximal among the solvable subgroups of GL(d, F), where d = `DegreeOfMatrixGroup`(G) and F = `FieldOfMatrixGroup`(G).

  ## 4.3 Primitivity of matrix groups

- `MinimalBlockDimensionOfMatrixGroup(`G`) A`
- `MinimalBlockDimensionOfMatrixGroup(`G`,` F`) O`
- `MinimalBlockDimension(`G`[,` F`]) O`

  Let G be a matrix group of degree d over the field F. A decomposition V1 opluscdotsoplusVk of Fd into F-subspaces Vi is a block system of G if the Vi are permuted by the natural action of G. Obviously, all Vi have the same dimension; this is the dimension of the block system V1 opluscdotsoplusVk. The function `MinimalBlockDimensionOfMatrixGroup` returns the minimum of the dimensions of all block systems of G. If F is not specified, F = `FieldOfMatrixGroup`(G) is assumed. At present, only methods for groups which are irreducible over F are available.

      gap> G := AbsolutelyIrreducibleSolvableMatrixGroup (2,3,4);;
      gap> MinimalBlockDimension (G, GF(3));
      2
      gap> MinimalBlockDimension (G, GF(9));
      1

- `IsPrimitiveMatrixGroup(`G`) P`
- `IsPrimitiveMatrixGroup(`G`,` F`) O`
- `IsPrimitive(`G`[,` F`]) O`
- `IsLinearlyPrimitive(`G`[,` F`]) O`

  An irreducible matrix group G of degree d is primitive over the field F if it only has the trivial block system Fd or, equivalently, if `MinimalBlockDimensionOfMatrixGroup`(G, F) = d. If F is not specified, F = `FieldOfMatrixGroup`(G) is assumed.

      gap> G := IrreducibleSolvableMatrixGroup (2,2,1,1);
      Group([ <an immutable 2x2 matrix over GF2>, <an immutable 2x2 matrix over GF2> ])
      gap> IsPrimitiveMatrixGroup (G, GF(2));
      true
      gap> IsIrreducibleMatrixGroup (G, GF(4));
      true
      gap> IsPrimitiveMatrixGroup (G, GF(4));
      false

- `ImprimitivitySystems(`G`[,` F`]) O`

  This function returns the list of all imprimitivity systems of the irreducible matrix group G over the field F. If F is not given, `FieldOfMatrixGroup(`G`)` is used. Each imprimitivity system is given by a record with the following entries:

  `bases`
    a list of the bases of the subspaces which form the imprimitivity system. Note that a basis here is just a list of vectors, not a basis in the sense of GAP (see Basis in the GAP reference manual). Each basis is in Hermite normal form so that the action of G on the imprimitivity system can be determined by `OnSubspacesByCanonicalBasis`

  `stab1`
    the subgroup of G stabilizing the subspace W spanned by `bases[1]`

  `min`
    is true if the imprimitivity system is minimal, that is, if `stab1` acts primitively on W, and false otherwise

      gap> G := IrreducibleSolvableMatrixGroup (6, 2, 1, 9);
      <matrix group of size 54 with 4 generators>
      gap> impr := ImprimitivitySystems(G, GF(2));;
      gap> List (ImprimitivitySystems(G, GF(2)), r -> Length (r.bases));
      [ 3, 3, 1 ]
      gap> List (ImprimitivitySystems(G, GF(4)),
      >        r -> Action (G, r.bases, OnSubspacesByCanonicalBasis));
      [ Group([ (), (1,2)(3,6)(4,5), (1,3,4)(2,5,6), (1,4,3)(2,6,5) ]),
        Group([ (1,2,4)(3,5,6), (1,3)(2,5)(4,6), (), () ]),
        Group([ (1,2,4)(3,5,6), (1,3)(2,5)(4,6), (1,2,4)(3,6,5), (1,4,2)(3,5,6) ]),
        Group([ (1,2,4)(3,5,6), (1,3)(2,5)(4,6), (1,4,2)(3,5,6), (1,2,4)(3,6,5) ]),
        Group([ (), (1,2), (), () ]), Group([ (1,2,3), (), (), () ]),
        Group([ (), (2,3), (1,2,3), (1,3,2) ]),
        Group([ (), (2,3), (1,2,3), (1,3,2) ]),
        Group([ (), (2,3), (1,2,3), (1,3,2) ]), Group(()) ]

  ## 4.4 Conjugating matrix groups into smaller fields

- `TraceField(`G`) A`

  This is the field generated by the traces of the elements of the matrix group G. If G is an irreducible matrix group over a finite field then, by a theorem of Brauer, G has a conjugate which is a matrix group over `TraceField`(G).

      gap> repeat
      >        G := IrreducibleSolvableMatrixGroup (8, 2, 2, 7)^RandomInvertibleMat (8, GF(8));
      >    until FieldOfMatrixGroup (G) = GF(8);
      gap> TraceField (G);
      GF(2)

- `ConjugatingMatTraceField(`G`) A`

  If bound, this is a matrix x over `FieldOfMatrixGroup`(G) such that G<x> is a matrix group over `TraceField`(G). Currently, there are only methods available for irreducible matrix groups G over finite fields and certain trivial cases. The method for absolutely irreducible groups is described in GH. Note that, for matrix groups over infinite fields, such a matrix x need not exist.

      gap> repeat
      >       G := IrreducibleSolvableMatrixGroup (8, 2, 2, 7) ^
      >                RandomInvertibleMat (8, GF(8));
      >    until FieldOfMatrixGroup(G) = GF(8);
      gap> FieldOfMatrixGroup (G^ConjugatingMatTraceField (G));
      GF(2)

  [Up] [Previous] [Next] [Index]