  
  [1X6 [33X[0;0YThe Upwards Extension Method[133X[101X
  
  [33X[0;0YThis 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.[133X
  
  [33X[0;0YSince  this  method  is  less  efficient than the above two methods, it will
  usually only be used for the determination of non-soluble groups.[133X
  
  
  [1X6.1 [33X[0;0YThe Upwards Extension Method[133X[101X
  
  [1X6.1-1 UpwardsExtensions[101X
  
  [33X[1;0Y[29X[2XUpwardsExtensions[102X( [3XG[103X, [3Xs[103X ) [32X function[133X
  
  [33X[0;0YLet [3XG[103X be a permutation group and [3Xs[103X a positive integer. This function returns
  a list corresponding to [10XDivisorsInt(s)[110X. Let [22Xt[122X be the [22Xi[122X-th divisor of [3Xs[103X. Then
  the  [22Xi[122X-th  entry in the output is a list of all extensions of [3XG[103X by a soluble
  group  of  order  [22Xt[122X  up  to isomorphism. The returned groups are permutation
  groups again.[133X
  
  [33X[0;0YTypically,  this  function  is  applied  to  perfect  groups [3XG[103X, which may be
  obtained from the perfect groups catalogue in GAP (see the Section on [10XFinite
  perfect groups[110X in the reference manual).[133X
  
  [33X[0;0YThe  most time-consuming part of the computation in [10XUpwardsExtensions[110X is the
  isomorphism  test.  The  following function does no reduction to isomorphism
  type representatives and hence is much more efficient.[133X
  
  [1X6.1-2 CyclicExtensions[101X
  
  [33X[1;0Y[29X[2XCyclicExtensions[102X( [3XG[103X, [3Xp[103X ) [32X function[133X
  
  [33X[0;0YHere [3XG[103X should be a permutation group and [3Xp[103X a prime. This function computes a
  list  of  permutation  groups  containing the upwards extensions of [3XG[103X by the
  cyclic   group   of   order   [3Xp[103X,   but   not  reduced  to  isomorphism  type
  representatives.[133X
  
  [33X[0;0YThere is an info class [10XInfoUpExt[110X available with values from 1 to 3.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := PerfectGroup( IsPermGroup, 120, 1 );[127X[104X
    [4X[28XA5 2^1[128X[104X
    [4X[25Xgap>[125X [27Xc := CyclicExtensions( G, 2 );;[127X[104X
    [4X[25Xgap>[125X [27XSortedList( List( c, IdGroup ) );[127X[104X
    [4X[28X[ [ 240, 89 ], [ 240, 90 ], [ 240, 93 ], [ 240, 94 ] ][128X[104X
    [4X[25Xgap>[125X [27XH := First( c, x -> IdGroup( x ) = [ 240, 94 ] );;[127X[104X
    [4X[25Xgap>[125X [27XSortedList( List( CyclicExtensions( H, 2 ), IdGroup ) );[127X[104X
    [4X[28X[ [ 480, 219 ], [ 480, 219 ], [ 480, 222 ], [ 480, 222 ], [ 480, 949 ], [128X[104X
    [4X[28X  [ 480, 950 ], [ 480, 953 ], [ 480, 953 ], [ 480, 955 ], [ 480, 957 ], [128X[104X
    [4X[28X  [ 480, 957 ], [ 480, 960 ] ][128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xu := UpwardsExtensions( G, 4 );;[127X[104X
    [4X[25Xgap>[125X [27XList( u, Length );[127X[104X
    [4X[28X[ 1, 4, 14 ][128X[104X
    [4X[25Xgap>[125X [27XSortedList( List( u[3], IdGroup ) );[127X[104X
    [4X[28X[ [ 480, 218 ], [ 480, 219 ], [ 480, 221 ], [ 480, 222 ], [ 480, 946 ], [128X[104X
    [4X[28X  [ 480, 947 ], [ 480, 948 ], [ 480, 949 ], [ 480, 950 ], [ 480, 953 ], [128X[104X
    [4X[28X  [ 480, 955 ], [ 480, 957 ], [ 480, 959 ], [ 480, 960 ] ][128X[104X
  [4X[32X[104X
  
  [33X[0;0YIf  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.[133X
  
  [1X6.1-3 UpwardsExtensionsNoCentre[101X
  
  [33X[1;0Y[29X[2XUpwardsExtensionsNoCentre[102X( [3XG[103X, [3Xs[103X ) [32X function[133X
  
  [33X[0;0YLet  [3XG[103X  be  a perfect permutation group with trivial centre and [3Xs[103X a positive
  integer.  This  function  returns a list of all extensions of [3XG[103X by a soluble
  group  of  order  [22Xs[122X  up  to isomorphism. The returned groups are permutation
  groups  again.  Note  that,  in contrast to [10XUpwardsExtensions[110X, this function
  does  not return the extensions by groups of order dividing [3Xs[103X. Moreover, the
  implementation  of  the function requires that all soluble groups of order [3Xs[103X
  are  available  as  [10XSmallGroups[110X.  The implementation then uses the following
  function to determine groups.[133X
  
  [1X6.1-4 ExtensionsByGroupNoCentre[101X
  
  [33X[1;0Y[29X[2XExtensionsByGroupNoCentre[102X( [3XG[103X, [3XH[103X ) [32X function[133X
  
  [33X[0;0YLet  [3XG[103X  be  a  perfect permutation group with trivial centre and [3XH[103X a soluble
  group. This function returns all extensions of [3XG[103X by [3XH[103X up to isomorphism.[133X
  
