- Design of the group library
- Low level access functions
- Finding matrix groups with given properties
- Loading and unloading group data manually

This chapter describes the design of the IRREDSOL group library (see Section Design of the group library) and the various ways of accessing groups in the data library. It is possible to construct individual groups in the group library (see Section Low level access functions), or to search for groups with certain properties (see Section Finding matrix groups with given properties). Finally, there are functions for loading and unloading group data manually (see Section Loading and unloading group data manually).

To avoid redundancy, the package IRREDSOL does not actually store
lists of irreducible subgroups of `GL( n, q)` but
only has lists

`bullet`- each group in
`calA`is absolutely irreducible and soluble_{n,q} `bullet``calA`contains a conjugate of each absolutely irreducible soluble subgroup of_{n,q}`GL(n, q)``bullet`- no two groups in
`calA`are conjugate in_{n,q}`GL(n, q)` `bullet`- each group in
`calA`has trace field_{n,q}`F`._{q}

We will briefly say that `calA _{n,q}` contains, up to conjugacy, all absolutely
irreducible soluble subgroups of

`TraceField`

(TraceField)
and `ConjugatingMatTraceField`

(ConjugatingMatTraceField).
Note that by the Deuring-Noether theorem, two subgroups of `GL(n, q _{0})` are
conjugate in

The lists `calA _{n, q}` are also sufficient to reconstruct lists of all irreducible soluble subgroups of

Note that all of the arguments above apply to nonsoluble groups as well.

The access functions described in this section allow to check for the availability of data and to construct irreducible groups in the IRREDSOL group library.

`IsAvailableIrreducibleSolubleGroupData(`

`, `

`) F`

`IsAvailableIrreducibleSolvableGroupData(`

`, `

`) F`

This function tests whether the irreducible soluble subgroups of `GL(n,q)` with trace
field `F _{q}` are part of the IRREDSOL library.

`IndicesIrreducibleSolubleMatrixGroups(`

`, `

`, `

`) F`

`IndicesIrreducibleSolvableMatrixGroups(`

`, `

`, `

`) F`

Let `n` and `d` be positive integers and `q` a prime power. This
function returns a set of integers parametrising the groups in the IRREDSOL library
which are subgroups of `GL(n,q)` with trace field `F _{q}`
and splitting field

gap> IndicesIrreducibleSolubleMatrixGroups(6, 2, 2); [ 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12 ]

`IrreducibleSolubleMatrixGroup(`

`, `

`, `

`, `

`) F`

`IrreducibleSolvableMatrixGroup(`

`, `

`, `

`, `

`) F`

Let `n`, `d` and `k` be positive integers and `q` a prime power. This
function returns the irreducible soluble subgroup of `GL(n,q)` with trace field `F _{q}`,
splitting field

`IndicesIrreducibleSolubleMatrixGroups`

