This is a method to construct up to isomorphism the finite groups of a given order. For this purpose it will loop over all possible perfect groups and construct upwards extensions by soluble groups. This, in turn, is done by iterated cyclic extensions.

Since this method is less efficient than the above two methods, it will usually only be used for the determination of non-soluble groups.

`UpwardsExtensions( `

`, `

` ) F`

Let `G` be a permutation group and `s` a positive integer. This function
returns a list corresponding to `DivisorsInt(s)`

. Let `t` be the `i`-th
divisor of `s`. Then the `i`-th entry in the output is a list of all
extensions of `G` by a soluble group of order `t` up to isomorphism. The
returned groups are permutation groups again.

Typically, this function is applied to perfect groups `G`, which may be
obtained from the perfect groups catalogue in GAP (see the Section on
`Finite perfect groups`

in the reference manual).

The most time-consuming part of the computation in `UpwardsExtensions`

is the isomorphism test. The following function does no reduction to
isomorphism type representatives and hence is much more efficient.

`CyclicExtensions( `

`, `

` ) F`

Here `G` should be a permutation group and `p` a prime. This function
computes a list of permutation groups containing the upwards extensions
of `G` by the cyclic group of order `p`, but not reduced to isomorphism
type representatives.

There is an info class `InfoUpExt`

available with values from 1 to 3.

gap> G := PerfectGroup( IsPermGroup, 120, 1 ); A5 2^1 gap> c := CyclicExtensions( G, 2 );; gap> List( c, IdGroup ); [ [ 240, 94 ], [ 240, 93 ], [ 240, 90 ], [ 240, 89 ] ] gap> H := c[1]; <permutation group of size 240 with 2 generators> gap> CyclicExtensions( H, 2 );; gap> List(last, IdGroup); [ [ 480, 960 ], [ 480, 955 ], [ 480, 222 ], [ 480, 222 ], [ 480, 953 ], [ 480, 953 ], [ 480, 957 ], [ 480, 957 ], [ 480, 949 ], [ 480, 950 ], [ 480, 219 ], [ 480, 219 ] ] gap> u := UpwardsExtensions( G, 4 );; gap> List( u, Length ); [ 1, 4, 14 ] gap> List( u[3], IdGroup); [ [ 480, 960 ], [ 480, 959 ], [ 480, 950 ], [ 480, 222 ], [ 480, 221 ], [ 480, 947 ], [ 480, 949 ], [ 480, 219 ], [ 480, 948 ], [ 480, 218 ], [ 480, 955 ], [ 480, 957 ], [ 480, 953 ], [ 480, 946 ] ]

In case that we want to extend a perfect group with trivial centre, then there is a better algorithm available. This is implemented as well and can be used with the following functions.

`UpwardsExtensionsNoCentre( `

`, `

` ) F`

Let `G` be a perfect permutation group with trivial centre and `s`
a positive integer. This function returns a list of all extensions
of `G` by a soluble group of order `s` up to isomorphism. The returned
groups are permutation groups again. Note that, in difference to
`UpwardsExtensions`

this function does not return the extensions by
groups of order dividing `s`. Moreover, the implementation of the
function requires that all soluble groups of order `s` are available
as `SmallGroups`

. The implementation then uses the following function
to determine groups.

`ExtensionsByGroupNoCentre( `

`, `

` ) F`

Let `G` be a perfect permutation group with trivial centre and `H` a soluble
group. This functions returns all extensions of `G` by `H` up to isomorphism.

[Up] [Previous] [Next] [Index]

grpconst manual

January 2020