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

# 6 The Upwards Extension Method

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(` G`,` s`) 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(` G`,` p`) 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(` G`,` s`) 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(` G`,` H`) 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]