Dear GAP Forum members,
Ed Pegg asked:
I've been trying to figure out how to obtain generators for all of
the order 16 groups. I did manage to obtain the Order Distribution for
all of the 16-groups in GAP's library, but it raised some questions.
Both SolvableGroup(16,8) and SolvableGroup(16,9) have the same order
distribution -- [1,1] [2,7] [4,8]. I have a book which states that 27
is the first order where this occurs (Budden - The Fascination of
Groups), but I believe GAP more.
Anyways, any methods for getting generators or for building the
multiplication tables for these groups would be appreciated. This is
a lead in for building generators for all the order 24, 48, 60 and
120 order groups.
You are well advised to believe GAP (at least this time!!!)
There are in fact even three groups of order 16 with the order
distribution that you quote, namely in addition to the two that you
mention also (16,2) which is the direct product of a cyclic group of
oder 4 with two cyclic groups of oder 2. However if you compute the
subgroup lattices of these three groups you will see that they have
pairwise different subgroup lattices:
(16,2) has as maximal subgroups: one elementary abelian one of order 8
and six abelian ones which are the direct product C4xC2 of a cyclic
group of order 4 by a cyclic group of order 2,
(16,8) has as maximal subgroups three abelian ones C4xC2, three
dihedral groups of order 8 and one quaternion group of order 8,
(16,9) has as maximal subgroups one elementary abelian of order 8 and
two abelian ones C4xC2.
These maximal subgroups you can distinguish by their order
However there is even a pair of groups of order 16 which not only have
the same order distribution but even the same subgroup lattice, namely
the direct product of a cyclic group of order 8 by a cyclic group of
order 2 on one hand and the group (16,11) on the other hand. You can
distinguish these only if in addition you consider conjugacy of
subgroups: while in the abelian group of course all subgroups are
normal, in the other one two of its three subgroups of order 2 are
You can best study such properties and get a real impression of the
subgroup structure using XGAP, which allows you to get a picture of
the subgroup lattice drawn on your monitor.
As to your further question about finding generators for small groups:
There are several lists of small groups available in GAP, (the most
recent one going up to order 1000 omitting only orders 512 and 768).
In most cases these give so-called ag-presentations (or polycyclic
presentations) but you can easily convert to permutation groups and
for soluble groups you can get a minimal generating set, as shown in
the following example:
You can fetch the groups from the small groups library. They are
returned as ag groups.
gap> G := SmallGroup( 16, 8 ); 16_8
A minimal generating set can be determined as follows.
[ a, b, c, d ]
gap> MinimalGeneratingSet( G );
[ b, a ]
To convert <G> into a permutation group, you can use the regular
operation of <G> on its elements via right multiplication.
gap> P := Operation( G, Elements( G ), OnRight ); Group( ( 1, 9, 2,10)( 3,12, 4,11)( 5,15, 6,16)( 7,13, 8,14), ( 1, 5)( 2, 6) ( 3, 8)( 4, 7)( 9,13)(10,14)(11,16)(12,15), ( 1, 3, 2, 4)( 5, 7, 6, 8) ( 9,11,10,12)(13,15,14,16), ( 1, 2)( 3, 4)( 5, 6)( 7, 8)( 9,10)(11,12)(13,14) (15,16) )
Incidentally, the same thing is done if you simply call
gap> Q := PermGroup(G); Group( ( 1, 9, 2,10)( 3,12, 4,11)( 5,15, 6,16)( 7,13, 8,14), ( 1, 5)( 2, 6) ( 3, 8)( 4, 7)( 9,13)(10,14)(11,16)(12,15), ( 1, 3, 2, 4)( 5, 7, 6, 8) ( 9,11,10,12)(13,15,14,16), ( 1, 2)( 3, 4)( 5, 6)( 7, 8)( 9,10)(11,12)(13,14) (15,16) ) gap> Q.bijection; InverseMapping( OperationHomomorphism( 16_8, Group( ( 1, 9, 2,10)( 3,12, 4,11) ( 5,15, 6,16)( 7,13, 8,14), ( 1, 5)( 2, 6)( 3, 8)( 4, 7)( 9,13)(10,14)(11,16) (12,15), ( 1, 3, 2, 4)( 5, 7, 6, 8)( 9,11,10,12)(13,15,14,16), ( 1, 2)( 3, 4) ( 5, 6)( 7, 8)( 9,10)(11,12)(13,14)(15,16) ) ) )
This bijection <Q> -> <G> allows you to map elements back and forth
between <G> and <Q>.
So you see that generating sets for the groups that you intended to
construct are all there already.
I do not think, that building multiplication tables for such groups is
a worthwhile task, you really cannot see much from them. To look for
multiplication tables is perhaps a wrong advice suggested by books
like the one by Budden, which is wonderful in giving many nice
examples of small groups coming in many disguises, but again and again
refers to such multiplication tables. Looking at the subgroup lattice
or even only parts of that usually tells you much more what the group
Hopes this helps