> < ^ From:

< ^ Subject:

Dear Forum members,

Bruce Coletti asked:

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

soluble sbgroups, if it is given additional information about possible

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

given sufficient additional information.

====================================================================== 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.

In addition of course GAP provides access to several special subgroups

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

Miles-Receive-Header: reply

> < [top]