The IrredSol group library provides access to the irreducible solvable subgroups of GL(n,p), where n > 1, p is prime and p^n < 256. The library contains exactly one member from each of the 370 conjugacy classes of such subgroups.
By well known theory, this library also doubles as a library of primitive
solvable permutation groups of non-prime degree less than 256. To access
the data in this form, you must first build the matrix group(s) of
interest and then call the function
PrimitivePermGroupIrreducibleMatGroup( matgrp )
This function returns a permutation group isomorphic to the semidirect
product of an irreducible matrix group (over a finite field) and its
underlying vector space.
AllIrreducibleSolvableGroups( fun1, val1, fun2, val2, ... )
AllIrreducibleSolvableGroups returns a list containing all irreducible
solvable linear groups that have the properties given as arguments. Each
property is specified by passing a pair of arguments, the first being a
function which will be applied to all groups in the library, and the
second being a value or a list of values that this function must return
in order to have this group included in the list returned by
AllIrreducibleSolvableGroups.
gap> AllIrreducibleSolvableGroups( Dimension, 2,
> CharFFE, 3,
> Size, 8 );
[ Group( [ [ 0*Z(3), Z(3)^0 ], [ Z(3)^0, 0*Z(3) ] ],
[ [ Z(3), 0*Z(3) ], [ 0*Z(3), Z(3)^0 ] ],
[ [ Z(3)^0, 0*Z(3) ], [ 0*Z(3), Z(3) ] ] ),
Group( [ [ 0*Z(3), Z(3)^0 ], [ Z(3), 0*Z(3) ] ],
[ [ Z(3)^0, Z(3) ], [ Z(3), Z(3) ] ] ),
Group( [ [ 0*Z(3), Z(3)^0 ], [ Z(3)^0, Z(3) ] ] ) ]
OneIrreducibleSolvableGroup( fun1, val1, fun2, val2, ... )
OneIrreducibleSolvableGroup returns one irreducible solvable linear
group that has the properties given as arguments. Each property is
specified by passing a pair of arguments, the first being a function
which will be applied to all groups in the library, and the second being
a value or a list of values that this function must return in order to
have this group returned by OneIrreducibleSolvableGroup. If no such
group exists, false is returned.
gap> OneIrreducibleSolvableGroup( Dimension, 4,
> IsLinearlyPrimitive, false );
Group( [ [ 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2) ],
[ 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ],
[ Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2) ],
[ 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ] ],
[ [ 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ],
[ Z(2)^0, Z(2)^0, 0*Z(2), 0*Z(2) ],
[ 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2) ],
[ 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ] ],
[ [ Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2) ],
[ 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ],
[ 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ],
[ 0*Z(2), 0*Z(2), Z(2)^0, Z(2)^0 ] ] )
AllIrreducibleSolvableGroups and OneIrreducibleSolvableGroup
recognize the following functions and handle them very efficiently
(because the information is stored with the groups and so no computations
are needed): Dimension for the linear degree, CharFFE for the field
characteristic, Size, IsLinearlyPrimitive, and
MinimalBlockDimension. Note that the last two are dummy functions that
can be used only in this context. Their meaning is explained at the end
of this section.
IrreducibleSolvableGroup( n, p, i )
IrreducibleSolvableGroup returns the i-th irreducible solvable
subgroup of GL( n, p ). The irreducible solvable subgroups of
gap> g := IrreducibleSolvableGroup( 3, 5, 12 );
Group( [ [ 0*Z(5), Z(5)^2, 0*Z(5) ], [ Z(5)^2, 0*Z(5), 0*Z(5) ],
[ 0*Z(5), 0*Z(5), Z(5)^2 ] ],
[ [ 0*Z(5), Z(5)^0, 0*Z(5) ], [ 0*Z(5), 0*Z(5), Z(5)^0 ],
[ Z(5)^0, 0*Z(5), 0*Z(5) ] ],
[ [ Z(5)^2, 0*Z(5), 0*Z(5) ], [ 0*Z(5), Z(5)^0, 0*Z(5) ],
[ 0*Z(5), 0*Z(5), Z(5)^2 ] ],
[ [ Z(5)^0, 0*Z(5), 0*Z(5) ], [ 0*Z(5), Z(5)^2, 0*Z(5) ],
[ 0*Z(5), 0*Z(5), Z(5)^2 ] ],
[ [ Z(5), 0*Z(5), 0*Z(5) ], [ 0*Z(5), Z(5), 0*Z(5) ],
[ 0*Z(5), 0*Z(5), Z(5) ] ] )
Apart from the usual components described in Group Records, the group records returned by the above functions have the following components.
size:
isLinearlyPrimitive:false if G preserves a direct sum decomposition of the
underlying vector space, and true otherwise.
minimalBlockDimension:This library was computed and brought into GAP format by Mark Short. Descriptions of the algorithms used in computing the library data can be found in Sho92.
GAP 3.4.4