> < ^ Date: Wed, 28 Jan 1998 16:50:53 +0100 (CET)
> < ^ From: Joachim Neubueser <joachim.neubueser@math.rwth-aachen.de >
< ^ Subject: Re: Subgroups of Given Size

Dear Forum members,

In GAP3.4.4, I want to find all subgroups of G having a given size.
Is there a way to do this OTHER THAN searching G's lattice diagram?

I am afraid the straight answer is 'no'.

However it may be worthwhile to add a few remarks on available methods
for looking into the lattice of subgroups of a group, since we do get
questions of a similar kind more often.

1. Let me first assume that the group is given in such a way that
efficient computation with elements and comparison of elements is
possible, e.g. that the group is given as a permutation group, or an
AG Group.

Then there are essentially two ways for determining the lattice of
subgroups:

- The so-called 'cyclic extension method' which constructs new
subgroups as cyclic extensions of already known ones, i.e. works
'bottom-up'. This is the method presently used in GAP 3.4.4 e.g. by
the command 'Lattice(G)' as described in section 7.74 of the
manual. With no further information given, it will only construct
perfect subgroups it will also find cyclic extensions of these and may
thus with sufficient supplementary information be capable to find the
full lattice of all subgroups.

- The so-called elementary abelian extension method. This works
top-down. Assuming that the subgroups of a factorgroup G/N are already
determined it will find the subgroups of a bigger factor group G/M,
where N/M is an elementary abelian factor of G. This method is not
available in GAP3.4.4, but it has been implemented already by
Alexander Hulpke, and will be available in GAP4. Again with no further
information it would determinine only soluble factor groups of G, but
if some insoluble factorgroups are provided, it will extend these
downwards, too, and may thus also find the full subgroup lattice if

```======================================================================
For the benefit of those using GAP4, let me shortly mention how to call
these two methods in GAP4:
```

* The following paragraphs are only valid in GAP4. If you are not
* using GAP4 * (which is currently in its second beta release), please
* skip until the * === line*

* GAP4 has at the moment the cyclic extension algorithm as well as the
* elementary abelian extension algorithm for solvable groups
* implemented. If you simply call `ConjugacyClassesSubgroups', the
* method selection will try to select a suitable method for your group
* itself. If you want to chose the algorithm yourself you can call
* special functions which both permit to restrict the construction to
* certain sizes:

* LatticeByCyclicExtension(<G>[,<func>])

* where <func> is an optional function argument. Subgroups <U>
* constructed for which <func>(U) returns false will not be considered
* for further extension.

* SubgroupsSolvableGroup(<G>[,<options>])

* computes the subgroups of a solvable group via the elementary
* abelian extension method. <options> if given is a record. If you
* want to compute only the subgroups of a given size, you can call
* SubgroupsSolvableGroup(<G>,rec(consider:=ExactSizeConsiderFunctions(<size>));

```======================================================================
```

Both methods could in principle be made more interactive in order to
search for subgroups with prescribed properties only. E.g., if by the
cyclic extension method one wants to construct only subgroups of a
given order, one could build in simple arithmetic tests to be
performed before each extension step that would stop this if it can no
longer lead to a subgroup of the wanted order. It should be understood
however that also in such possible modifications more than just the
wanted subgroups would be constructed.

Since GAP is distributed in source, users who are interested in such
modifications (e.g. want only the subgroups of order 12 in a huge
group) could look at the code and modify it for their purpose.

by special commands, e.g. Sylow subgroups, or maximal subgroups of
soluble groups.

2. All the methods mentioned above are not directly applicable to
groups given by a finite presentation. In order to apply them, one may
e.g. try to find a faithful permutation representation.

The other possibility is to use the command LowIndexSubgroupsFpGroup
described in section 23.7, but as indicated there, the method is
indeed resricted to sbgroups of *low* index in a finitely presented
group.

3. Finally let me mention that the XGAP package (see section 56.16)
provides a very handy way to get graphical depictions of containment
relations of subgroups both for the case of finitely presented groups
and of groups in which elements can efficiently be handled.

Joachim Neubueser