  
  [1X6 [33X[0;0YMethods for recognition[133X[101X
  
  
  [1X6.1 [33X[0;0YMethods for generic groups[133X[101X
  
  [33X[0;0YThe  following  methods  can  be  equally applied to permutation, matrix and
  projective groups. We do not refer to them as black-box groups here, as they
  are allowed to contain code that only works for inputs of the listed types.[133X
  
  
  [1X6.1-1 [33X[0;0Y[10XFewGensAbelian[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/generic/FewGensAbelian.gi:43[111X.[133X
  
  [33X[0;0YThis  method  is  used  for  recognizing permutation, matrix, and projective
  groups.[133X
  
  [33X[0;0YIf  there  are  not  too  may generators (right now that means at most 200),
  check  whether they commute; if yes, dispatch to [14X'[33X[0;0Y[10XKnownNilpotent[110X[133X'[114X, otherwise
  return [9XNeverApplicable[109X.[133X
  
  
  [1X6.1-2 [33X[0;0Y[10XKnownNilpotent[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/generic/KnownNilpotent.gi:115[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YHint to this method if you know G to be nilpotent or call it directly if you
  find  out so. Note that it will return NeverApplicable if G is a p-group for
  some  prime  p.  Make  sure that the !.projective component is set correctly
  such that we can set the right Order method.[133X
  
  
  [1X6.1-3 [33X[0;0Y[10XSnAnUnknownDegree[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/generic/SnAnUnknownDegree.gi:859[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YThis  method  tries  to  determine  whether  the  input group given by [3Xri[103X is
  isomorphic  to  a symmetric group Sn or alternating group An with [22X11 ≤ n[122X. It
  is an implementation of [JLNP13].[133X
  
  [33X[0;0YIf  [3XGrp(ri)[103X is a permutation group, we assume that it is primitive and not a
  giant (a giant is Sn or An in natural action).[133X
  
  
  [1X6.1-4 [33X[0;0Y[10XTrivialGroup[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/generic/TrivialGroup.gi:63[111X.[133X
  
  [33X[0;0YThis  method  is  used  for  recognizing permutation, matrix, and projective
  groups.[133X
  
  [33X[0;0YThis  method  is  successful  if and only if all generators of a group [3XG[103X are
  equal to the identity. Otherwise, it returns [9XNeverApplicable[109X indicating that
  it  will  never succeed. This method is only installed to handle the trivial
  case  such  that  we do not have to take this case into account in the other
  methods.[133X
  
  
  [1X6.2 [33X[0;0YMethods for permutation groups[133X[101X
  
  [33X[0;0YThe  following  table gives an overview over the installed methods and their
  rank  (higher  rank  means higher priority, the method is tried earlier, see
  Chapter [14X5[114X).[133X
  
      ┌─────┬──────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬────────┐
      │ 300 │ [10XTrivialGroup[110X         │ go through generators and compare to the identity                                                              │ [14X6.1-4[114X  │ 
      ├─────┼──────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────┤
      │ 100 │ [10XThrowAwayFixedPoints[110X │ try to find a huge amount of (possible internal) fixed points                                                  │ [14X6.2-11[114X │ 
      ├─────┼──────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────┤
      │ 99  │ [10XFewGensAbelian[110X       │ if very few generators, check IsAbelian and if yes, do KnownNilpotent                                          │ [14X6.1-1[114X  │ 
      ├─────┼──────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────┤
      │ 97  │ [10XPcgs[110X                 │ use a Pcgs to calculate a stabilizer chain                                                                     │ [14X6.2-7[114X  │ 
      ├─────┼──────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────┤
      │ 95  │ [10XMovesOnlySmallPoints[110X │ calculate a stabilizer chain if only small points are moved                                                    │ [14X6.2-5[114X  │ 
      ├─────┼──────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────┤
      │ 90  │ [10XNonTransitive[110X        │ try to find non-transitivity and restrict to orbit                                                             │ [14X6.2-6[114X  │ 
      ├─────┼──────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────┤
      │ 80  │ [10XGiant[110X                │ tries to find Sn and An in their natural actions                                                               │ [14X6.2-2[114X  │ 
      ├─────┼──────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────┤
      │ 70  │ [10XImprimitive[110X          │ for a imprimitive permutation group, restricts to block system                                                 │ [14X6.2-3[114X  │ 
      ├─────┼──────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────┤
      │ 60  │ [10XLargeBasePrimitive[110X   │ recognises large-base primitive permutation groups                                                             │ [14X6.2-4[114X  │ 
      ├─────┼──────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────┤
      │ 55  │ [10XStabilizerChainPerm[110X  │ for a permutation group using a stabilizer chain via the genss package ([7Xhttps://gap-packages.github.io/genss/[107X) │ [14X6.2-10[114X │ 
      ├─────┼──────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────┤
      │ 50  │ [10XStabChain[110X            │ for a permutation group using a stabilizer chain                                                               │ [14X6.2-9[114X  │ 
      └─────┴──────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────┘
  
       [1XTable:[101X Permutation group find homomorphism methods
  
  
  
  [1X6.2-1 [33X[0;0Y[10XBalTreeForBlocks[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/perm.gi:217[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YThis  method  creates  a  balanced  composition  tree  for  the kernel of an
  imprimitive  group.  This  is  guaranteed  as the method is just called from
  [10XFindHomMethodsPerm.[110X[14X'[33X[0;0Y[10XImprimitive[110X[133X'[114X  and itself. The homomorphism for the split
  in  the  composition  tree used is induced by the action of [3XG[103X on half of its
  blocks.[133X
  
  
  [1X6.2-2 [33X[0;0Y[10XGiant[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/perm/giant.gi:893[111X.[133X
  
  [33X[0;0YThis method is used for recognizing permutation groups.[133X
  
  [33X[0;0YThe method tries to determine whether the input group [3XG[103X is a giant (that is,
  [22XA_n[122X  or  [22XS_n[122X  in  its  natural  action on [22Xn[122X points). It can only succeed for
  permutation  groups acting on at least 8 points. The output is either a data
  structure [22XD[122X containing nice generators for [3XG[103X and a procedure to write an SLP
  for  arbitrary elements of [3XG[103X from the nice generators; or [9XNeverApplicable[109X if
  [3XG[103X  is  not transitive or acts on at most 7 points; or [9Xfail[109X, in the case that
  no  evidence  was  found  that  [3XG[103X is a giant, or evidence was found, but the
  construction  of  [22XD[122X  was  unsuccessful.  If the method constructs [22XD[122X then the
  calling node becomes a leaf.[133X
  
  
  [1X6.2-3 [33X[0;0Y[10XImprimitive[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/perm.gi:141[111X.[133X
  
  [33X[0;0YThis method is used for recognizing permutation groups.[133X
  
  [33X[0;0YIf  the  input  group is not known to be transitive then this method returns
  [9XNotEnoughInformation[109X.  If  the  input  group  is  known to be transitive and
  primitive  then  the  method  returns [9XNeverApplicable[109X; otherwise, the method
  tries   to   compute  a  nontrivial  block  system.  If  successful  then  a
  homomorphism  to  the action on the blocks is defined; otherwise, the method
  returns [9XNeverApplicable[109X.[133X
  
  [33X[0;0YIf  the  method  is successful then it also gives a hint for the children of
  the node by determining whether the kernel of the action on the block system
  is  solvable.  If the answer is yes then the default value 20 for the number
  of  random  generators in the kernel construction is increased by the number
  of blocks.[133X
  
  
  [1X6.2-4 [33X[0;0Y[10XLargeBasePrimitive[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/perm/largebase.gi:562[111X.[133X
  
  [33X[0;0YThis method is used for recognizing permutation groups.[133X
  
  [33X[0;0YThis   method   tries   to   determine  whether  the  input  group  [3XG[103X  is  a
  fixed-point-free  large-base primitive group that neither is a symmetric nor
  an alternating group in its natural action. This method is an implementation
  of [LNPS06].[133X
  
  [33X[0;0YA  primitive group [22XH[122X acting on [22XN[122X points is called [13Xlarge[113X if there exist [22Xn[122X, [22Xk[122X,
  and  [22Xr[122X with [22XN = {n choose k}^r[122X, and up to a permutational isomorphism [22XH[122X is a
  subgroup of the product action wreath product [22XS_n ≀ S_r[122X, and an overgroup of
  [22X(A_n)  ^  r[122X  where  [22XS_n[122X  and  [22XA_n[122X  act on the [22Xk[122X-subsets of [22X{1, ..., n}[122X. This
  algorithm  recognises fixed-point-free large primitive groups with [22Xr ⋅ k > 1[122X
  and [22X2 ⋅ r ⋅ k^2 ≤ n[122X.[133X
  
  [33X[0;0YA  large primitive group [22XH[122X of the above type which does have fixed points is
  handled  as  follows: if the group [22XH[122X does not know yet that it is primitive,
  then  [2XThrowAwayFixedPoints[102X  ([14X6.2-11[114X) returns [9XNotEnoughInformation[109X. After the
  first  call  to  [10XLargeBasePrimitive[110X, the group [22XH[122X knows that it is primitive,
  but  since  it  has fixed points [10XLargeBasePrimitive[110X returns [9XNeverApplicable[109X.
  Since       [2XThrowAwayFixedPoints[102X      ([14X6.2-11[114X)      previously      returned
  [9XNotEnoughInformation[109X,  it  will  be  called  again. Then it will use the new
  information  about  [22XH[122X  being  primitive, and is guaranteed to prune away the
  fixed points and set up a reduction homomorphism. [10XLargeBasePrimitive[110X is then
  applicable to the image of that homomorphism.[133X
  
  [33X[0;0YIf  [3XG[103X  is  imprimitive then the output is [9XNeverApplicable[109X. If [3XG[103X is primitive
  then the output is either a homomorphism into the natural imprimitive action
  of  [3XG[103X  on  [22Xnr[122X  points  with  [22Xr[122X  blocks  of  size  [22Xn[122X, or [9XTemporaryFailure[109X, or
  [9XNeverApplicable[109X if no parameters [22Xn[122X, [22Xk[122X, and [22Xr[122X as above exist.[133X
  
  
  [1X6.2-5 [33X[0;0Y[10XMovesOnlySmallPoints[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/perm.gi:44[111X.[133X
  
  [33X[0;0YThis method is used for recognizing permutation groups.[133X
  
  [33X[0;0YIf  a  permutation group moves only small points (currently, this means that
  its  largest  moved  point  is  at  most  10),  then  this method computes a
  stabilizer  chain  for  the  group via [14X'[33X[0;0Y[10XStabChain[110X[133X'[114X. This is because the most
  convenient  way  of solving constructive membership in such a group is via a
  stabilizer  chain. In this case, the calling node becomes a leaf node of the
  composition tree.[133X
  
  [33X[0;0YIf the input group moves a large point (currently, this means a point larger
  than 10), then this method returns [9XNeverApplicable[109X.[133X
  
  [33X[0;0YNote  that  if  a permutation group moves only a small number of points, but
  the   points   are   large   (e.g.  the  group  acts  on  [100..105]),  then
  [2XThrowAwayFixedPoints[102X  ([14X6.2-11[114X)  may  rewrite this group to a group acting on
  small points, thereby making [9XMovesOnlySmallPoints[109X applicable.[133X
  
  
  [1X6.2-6 [33X[0;0Y[10XNonTransitive[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/perm.gi:82[111X.[133X
  
  [33X[0;0YThis method is used for recognizing permutation groups.[133X
  
  [33X[0;0YIf  a  permutation  group [3XG[103X acts nontransitively then this method computes a
  homomorphism  to the action of [3XG[103X on the orbit of the largest moved point. If
  [3XG[103X is transitive then the method returns [9XNeverApplicable[109X.[133X
  
  
  [1X6.2-7 [33X[0;0Y[10XPcgs[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/perm.gi:488[111X.[133X
  
  [33X[0;0YThis method is used for recognizing permutation groups.[133X
  
  [33X[0;0YThis  is  the  [5XGAP[105X  library  function  to  compute  a stabiliser chain for a
  solvable  permutation  group.  If  the method is successful then the calling
  node  becomes a leaf node in the recursive scheme. If the input group is not
  solvable then the method returns [9XNeverApplicable[109X.[133X
  
  
  [1X6.2-8 [33X[0;0Y[10XPcgsForBlocks[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/perm.gi:167[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YThis     method     is     called     after     a    hint    is    set    in
  [10XFindHomMethodsPerm.[110X[14X'[33X[0;0Y[10XImprimitive[110X[133X'[114X.   Therefore,   the  group  [3XG[103X  preserves  a
  non-trivial  block system. This method checks whether or not the restriction
  of  [3XG[103X  on  one  block  is solvable. If so, then [10XFindHomMethodsPerm.[110X[14X'[33X[0;0Y[10XPcgs[110X[133X'[114X is
  called, and otherwise [9XNeverApplicable[109X is returned.[133X
  
  
  [1X6.2-9 [33X[0;0Y[10XStabChain[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/perm.gi:269[111X.[133X
  
  [33X[0;0YThis method is used for recognizing permutation groups.[133X
  
  [33X[0;0YThis  is  the  randomized  [5XGAP[105X  library  function for computing a stabiliser
  chain.  The  method  selection  process ensures that this function is called
  only with small-base inputs, where the method works efficiently.[133X
  
  
  [1X6.2-10 [33X[0;0Y[10XStabilizerChainPerm[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/perm.gi:303[111X.[133X
  
  [33X[0;0YThis method is used for recognizing permutation groups.[133X
  
  [33X[0;0YTODO[133X
  
  
  [1X6.2-11 [33X[0;0Y[10XThrowAwayFixedPoints[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/perm.gi:453[111X.[133X
  
  [33X[0;0YThis method is used for recognizing permutation groups.[133X
  
  [33X[0;0YThis method defines a homomorphism of a permutation group [3XG[103X to the action on
  the  moved  points of [3XG[103X if [3XG[103X has any fixed points, and is either known to be
  primitive  or  the  ratio  of fixed points to moved points exceeds a certain
  threshold.  If  [3XG[103X  has  fixed  points  but is not primitive, then it returns
  [9XNotEnoughInformation[109X  so that it may be called again at a later time. In all
  other cases, it returns [9XNeverApplicable[109X.[133X
  
  [33X[0;0YIn  the  current setup, the homomorphism is defined if the number [22Xn[122X of moved
  points  is at most [22X1/3[122X of the largest moved point of [3XG[103X, or [22Xn[122X is at most half
  of the number of points on which [3XG[103X is stored internally by [5XGAP[105X.[133X
  
  [33X[0;0YThe fact that this method returns [9XNotEnoughInformation[109X if [3XG[103X has fixed points
  but  does  not  know whether it is primitive, is important for the efficient
  handling of large-base primitive groups by [2XLargeBasePrimitive[102X ([14X6.2-4[114X).[133X
  
  
  [1X6.3 [33X[0;0YMethods for matrix groups[133X[101X
  
  [33X[0;0YThe  following  table gives an overview over the installed methods and their
  rank  (higher  rank  means higher priority, the method is tried earlier, see
  Chapter  [14X5[114X).  Note  that  there  are not that many methods for matrix groups
  since  the  system  can  switch  to  projective  groups  by dividing out the
  subgroup  of  scalar  matrices. The bulk of the recognition methods are then
  installed es methods for projective groups.[133X
  
      ┌──────┬──────────────────────┬───────────────────────────────────────────────────────────────────────┬───────┐
      │ 3100 │ [10XTrivialGroup[110X         │ go through generators and compare to the identity                     │ [14X6.1-4[114X │ 
      ├──────┼──────────────────────┼───────────────────────────────────────────────────────────────────────┼───────┤
      │ 1175 │ [10XKnownStabilizerChain[110X │ use an already known stabilizer chain for this group                  │ [14X6.3-6[114X │ 
      ├──────┼──────────────────────┼───────────────────────────────────────────────────────────────────────┼───────┤
      │ 1100 │ [10XDiagonalMatrices[110X     │ check whether all generators are diagonal matrices                    │ [14X6.3-4[114X │ 
      ├──────┼──────────────────────┼───────────────────────────────────────────────────────────────────────┼───────┤
      │ 1050 │ [10XFewGensAbelian[110X       │ if very few generators, check IsAbelian and if yes, do KnownNilpotent │ [14X6.1-1[114X │ 
      ├──────┼──────────────────────┼───────────────────────────────────────────────────────────────────────┼───────┤
      │ 1000 │ [10XReducibleIso[110X         │ use the MeatAxe to find invariant subspaces                           │ [14X6.3-9[114X │ 
      ├──────┼──────────────────────┼───────────────────────────────────────────────────────────────────────┼───────┤
      │ 900  │ [10XGoProjective[110X         │ divide out scalars and recognise projectively                         │ [14X6.3-5[114X │ 
      └──────┴──────────────────────┴───────────────────────────────────────────────────────────────────────┴───────┘
  
       [1XTable:[101X Matrix group find homomorphism methods
  
  
  
  [1X6.3-1 [33X[0;0Y[10XBlockDiagonal[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/matrix/blocks.gi:551[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YThis  method  is  only  called  when  a hint was passed down from the method
  [14X'[33X[0;0Y[10XBlockLowerTriangular[110X[133X'[114X.  In  that  case, it knows that the group is in block
  diagonal  form.  The  method  is used both in the matrix- and the projective
  case.[133X
  
  [33X[0;0YThe  method  immediately  delegates  to  projective methods handling all the
  diagonal  blocks projectively. This is done by giving a hint to the image to
  use  the  method  [14X'[33X[0;0Y[10XBlocksModScalars[110X[133X'[114X.  The method for the kernel then has to
  deal  with only scalar blocks, either projectively or with scalars, which is
  again done by giving a hint to either use [14X'[33X[0;0Y[10XBlockScalar[110X[133X'[114X or [14X'[33X[0;0Y[10XBlockScalarProj[110X[133X'[114X
  respectively.[133X
  
  [33X[0;0YNote  that this method is implemented in a way such that it can also be used
  as  a method for a projective group [3XG[103X. In that case the recognition node has
  the [10X!.projective[110X component bound to [9Xtrue[109X and this information is passed down
  to image and kernel.[133X
  
  
  [1X6.3-2 [33X[0;0Y[10XBlockLowerTriangular[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/matrix/blocks.gi:497[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YThis  method  is  only  called  when  a hint was passed down from the method
  [14X'[33X[0;0Y[10XReducibleIso[110X[133X'[114X.  In  that  case,  it knows that a base change to block lower
  triangular  form  has been performed. The method can then immediately find a
  homomorphism by mapping to the diagonal blocks. It sets up this homomorphism
  and   gives   hints   to  image  and  kernel.  For  the  image,  the  method
  [14X'[33X[0;0Y[10XBlockDiagonal[110X[133X'[114X  is used and for the kernel, the method [14X'[33X[0;0Y[10XLowerLeftPGroup[110X[133X'[114X is
  used.[133X
  
  [33X[0;0YNote  that this method is implemented in a way such that it can also be used
  as  a method for a projective group [3XG[103X. In that case the recognition node has
  the [10X!.projective[110X component bound to [9Xtrue[109X and this information is passed down
  to image and kernel.[133X
  
  
  [1X6.3-3 [33X[0;0Y[10XBlockScalar[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/matrix/blocks.gi:272[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YThis  method  is  only  called  by a hint. Alongside with the hint it gets a
  block decomposition respected by the matrix group [3XG[103X to be recognised and the
  promise  that  all diagonal blocks of all group elements will only be scalar
  matrices.  This  method  recursively  builds a balanced tree and does scalar
  recognition in each leaf.[133X
  
  
  [1X6.3-4 [33X[0;0Y[10XDiagonalMatrices[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/matrix/blocks.gi:76[111X.[133X
  
  [33X[0;0YThis method is used for recognizing matrix groups.[133X
  
  [33X[0;0YThis  method is successful if and only if all generators of a matrix group [3XG[103X
  are diagonal matrices. Otherwise, it returns [9XNeverApplicable[109X.[133X
  
  
  [1X6.3-5 [33X[0;0Y[10XGoProjective[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/matrix.gi:102[111X.[133X
  
  [33X[0;0YThis method is used for recognizing matrix groups.[133X
  
  [33X[0;0YThis method defines a homomorphism from a matrix group [3XG[103X into the projective
  group  [3XG[103X modulo scalar matrices. In fact, since projective groups in [5XGAP[105X are
  represented  as  matrix groups, the homomorphism is the identity mapping and
  the only difference is that in the image the projective group methods can be
  applied.  The  bulk  of  the  work  in  matrix  recognition  is  done in the
  projective group setting.[133X
  
  
  [1X6.3-6 [33X[0;0Y[10XKnownStabilizerChain[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/matrix.gi:136[111X.[133X
  
  [33X[0;0YThis method is used for recognizing matrix groups.[133X
  
  [33X[0;0YIf  a  stabilizer  chain  is  already  known,  then the kernel node is given
  knowledge  about  this known stabilizer chain, and the image node is told to
  use  homomorphism  methods  from  the  database for permutation groups. If a
  stabilizer  chain  of  a  parent  node is already known this is used for the
  computation  of  a  stabilizer  chain of this node. This stabilizer chain is
  then used in the same way as above.[133X
  
  
  [1X6.3-7 [33X[0;0Y[10XLowerLeftPGroup[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/matrix/blocks.gi:841[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YThis  method  is  only  called  by a hint from [14X'[33X[0;0Y[10XBlockLowerTriangular[110X[133X'[114X as the
  kernel  of  the homomorphism mapping to the diagonal blocks. The method uses
  the  fact that this kernel is a [22Xp[122X-group where [22Xp[122X is the characteristic of the
  underlying  field.  It exploits this fact and uses this special structure to
  find  nice  generators  and  a  method to express group elements in terms of
  these.  Internally  it  works  layer-by-layer  with  the  strict lower block
  diagonals  determined by [10Xri!.blocks[110X; the auxiliary data [10Xri!.lens[110X records the
  length   of   each  extracted  layer,  measured  over  the  prime  field  if
  [10Xri!.basisOfFieldExtension[110X is bound to a non-[9Xfail[109X value.[133X
  
  
  [1X6.3-8 [33X[0;0Y[10XNaturalSL[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/matrix/slconstr.gi:2570[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YTODO[133X
  
  
  [1X6.3-9 [33X[0;0Y[10XReducibleIso[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/matrix/blocks.gi:416[111X.[133X
  
  [33X[0;0YThis method is used for recognizing matrix and projective groups.[133X
  
  [33X[0;0YThis  method  determines  whether a matrix group [3XG[103X acts irreducibly. If yes,
  then  it  returns  [9XNeverApplicable[109X.  If  [3XG[103X acts reducibly then a composition
  series  of  the underlying module is computed and a base change is performed
  to  write  [3XG[103X  in  a block lower triangular form. Since it is known the image
  will  be  in  block  lower  triangular  form,  a  hint is set to ensure that
  recognition on the image uses the method [14X'[33X[0;0Y[10XBlockLowerTriangular[110X[133X'[114X.[133X
  
  [33X[0;0YNote  that this method is implemented in a way such that it can also be used
  as  a method for a projective group [3XG[103X. In that case the recognition node has
  the [10X!.projective[110X component bound to [9Xtrue[109X and this information is passed down
  to image and kernel.[133X
  
  
  [1X6.3-10 [33X[0;0Y[10XScalar[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/matrix/blocks.gi:134[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YTODO[133X
  
  
  [1X6.4 [33X[0;0YMethods for projective groups[133X[101X
  
  [33X[0;0YThe  following  table gives an overview over the installed methods and their
  rank  (higher  rank  means higher priority, the method is tried earlier, see
  Chapter  [14X5[114X).  Note  that  the  recognition  for  matrix  group  switches  to
  projective recognition rather soon in the recognition process such that most
  recognition methods in fact are installed as methods for projective groups.[133X
  
      ┌──────┬─────────────────────┬───────────────────────────────────────────────────────────────────────┬────────┐
      │ 3000 │ [10XTrivialGroup[110X        │ go through generators and compare to the identity                     │ [14X6.1-4[114X  │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 1300 │ [10XProjDeterminant[110X     │ find homomorphism to non-zero scalars mod d-th powers                 │ [14X6.4-20[114X │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 1250 │ [10XFewGensAbelian[110X      │ if very few generators, check IsAbelian and if yes, do KnownNilpotent │ [14X6.1-1[114X  │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 1200 │ [10XReducibleIso[110X        │ use the MeatAxe to find invariant subspaces                           │ [14X6.3-9[114X  │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 1100 │ [10XNotAbsolutelyIrred[110X  │ write over a bigger field with smaller degree                         │ [14X6.4-19[114X │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 1050 │ [10XClassicalNatural[110X    │ check whether it is a classical group in its natural representation   │ [14X6.4-9[114X  │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 1000 │ [10XSubfield[110X            │ write over a smaller field with same degree                           │ [14X6.4-23[114X │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 900  │ [10XC3C5[110X                │ compute a normal subgroup of derived and resolve C3 and C5            │ [14X6.4-7[114X  │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 850  │ [10XC6[110X                  │ find either an (imprimitive) action or a symplectic one               │ [14X6.4-8[114X  │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 840  │ [10XD247[110X                │ play games to find a normal subgroup                                  │ [14X6.4-11[114X │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 810  │ [10XAltSymBBByDegree[110X    │ try BB recognition for dim+1 and/or dim+2 if sensible                 │ [14X6.4-1[114X  │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 800  │ [10XTensorDecomposable[110X  │ find a tensor decomposition                                           │ [14X6.4-24[114X │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 700  │ [10XFindElmOfEvenNormal[110X │ find D2, D4 or D7 by finding an element of an even normal subgroup    │ [14X6.4-13[114X │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 600  │ [10XLowIndex[110X            │ find an (imprimitive) action on subspaces                             │ [14X6.4-17[114X │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 580  │ [10XNameSporadic[110X        │ generate maximal orders                                               │ [14X6.4-18[114X │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 550  │ [10XComputeSimpleSocle[110X  │ compute simple socle of almost simple group                           │ [14X6.4-10[114X │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 500  │ [10XThreeLargeElOrders[110X  │ recognise Lie type groups and get its characteristic                  │ [14X6.4-25[114X │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 400  │ [10XLieTypeNonConstr[110X    │ do non-constructive recognition of Lie type groups                    │ [14X6.4-16[114X │ 
      ├──────┼─────────────────────┼───────────────────────────────────────────────────────────────────────┼────────┤
      │ 100  │ [10XStabilizerChainProj[110X │ last resort: compute a stabilizer chain (projectively)                │ [14X6.4-22[114X │ 
      └──────┴─────────────────────┴───────────────────────────────────────────────────────────────────────┴────────┘
  
       [1XTable:[101X Projective group find homomorphism methods
  
  
  
  [1X6.4-1 [33X[0;0Y[10XAltSymBBByDegree[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective/almostsimple.gi:1079[111X.[133X
  
  [33X[0;0YThis method is used for recognizing projective groups.[133X
  
  [33X[0;0YThis  method  is a black box constructive (?) recognition of alternating and
  symmetric groups.[133X
  
  [33X[0;0YThis algorithm is probably based on the paper [BLN+05].[133X
  
  
  [1X6.4-2 [33X[0;0Y[10XBiggerScalarsOnly[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective/c3c5.gi:345[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YThis   kernel  method  is  used  only  after  [14X'[33X[0;0Y[10XNotAbsolutelyIrred[110X[133X'[114X.  In  the
  projective  version of [CNR09, Theorem 6.5], rewriting over [22XGF(q^e)[122X leaves a
  second kernel consisting only of [22XGF(q^e)[122X-scalars modulo [22XGF(q)[122X-scalars. Using
  the  rewrite  data  prepared  by  [14X'[33X[0;0Y[10XNotAbsolutelyIrred[110X[133X'[114X,  the method rewrites
  kernel  elements over [22XGF(q^e)[122X, verifies that they are scalar matrices there,
  and  identifies  their  exponents  modulo  the  [22XGF(q)[122X-scalars. The resulting
  quotient is cyclic of order dividing [22X(q^e-1)/(q-1)[122X, so the method recognizes
  it directly as a cyclic projective leaf.[133X
  
  
  [1X6.4-3 [33X[0;0Y[10XBlockScalarProj[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective.gi:289[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YThis  method  is  only  called  by a hint. Alongside with the hint it gets a
  block decomposition respected by the matrix group [3XG[103X to be recognised and the
  promise  that  all diagonal blocks of all group elements will only be scalar
  matrices. This method simply norms the last diagonal block in all generators
  by  multiplying  with a scalar and then delegates to [10XBlockScalar[110X (see [14X6.3-3[114X)
  and matrix group mode to do the recognition.[133X
  
  
  [1X6.4-4 [33X[0;0Y[10XBlocks[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/matrix/matimpr.gi:244[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YTODO[133X
  
  
  [1X6.4-5 [33X[0;0Y[10XBlocksBackToMats[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/matrix/matimpr.gi:278[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YTODO[133X
  
  
  [1X6.4-6 [33X[0;0Y[10XBlocksModScalars[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective.gi:106[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YThis  method  is  only  called  when hinted from above. In this method it is
  understood  that  G  should [13Xneither[113X be recognised as a matrix group [13Xnor[113X as a
  projective group. Rather, it treats all diagonal blocks modulo scalars which
  means that two matrices are considered to be equal, if they differ only by a
  scalar  factor  in  [13Xcorresponding[113X  diagonal  blocks,  and this scalar can be
  different  for  each  diagonal  block.  This  means  that  the kernel of the
  homomorphism  mapping  to  a node which is recognised using this method will
  have only scalar matrices in all diagonal blocks.[133X
  
  [33X[0;0YThis  method  does  the  balanced  tree  approach  mapping to subsets of the
  diagonal blocks and finally using projective recognition to recognise single
  diagonal block groups.[133X
  
  
  [1X6.4-7 [33X[0;0Y[10XC3C5[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective/c3c5.gi:874[111X.[133X
  
  [33X[0;0YThis method is used for recognizing projective groups.[133X
  
  [33X[0;0YThis  method  implements  the  main  case  distinction  of  [CNR09, Sections
  6.3-6.7]  for  absolutely  irreducible projective groups after the immediate
  reducibility, subfield and non-absolute-irreducibility tests have been dealt
  with elsewhere.[133X
  
  [33X[0;0YIt  first constructs a subgroup [3XH[103X that behaves like a normal subgroup of the
  derived  group [22XG'[122X. The action of [3XH[103X on the natural module then determines the
  reduction:[133X
  
  [30X    [33X[0;6Yif  [3XH[103X  is absolutely irreducible, test for the subfield case [22XC_5[122X as in
        Section 6.3 / Theorem 6.3;[133X
  
  [30X    [33X[0;6Yif  [3XH[103X  is  irreducible  but  not  absolutely  irreducible, compute the
        semilinear [22XC_3[122X action as in Section 6.4 / Theorem 6.5;[133X
  
  [30X    [33X[0;6Yif  a  nonscalar generator has only scalar commutators, use the scalar
        homomorphism from Section 6.7 / Proposition 6.9;[133X
  
  [30X    [33X[0;6Yif  [3XH[103X  is reducible, use Clifford-theoretic reductions via homogeneous
        components or tensor decomposition, matching Sections 6.5 and 6.6.[133X
  
  [33X[0;0YThe   method  returns  [9XSuccess[109X  when  one  of  these  reductions  is  found,
  [9XNeverApplicable[109X  if the analysed subgroup witnesses that none of the [22XC_3[122X/[22XC_5[122X
  branches   applies,   and  [9XTemporaryFailure[109X  in  the  exceptional  situation
  discussed  at the end of Section 6.4 where the sampled subgroup is too small
  to expose the correct endomorphism ring.[133X
  
  
  [1X6.4-8 [33X[0;0Y[10XC6[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective/c6.gi:591[111X.[133X
  
  [33X[0;0YThis method is used for recognizing projective groups.[133X
  
  [33X[0;0YThis  method  is  designed  for  the  handling  of  the  Aschbacher class C6
  (normaliser  of  an  extraspecial  group). If the input [3XG[103X[22X≤ PGL(d,q)[122X does not
  satisfy  [22Xd=r^n[122X  and  [22Xr|q-1[122X  for  some  prime [22Xr[122X and integer [22Xn[122X then the method
  returns  [9XNeverApplicable[109X.  Otherwise,  it returns either a homomorphism of [3XG[103X
  into  [22XSp(2n,r)[122X,  or  a homomorphism into the C2 permutation action of [3XG[103X on a
  decomposition of [22XGF(q)^d[122X, or [9Xfail[109X.[133X
  
  
  [1X6.4-9 [33X[0;0Y[10XClassicalNatural[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective/classicalnatural.gi:956[111X.[133X
  
  [33X[0;0YThis method is used for recognizing projective groups.[133X
  
  [33X[0;0YTODO[133X
  
  
  [1X6.4-10 [33X[0;0Y[10XComputeSimpleSocle[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective/almostsimple.gi:744[111X.[133X
  
  [33X[0;0YThis method is used for recognizing projective groups.[133X
  
  [33X[0;0YThis  method  randomly  computes  the non-abelian simple socle and stores it
  along  with  additional  information  if  it  is called for an almost simple
  group.  Once  the non-abelian simple socle is computed the function does not
  need to be called again for this node and therefore returns [9XNeverApplicable[109X.[133X
  
  
  [1X6.4-11 [33X[0;0Y[10XD247[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective/d247.gi:446[111X.[133X
  
  [33X[0;0YThis method is used for recognizing projective groups.[133X
  
  [33X[0;0YTODO[133X
  
  
  [1X6.4-12 [33X[0;0Y[10XDoBaseChangeForBlocks[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/matrix/matimpr.gi:205[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YTODO[133X
  
  
  [1X6.4-13 [33X[0;0Y[10XFindElmOfEvenNormal[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective/findnormal.gi:788[111X.[133X
  
  [33X[0;0YThis method is used for recognizing projective groups.[133X
  
  [33X[0;0YTODO[133X
  
  
  [1X6.4-14 [33X[0;0Y[10XKroneckerKernel[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective/tensor.gi:461[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YThis  method  handles  the kernel left behind by [14X'[33X[0;0Y[10XKroneckerProduct[110X[133X'[114X. In that
  kernel  the second tensor factor is projectively scalar, so every element is
  represented  by  a block-diagonal matrix with identical diagonal blocks. The
  homomorphism used here simply projects to one of those blocks.[133X
  
  [33X[0;0YAs for [14X'[33X[0;0Y[10XKroneckerProduct[110X[133X'[114X, this is part of the tensor-decomposition strategy
  discussed in [Neu09, Section VII.(6.6), especially p. 126].[133X
  
  
  [1X6.4-15 [33X[0;0Y[10XKroneckerProduct[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective/tensor.gi:425[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YThis  method  is  only used after a previous step has already found a tensor
  decomposition  and  rewritten the generators accordingly. It projects to one
  tensor  factor, recognises that factor projectively, and then continues with
  the other factor in the kernel.[133X
  
  [33X[0;0YThe  underlying  tensor-decomposition  argument  is  the  one  used  for the
  tensor-decomposable  case  in  [Neu09,  Section  VII.(6.6),  especially  pp.
  125-126]: after a suitable base change, and using the constructive reduction
  from  Theorem VII.6.7, each group element acts as a Kronecker product on [22XV_1
  ⊗_F_q  V_2[122X.  In projective recognition one has to allow for scalar ambiguity
  in the extracted tensor factor, so the generic projective SLP machinery must
  treat representatives up to scalars.[133X
  
  
  [1X6.4-16 [33X[0;0Y[10XLieTypeNonConstr[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective/almostsimple/lietype.gi:863[111X.[133X
  
  [33X[0;0YThis method is used for recognizing projective groups.[133X
  
  [33X[0;0YRecognise quasi-simple group of Lie type when characteristic is given. Based
  on [BKPS02] and [AB01].[133X
  
  
  [1X6.4-17 [33X[0;0Y[10XLowIndex[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/matrix/matimpr.gi:178[111X.[133X
  
  [33X[0;0YThis method is used for recognizing projective groups.[133X
  
  [33X[0;0YThis  method  is  designed  for  the  handling  of  the  Aschbacher class C2
  (stabiliser  of  a  decomposition  of  the underlying vector space), but may
  succeed  on  other types of input as well. Given [3XG[103X [22X≤ PGL(d,q)[122X, the output is
  either the permutation action of [3XG[103X on a short orbit of subspaces or [9Xfail[109X. In
  the current setup, [21Xshort orbit[121X is defined to have length at most [22X4d[122X.[133X
  
  
  [1X6.4-18 [33X[0;0Y[10XNameSporadic[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective/almostsimple.gi:1624[111X.[133X
  
  [33X[0;0YThis method is used for recognizing projective groups.[133X
  
  [33X[0;0YThis  method  returns  a  list  of  sporadic  simple  groups  that the group
  underlying  [3Xri[103X could be. It does not recognise extensions of sporadic simple
  groups  nor the Monster and the Baby Monster group. It is based on the Magma
  v2.24.10 function [10XRecognizeSporadic[110X.[133X
  
  
  [1X6.4-19 [33X[0;0Y[10XNotAbsolutelyIrred[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective/c3c5.gi:262[111X.[133X
  
  [33X[0;0YThis method is used for recognizing projective groups.[133X
  
  [33X[0;0YIf  an  irreducible projective group [3XG[103X acts absolutely irreducibly then this
  method  returns  [9XNeverApplicable[109X.  If [3XG[103X is not absolutely irreducible then a
  homomorphism  into  a  smaller  dimensional representation over an extension
  field  is  defined.  A  hint  is  handed  down to the image that no test for
  absolute irreducibility has to be done any more. Another hint is handed down
  to  the  kernel  indicating  that  the  only possible kernel elements can be
  elements  in the centraliser of [3XG[103X in [22XPGL(d,q)[122X that come from scalar matrices
  in the extension field.[133X
  
  [33X[0;0YThis   is   the  irreducible-but-not-absolutely-irreducible  branch  of  the
  semilinear  reduction  from [CNR09, Section 6.4, Proposition 6.4 and Theorem
  6.5].  In  the  present  situation  the  semilinear action has trivial field
  automorphism  part,  so  the  whole  group  can be rewritten over [22XGF(q^e)[122X in
  dimension [22Xd/e[122X.[133X
  
  [33X[0;0YThe method returns only [9XSuccess[109X or [9XNeverApplicable[109X.[133X
  
  
  [1X6.4-20 [33X[0;0Y[10XProjDeterminant[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective.gi:221[111X.[133X
  
  [33X[0;0YThis method is used for recognizing projective groups.[133X
  
  [33X[0;0YThe method defines a homomorphism from a projective group [3XG[103X[22X≤ PGL(d,q)[122X to the
  cyclic  group  [22XGF(q)^*/D[122X,  where  [22XD[122X is the set of [22Xd[122Xth powers in [22XGF(q)^*[122X. The
  image of a group element [22Xg ∈ [3XG[103X[122X is the determinant of a matrix representative
  of [22Xg[122X, modulo [22XD[122X.[133X
  
  
  [1X6.4-21 [33X[0;0Y[10XSporadicsByOrders[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective/almostsimple.gi:1484[111X.[133X
  
  [33X[0;0YThis method is not used in the default setting![133X
  
  [33X[0;0YThis  method  returns a list of sporadic simple groups that [3XG[103X possibly could
  be.  Therefore it checks whether [3XG[103X has elements of orders that do not appear
  in  sporadic  groups and otherwise checks whether the most common ("killer")
  orders  of the sporadic groups appear. Afterwards it creates hints that come
  out of a table for the sporadic simple groups.[133X
  
  
  [1X6.4-22 [33X[0;0Y[10XStabilizerChainProj[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective.gi:161[111X.[133X
  
  [33X[0;0YThis method is used for recognizing projective groups.[133X
  
  [33X[0;0YThis method computes a stabiliser chain and a base and strong generating set
  using  projective  actions.  This  is  a last resort method since for bigger
  examples  no  short  orbits  can  be found in the natural action. The strong
  generators are the nice generator in this case and expressing group elements
  in terms of the nice generators ist just sifting along the stabiliser chain.[133X
  
  
  [1X6.4-23 [33X[0;0Y[10XSubfield[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective/c3c5.gi:572[111X.[133X
  
  [33X[0;0YThis method is used for recognizing projective groups.[133X
  
  [33X[0;0YThis method handles the direct subfield reduction for irreducible projective
  groups.  If  [3XG[103X[22X≤  PGL(d,q)[122X  can  be  conjugated  into [22XPGL(d,q_0)[122X for a proper
  subfield   [22XGF(q_0)[122X   of   [22XGF(q)[122X  without  needing  extra  projective  scalar
  adjustments,  then the method returns [9XSuccess[109X and installs the corresponding
  isomorphism. Otherwise it returns [9XNeverApplicable[109X.[133X
  
  [33X[0;0YThis is the easy part of the [22XC_5[122X reduction from [CNR09, Section 6.3, Theorem
  6.3], using the smallest-field base change described earlier there.[133X
  
  
  [1X6.4-24 [33X[0;0Y[10XTensorDecomposable[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective/tensor.gi:382[111X.[133X
  
  [33X[0;0YThis method is used for recognizing projective groups.[133X
  
  [33X[0;0YThis method looks for the tensor-decomposable situation described in [Neu09,
  Section VII.(6.6)]. It first searches for a non-scalar normal subgroup whose
  restriction  to  the  natural module is homogeneous. From such a subgroup it
  reconstructs  a  basis in which the group acts by Kronecker products. If the
  homogeneous  constituent  is not absolutely irreducible, then the same setup
  instead  points  to  a  semilinear  structure; otherwise it yields a genuine
  tensor decomposition.[133X
  
  [33X[0;0YIn  practical terms the implementation starts from random elements and their
  commutators  to obtain suitable normal subgroups, then uses MeatAxe data for
  the  restriction  to  that  subgroup to build the actual tensor basis, as in
  Lemma VII.6.6 and Theorem VII.6.7 of [Neu09].[133X
  
  
  [1X6.4-25 [33X[0;0Y[10XThreeLargeElOrders[110X[101X[1X[133X[101X
  
  [33X[0;0YThis method is defined in [11Xgap/projective/almostsimple.gi:828[111X.[133X
  
  [33X[0;0YThis method is used for recognizing projective groups.[133X
  
  [33X[0;0YIn the case when the input group [3XG[103X[22X≤ PGL(d,p^e)[122X is suspected to be simple but
  not  alternating,  this method takes the three largest element orders from a
  sample of pseudorandom elements of [3XG[103X. From these element orders, it tries to
  determine  whether  [3XG[103X is of Lie type and the characteristic of [3XG[103X if it is of
  Lie type. In the case when [3XG[103X is of Lie type of characteristic different from
  [22Xp[122X,  the  method also provides a short list of the possible isomorphism types
  of [3XG[103X.[133X
  
  [33X[0;0YThis  method  assumes that its input is neither alternating nor sporadic and
  that [2XComputeSimpleSocle[102X ([14X6.4-10[114X) has already been called.[133X
  
  [33X[0;0YThis recognition method is based on the paper [KS09].[133X
  
  
  [1X6.5 [33X[0;0YUnused methods[133X[101X
  
  [33X[0;0YThe  following  table gives an overview over the methods which are currently
  unused.[133X
  