(`IsAvailableAbsolutelyIrreducibleSolubleGroupData(`

`, `

`) F`

`IsAvailableAbsolutelyIrreducibleolvableGroupData(`

`, `

`) F`

This function tests whether the
absolutely irreducible soluble subgroups of `GL(n,q)` with trace field `F _{q}` are in the IRREDSOL library.

`IndicesMaximalAbsolutelyIrreducibleSolubleMatrixGroups(`

`, `

`) F`

`IndicesMaximalAbsolutelyIrreducibleSolvableMatrixGroups(`

`, `

`) F`

Let `n` be a positive integer and `q` a prime power. This
function returns a set of integers parametrising those subgroups of `GL(n, q)` in the
IRREDSOL library that are maximal among the absolutely irreducible soluble subgroups with trace field `F _{q} ` and that are maximal with
respect to being soluble. An error is raised if the relevant
data is not available (see IsAvailableAbsolutelyIrreducibleSolubleGroupData for information
how to check this first). An integer

`IrreducibleSolubleMatrixGroup`

(`AbsolutelyIrreducibleSolubleMatrixGroup`

(

gap> inds := IndicesMaximalAbsolutelyIrreducibleSolubleMatrixGroups(2,3); [ 2 ] gap> IrreducibleSolubleMatrixGroup(2,3,1,2) = GL(2,3); # it is the whole GL true

`IndicesAbsolutelyIrreducibleSolubleMatrixGroups(`

`, `

`) F`

`AbsolutelyIrreducibleSolubleMatrixGroup(`

`, `

`, `

`) F`

These functions are deprecated. Please use `IndicesIrreducibleSolubleMatrixGroups`

(`n`, `q`, 1) and `IrreducibleSolubleMatrixGroup`

(`n`, `q`, 1, `k`) instead.

This section describes three functions
(`AllIrreducibleSolubleMatrixGroups`

,
`OneIrreducibleSolubleMatrixGroup`

,
`IteratorIrreducibleSolubleMatrixGroups`

) which allow to find matrix
groups with prescribed properties. Using these functions can be more efficient
than to construct each group in the library using the functions in Section
Low level access functions because they can access additional information
about a group in the IRREDSOL library before actually constructing the group.
See the discussion following the description of
`AllIrreducibleSolubleMatrixGroups`

for details.

`AllIrreducibleSolubleMatrixGroups(`

`, `

`, `

`, `

`, ...) F`

`AllIrreducibleSolvableMatrixGroups(`

`, `

`, `

`, `

`, ...) F`

`AllIrredSolMatGroups(`

`, `

`, `

`, `

`, ...) F`

This function returns a list of all irreducible soluble matrix
groups `G` in the IRREDSOL library for which the return value of ` func_{i}(G)` lies in

`[`

`]`

. The functions `DegreeOfMatrixGroup`

and `FieldOfMatrixGroup`

(or their equivalents, see below) must be among the `TraceField`

). Note that all groups in the data library have the property that
`TraceField`

(`FieldOfMatrixGroup`

(
Note that there is also a function `IteratorIrreducibleSolubleMatrixGroups`

(see
IteratorIrreducibleSolubleMatrixGroups) which allows to run through the list produced by
`AllIrreducibleSolubleMatrixGroups`

without having to store all of the groups
simultaneously.

The following functions `func_i` are handled particularly efficiently, because the
return values of these functions can be read off the
IRREDSOL library without actually constructing the relevant matrix group. For the
definitions of these functions, see Chapter Additional functionality for matrix groups.

`bullet``DegreeOfMatrixGroup`

(or`Degree`

,`Dimension`

,`DimensionOfMatrixGroup`

),`bullet``CharacteristicOfField`

(or`Characteristic`

)`bullet``FieldOfMatrixGroup`

(or`Field`

or`TraceField`

)`bullet``Order`

(or`Size`

)`bullet``IsMaximalAbsolutelyIrreducibleSolubleMatrixGroup`

`bullet``IsAbsolutelyIrreducibleMatrixGroup`

(or`IsAbsolutelyIrreducible`

)`bullet``MinimalBlockDimensionOfMatrixGroup`

(or`MinimalBlockDimension`

)`bullet``IsPrimitiveMatrixGroup`

(or`IsPrimitive`

,`IsLinearlyPrimitive`

)

`RepresentationIsomorphism`

(see RepresentationIsomorphism).

# get just those groups with trace field GF(9) gap> l := AllIrreducibleSolubleMatrixGroups(Degree, 1, Field, GF(9));; gap> List(l, Order); [ 4, 8 ] # get all irreducible subgroups gap> l := AllIrreducibleSolubleMatrixGroups(Degree, 1, Field, Subfields(GF(9)));; gap> List(l, Order); [ 1, 2, 4, 8 ] # get only maximal absolutely irreducible ones gap> l := AllIrreducibleSolubleMatrixGroups(Degree, 4, Field, GF(3), > IsMaximalAbsolutelyIrreducibleSolubleMatrixGroup, true);; gap> SortedList(List(l, Order)); [ 320, 640, 2304, 4608 ] # get only absolutely irreducible groups gap> l := AllIrreducibleSolubleMatrixGroups(Degree, 4, Field, GF(3), > IsAbsolutelyIrreducibleMatrixGroup, true);; gap> Collected(List(l, Order)); [ [ 20, 1 ], [ 32, 7 ], [ 40, 2 ], [ 64, 10 ], [ 80, 2 ], [ 96, 6 ], [ 128, 9 ], [ 160, 3 ], [ 192, 9 ], [ 256, 6 ], [ 288, 1 ], [ 320, 2 ], [ 384, 4 ], [ 512, 1 ], [ 576, 3 ], [ 640, 1 ], [ 768, 1 ], [ 1152, 4 ], [ 2304, 3 ], [ 4608, 1 ] ]

`OneIrreducibleSolubleMatrixGroup(`

`, `

`, `

`, `

`, ...) F`

`OneIrreducibleSolvableMatrixGroup(`

`, `

`, `

`, `

`, ...) F`

`OneIrredSolMatGroup(`

`, `

`, `

`, `

`, ...) F`

This function returns a matrix group `G` from the IRREDSOL library such that
` func_{i}(G)` lies in

`fail`

if no such group exists. The arguments `[`

`]`

. The functions `DegreeOfMatrixGroup`

and `FieldOfMatrixGroup`

(or their equivalents, see below) must be among the `TraceField`

(`FieldOfMatrixGroup`

(To use this function efficiently, please see the comments in AllIrreducibleSolubleMatrixGroups.

`IteratorIrreducibleSolubleMatrixGroups(`

`, `

`, `

`, `

`, ...) F`

`IteratorIrreducibleSolvableMatrixGroups(`

`, `

`, `

`, `

`, ...) F`

`IteratorIrredSolMatGroups(`

`, `

`, `

`, `

`, ...) F`

This function returns an iterator which runs through the list of all matrix groups `G`
in the IRREDSOL library such that
` func_{i}(G)` lies in

`[`

`]`

.
The functions `DegreeOfMatrixGroup`

and `FieldOfMatrixGroup`

(or their equivalents, see below) must be among the Using

`IteratorIrreducibleSolubleMatrixGroups`

(`func_1`, `arg_1`, `func_2`, `arg_2`, ...))

is functionally equivalent to

`Iterator`

(`AllIrreducibleSolubleMatrixGroups`

(`func_1`, `arg_1`, `func_2`, `arg_2`, ...))

(see Section Iterators in the GAP reference manual for details) but, unlike `AllIrreducibleSolubleMatrixGroups`

, does not store all
relevant matrix groups at the same time. This may save a considerable amount of memory.

To use this function efficiently, please see the comments in AllIrreducibleSolubleMatrixGroups.

The data required by the IRREDSOL library is loaded into GAP's workspace automatically whenever required, but is never unloaded automatically. The functions described in this and the following section describe how to load and unload this data manually. They are only relevant if timing or conservation of memory is an issue.

`LoadAbsolutelyIrreducibleSolubleGroupData(`

`, `

`) F`

`LoadAbsolutelyIrreducibleSolvableGroupData(`

`, `

`) F`

`LoadAbsoIrredSolGroupData(`

`, `

`) F`

This function loads the data for `GL( n, q)` into the GAP workspace and does
some pre-processing. If the data is already loaded, the function does nothing. This
function is called automatically when you access the
IRREDSOL library, so most users will not need this function.

`LoadedAbsolutelyIrreducibleSolubleGroupData() F`

`LoadedAbsolutelyIrreducibleSolvableGroupData() F`

`LoadedAbsoIrredSolGroupData(`

`, `

`) F`

This function returns a list. Each entry consists of an integer `n` and a set `l`. The set
`l` contains all prime powers `q` such that the group data for `GL( n, q)` is currently in memory.

`UnloadAbsolutelyIrreducibleSolubleGroupData([`

` [, `

`]]) F`

`UnloadAbsolutelyIrreducibleSolvableGroupData([`

` [, `

`]]) F`

`UnloadAbsoIrredSolGroupData(`

`, `

`) F`

This function can be used to delete data for `GL( n, q)` from the GAP workspace. If no argument
is given, all data will be deleted. If only

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

IRREDSOL manual

February 2017