A finite group G is called primitiveif it has a maximal subgroup M with trivial core; the group acts faithfully and primitively on the cosets of such a maximal subgroup.
Now assume that G is primitive and solvable. Then there exists a unique conjugacy class of such maximal subgroups; the index of M in G is called the degree of G. Moreover, M complements the socle N of G. THe socle N coincides with the Fitting subgroup of G; it is the unique minimal normal subgroup N of G. Therefore, the index of M in G is a prime power, pn, say. Regarding N as a Fp-vector space, M acts as an irreducible subgroup of GL(n,p) on N. Conversely, if M is an irreducible solvable subgroup of GL(n,p), and V = Fpn, then the split extension of V by M is a primitive solvable group. This establishes a well known bijection between the isomorphism types (or, equivalently, the Sym(pn)-conjugacy classes) of primitive solvable groups of degree p<n> and the conjugacy classes of irreducible solvable subgroups of GL(n, p).
The IRREDSOL package provides functions for translating between primitive solvable groups and irreducible solvable matrix groups, which are described in Section Translating between irreducible solvable matrix groups and primitive solvable groups. Moreover, there are functions for finding primitive solvable groups with given properties, see Section Finding primitive pc groups with given properties and Finding primitive solvable permutation groups with given properties.
PrimitivePcGroupIrreducibleMatrixGroup(
G) F
PrimitivePcGroupIrreducibleMatrixGroupNC(
G) F
For a given irreducible solvable matrix group G over a prime field, this function
returns a primitive pc group H which is the split extension of G with its natural
underlying vector space V. The NC
version does not check whether G is over a prime field,
or whether G is irreducible. The group H has an attribute Socle
(see Socle
in the GAP reference manual, corresponding to V. If the package CRISP is loaded,
then the attribute SocleComplement
(see crisp:SocleComplement in the CRISP manual) is set to a subgroup of
H isomorphic with G.
gap> PrimitivePcGroupIrreducibleMatrixGroup ( > IrreducibleSolvableMatrixGroup (4,2,2,3)); <pc group of size 160 with 6 generators>
PrimitivePermutationGroupIrreducibleMatrixGroup(
G) F
PrimitivePermutationGroupIrreducibleMatrixGroupNC(
G) F
For a given irreducible solvable matrix group G over a prime field, this function
returns a primitive permutation group H, representing the affine action of G on its natural
vector space V. The NC
version does not check whether G is over a prime field,
or whether G is irreducible. The group H has an attribute Socle
(see Socle
in the GAP reference manual, corresponding to V. If the package CRISP is loaded,
then the attribute SocleComplement
(see crisp:SocleComplement in the CRISP manual) is set to a subgroup of
H isomorphic with G.
gap> PrimitivePermutationGroupIrreducibleMatrixGroup ( > IrreducibleSolvableMatrixGroup (4,2,2,3)); <permutation group of size 160 with 6 generators>
IrreducibleMatrixGroupPrimitiveSolvableGroup(
G) F
IrreducibleMatrixGroupPrimitiveSolvableGroupNC(
G) F
For a given primitive solvable group G, this function returns a matrix group obtained from the conjugation action of G on its unique minimal normal subgroup N, regarded as a vector space over Fp, where p is the exponent of N. The Fp-basis of N is chosen arbitrarily, so that the matrix group returned is unique only up to conjugacy in the relevant GL(n, p). The NC version does not check whether G is primitive and solvable.
gap> IrreducibleMatrixGroupPrimitiveSolvableGroup (SymmetricGroup (4)); Group([ <an immutable 2x2 matrix over GF2>, <an immutable 2x2 matrix over GF2> , <an immutable 2x2 matrix over GF2>, <an immutable 2x2 matrix over GF2> ])
AllPrimitivePcGroups(
func_1,
arg_1,
func_2,
arg_2, ...) F
This function returns a list of all primitive solvable pc
groups G in the IRREDSOL library for which the return value of funci(G) lies
in arg_i. The arguments func_1, func_2, ...,
must be GAP functions which take a pc group as their only argument and return a
value, and arg_1, arg_2,
..., must be lists. If arg_i is not a list, arg_i is replaced by the list
[
arg_i]
. One of the functions must be Degree
or one of its
equivalents, see below.
The following functions func_i are handled particularly efficiently.
Degree
, NrMovedPoints
, LargestMovedPoint
Order
, Size
Note that there is also a function IteratorPrimitivePcGroups
(see
IteratorPrimitivePcGroups) which allows one to run through the list produced by
AllPrimitivePcGroups
without having to store all the groups in the list
simultaneously.
gap> AllPrimitivePcGroups (Degree, [1..255], Order, [168]); [ <pc group of size 168 with 5 generators> ]
OnePrimitivePcGroup(
func_1,
arg_1,
func_2,
arg_2, ...) F
This function returns one primitive solvable pc
group G in the IRREDSOL library for which the return value of funci(G) lies in
arg_i, or fail
if no such group exists. The arguments func_1, func_2, ...,
must be GAP functions which take a pc group as their only argument and return a
value, and arg_1, arg_2,
..., must be lists. If arg_i is not a list, arg_i is replaced by the list
[
arg_i]
. One of the functions must be Degree
or one of its, equivalents, NrMovedPoints
or LargestMovedPoint
.
For a list of functions which are handled particularly efficiently, see AllPrimitivePcGroups.
gap> OnePrimitivePcGroup (Degree, [256], Order, [256*255]); <pc group of size 65280 with 11 generators>
IteratorPrimitivePcGroups(
func_1,
arg_1,
func_2,
arg_2, ...) F
This function returns an iterator which runs through the list of all primitive solvable
pc groups G in the IRREDSOL library such that
funci(G) lies in arg_i. The arguments func_1, func_2, ...,
must be GAP functions taking a pc group as their only argument and returning
a value, and arg_1, arg_2, ...,
must be lists. If arg_i is not a list, arg_i is replaced by the list [
arg_i]
.
One of the functions must be Degree
or one of its, equivalents, NrMovedPoints
or LargestMovedPoint
.
For a list of functions which are handled particularly efficiently, see
AllPrimitivePcGroups.
Using
IteratorPrimitivePcGroups
(func_1, arg_1, func_2, arg_2, ...))
is functionally equivalent to
Iterator
(AllPrimitivePcGroups
(func_1, arg_1, func_2, arg_2, ...))
(see Iterators in the GAP reference manual for details) but does not compute all relevant pc groups at the same time. This may save some memory.
AllPrimitiveSolvablePermutationGroups(
func_1,
arg_1,
func_2,
arg_2, ...) F
This function returns a list of all primitive solvable permutation
groups G corresponding to irreducible matrix groups in the IRREDSOL library
for which the return value of funci(G) lies
in arg_i. The arguments func_1, func_2, ...,
must be GAP functions which take a permutation group as their only argument and return a
value, and arg_1, arg_2,
..., must be lists. If arg_i is not a list, arg_i is replaced by the list
[
arg_i]
. One of the functions must be Degree
or one of its
equivalents, see below.
The following functions func_i are handled particularly efficiently.
Degree
, NrMovedPoints
, LargestMovedPoint
Order
, Size
Note that there is also a function IteratorPrimitivePermutationGroups
(see
IteratorPrimitivePermutationGroups) which allows one to run through the list produced by
AllPrimitivePcGroups
without having to store all of the groups
simultaneously.
gap> AllPrimitiveSolvablePermutationGroups (Degree, [1..100], Order, [72]); [ Group([ (1,4,7)(2,5,8)(3,6,9), (1,2,3)(4,5,6)(7,8,9), (2,4)(3,7)(6,8), (2,3)(5,6)(8,9), (4,7)(5,8)(6,9) ]), Group([ (1,4,7)(2,5,8)(3,6,9), (1,2,3)(4,5,6)(7,8,9), (2,5,3,9)(4,8,7,6), (2,7,3,4)(5,8,9,6), (2,3)(4,7)(5,9)(6,8) ]), Group([ (1,4,7)(2,5,8)(3,6,9), (1,2,3)(4,5,6)(7,8,9), (2,5,6,7,3,9,8,4) ]) ] gap> List (last, IdGroup); [ [ 72, 40 ], [ 72, 41 ], [ 72, 39 ] ]
OnePrimitiveSolvablePermutationGroup(
func_1,
arg_1,
func_2,
arg_2, ...) F
This function returns one primitive solvable permutation
group G corresponding to irreducible matrix groups in the IRREDSOL library
for which the return value of funci(G) lies in
arg_i, or fail
if no such group exists. The arguments func_1, func_2, ...,
must be GAP functions which take a permutation group as their only argument and return a
value, and arg_1, arg_2,
..., must be lists. If arg_i is not a list, arg_i is replaced by the list
[
arg_i]
. One of the functions must be Degree
or one of its, equivalents, NrMovedPoints
or LargestMovedPoint
.
For a list of functions which are handled particularly efficiently, see AllPrimitiveSolvablePermutationGroups.
gap> OnePrimitiveSolvablePermutationGroup (Degree, [1..100], Size, [123321]); fail
IteratorPrimitivePermutationGroups(
func_1,
arg_1,
func_2,
arg_2, ...) F
This function returns an iterator which runs through the list of all primitive solvable
groups G in the IRREDSOL library such that
funci(G) lies in arg_i. The arguments func_1, func_2, ...,
must be GAP functions taking a pc group as their only argument and returning
a value, and arg_1, arg_2, ...,
must be lists. If arg_i is not a list, arg_i is replaced by the list [
arg_i]
.
One of the functions must be Degree
or one of its, equivalents, NrMovedPoints
or LargestMovedPoint
.
For a list of functions which are handled particularly efficiently, see
AllPrimitiveSolvablePermutationGroups.
Using
IteratorPrimitiveSolvablePermutationGroups
(func_1, arg_1, func_2, arg_2, ...))
is functionally equivalent to
Iterator
(AllPrimitiveSolvablePermutationGroups
(func_1, arg_1, func_2, arg_2, ...))
(see Iterators in the GAP reference manual for details) but does not compute all relevant pc groups at the same time. This may save some memory.
IdPrimitiveSolvableGroup(
G) F
IdPrimitiveSolvableGroupNC(
G) F
returns the id of the primitive solvable group G. This is the same as
the id of IrreducibleMatrixGroupPrimitiveSolvableGroup(
G)
, see IrreducibleMatrixGroupPrimitiveSolvableGroup and IdIrreducibleSolvableMatrixGroup.
Note that two primitive solvable groups are isomorphic if, and only if, their
ids returned by IdPrimitivePcGroup
are the same. The NC version does not
check whether G is primitive and solvable.
gap> G := PrimitivePcGroupIrreducibleMatrixGroup (\ > IrreducibleSolvableMatrixGroup (6,2,3,3)); <pc group of size 8064 with 10 generators> gap> IdPrimitiveSolvableGroup (G); [ 6, 2, 3, 3 ]
IRREDSOL manual