products/Sources/formale Sprachen/GAP/pkg/recog/gap/projective/   (GAP Algebra Version 4.15.1©)  Datei vom 22.0.2025 mit Größe 60 kB image not shown  

Impressum almostsimple.gi   Sprache: Shell

 

#############################################################################
##
##  This file is part of recog, a package for the GAP computer algebra system
##  which provides a collection of methods for the constructive recognition
##  of groups.
##
##  This files's authors include Max Neunhöffer, Ákos Seress.
##
##  Copyright of recog belongs to its developers whose names are too numerous
##  to list here. Please refer to the COPYRIGHT file for details.
##
##  SPDX-License-Identifier: GPL-3.0-or-later
##
##
##  Code to recognise (simple) groups by their two largest element orders.
##  At least recognise the "natural" characteristic.
##
#############################################################################

# parses certain strings and numbers into a number
RECOG.ParseNumber := function( number, d, default )
  if IsInt(number) then
      return number;
  elif number = "logd" then
      return   
 
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
#   #   gens#   repeat
  return #       nams#       nrs := [];
end;

# RECOG.MakeStabChainHint := function( chain, stdgens )
#   local b,bb,choice,dims,f,gens,grpnum,grps,i,j,lens,llens,m,name,names,nams,nrs,o,orblens,pts,r,size,slps;
#   f := FieldOfMatrixList(stdgens);
#   name := chain[1].name;
#   size := chain[1].order;
#   slps := [];
#   names := [];
#   dims := [];
#   orblens := [];
#   pts := [];
#   gens := stdgens;
#   repeat
#       Print("Working on ",name,"\n");
#       grps := [];
#       nams := [];
#       nrs := [];
#       for i in [1..Length(chain)] do
#           r := chain[i];
#           if IsBound(r.parent) and r.parent = name then
#               Add(grps,ResultOfStraightLineProgram(r.generators,gens));
#               Add(nams,r.name);
#               Add(nrs,i);
#           fi;
#       od;
#       if Length(grps) = 0 then break; fi;
#       Print("Considering subgroups: ",nams,"\n");
#       bb := [];
#       llens := [];
#       grpnum := [];
#       for i in [1..Length(grps)] do
#           # will be left by break in case of success
#           Print("  Considering ",nams[i],"\n");
#           m := GModuleByMats(grps[i],f);
#           if not MTX.IsIrreducible(m) then
#               b := List(MTX.BasesMinimalSubmodules(m),MutableCopyMat);
#               Sort(b,function(a,b) return Length(a) < Length(b); end );
#               Print("    Dimensions: ",List(b,Length),"\n");
#               lens := [];
#               for j in [1..Length(b)] do
#                   TriangulizeMat(b[j]);
#                   if Length(b[j]) = 1 then
#                       o := Orb(gens,b[j][1],OnLines,rec( report := 10000,
#                              treehashsize := 1000, storenumbers := true ));
#                   else
#                       o := Orb(gens,b[j],OnSubspacesByCanonicalBasis,
#                          rec( report := 10000, treehashsize := 1000,
#                               storenumbers := true ));
#                   fi;
#                   Enumerate(o);
#                   Print("    Found orbit of length ",Length(o),"\n");
#                   lens[j] := Length(o);
#               od;
#               Append(bb,b);
#               Append(llens,lens);
#               Append(grpnum,ListWithIdenticalEntries(Length(b),i));
#           else
#               Print("    Restriction is irreducible!\n");
#           fi;
#       od;
#       choice := 1;
#       Print("Dimensions: ",List(bb,Length),"\n");
#       Print("Orbit lengths: ",llens,"\n");
#       Error("now decide which orbit to take, set choice");
#       if choice > 0 then
#           i := grpnum[choice];
#           Add(names,nams[i]);
#           Add(dims,Length(bb[choice]));
#           name := nams[i];
#           gens := grps[i];
#           size := size / llens[choice];
#           Add(orblens,llens[choice]);
#           Add(slps,chain[nrs[i]].generators);
#           Add(pts,bb[choice]);
#       fi;
#   until size = 1 or choice = 0;
#   return rec( slps := slps, names := names, dims := dims, orblens := orblens,
#               pts := pts );
# end;

java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 61
local,ce,,homs,maxes,,s
    finder    !java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 33
    if finder = fail then
        InfoInfoI2"java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 73
             notjava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 31
       (,1"yourjava.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 62
        return      =or = 
    fiInfoInfoRecog2,java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 74
    gm :=         ;
. =[(
func=ri java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 72
       :[];
    Info    IsBoundujava.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 32
           :java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 75
                              rec java.lang.StringIndexOutOfBoundsException: Range [50, 48) out of bounds for length 78
    if stdgens =             maxes := hint{(1.Lengthhintusemax]
       (nfoRecog2"finder did not   ,.name;
        return fail;
    fi;
    stdgens := stdgens.gens;
    #Setslptostd(ri,SLPOfElms(stdgens));
    #SetStdGens(ri,StripMemory(stdgens));
    if IsBound(hint.        else
        if IsBound(int.)then
                    ;
            bra := BrauerCharacterValue(elm! formax in maxesdo
            maxes :=u{iltered[.Length(hint.),
                                          i->hint.brauercharvals[ifs = fail then
        else
            maxes := hint.usemax;
        fi;
        formax in maxesdo
            s := AtlasProgram(hint.name,max);
            if s = fail then
Info(,,"Expectedmaximal  of "hint.ame,
                     " not available!");
                Infomaxgens := ResultOfStraightLineProgram(.,
                return ;
            fi;
            maxgens :=             :=GModuleByMatsmaxgens,.);
                                                   (stdgens;
            m := GModuleByMats(maxgens,ri!.fieldM.()x>[];
Sortcf,(,b returna. <b.; endjava.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
InfoI,,Foundsubmodule";
                continue;
            fi;
            cf := List(MTX.CollectedFactors(m),x->x[1]);
           cf,unction(a,)return a.imension<b.; end);
            for c in                     Con(homs[]ri!.field;
                homs: .omomorphismsc);
                if Length(java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 26
                    ConvertToMatrixRep(homs[1],ri!.field);
                    b := MutableCopyMat(homs[1]);
                    ;
                 (  (ri,StabChain"true).l ;
                             :rec(Projective: true,RandomElmFunc:  )
            od;
            TriangulizeMat(b);
            fu :=                 optCand : ( =[[1]  : OnLines );
                            C : (  : [,
           if ()= 1 then
                opt.Cand := rec( points := [            fi;
            else
                opt.Cand := rec            opt. : .size;
ops :=OnSubspacesByCanonicalBasis);
            fi;
            gm := GroupWithGenerators(                hint.name," ...");
opt. : hint.;
            Info(InfoRecog,2,              correctnessby  originalgens:
                 hint.name," ...            
            (gm,)
            # Verify correctness by sifting original gens:Setslptonicer,SLPOfElmsStrongGeneratorsS);
esnot terminate if nogroupof this
            # size is found!
            ri!.Unbind(S!.opt.RandomElmFu;
            (SLPOfElms())java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
            (,.ize;
            ForgetMemory(S);
            Unbind(S!.opt.RandomElmFunc);
            java.lang.StringIndexOutOfBoundsException: Range [60, 28) out of bounds for length 82
            SetFilterObj(ri,IsLeaf);
            if IsBound(hint.ssimple 
                ri!.comment=hint.name;
            fi;
                        true;
            ri!.fi;
            return true;
        od;
        Inf ,2,"  chain ,  yet implemented!";
    (InfoRecog,,"ot  chain ,  yet ! ;
return ;
  endtries,triesinner,riesinnerlimit,trieslimit,,y

 Info(InfoRecog,,Gothint  , trying LowIndex.."java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
  d := ridimension
  if IsBound(hinte)then

Info(nfoRecog2" hint group,trying LowIndex.."

  fld      
             :=i+1;
  if IsBound(hint.elordersstart) then
java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 13
      repeat
          i := i + 1;
          if i > 10000                            "wrong hints?);
              ErrorNoReturnx :PseudoRandomG;
           "wrong hints?");
          fi;
          x := PseudoRandom(G);
      until Order(java.lang.StringIndexOutOfBoundsException: Range [0, 19) out of bounds for length 15
      x:=[];
  elsex:= [];
      x := [];
  fi;

  tries := 0;
  numberrandgensfijava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
 triesinnerlimit := RECOG.ParseNumber(hint.triesforgens,d,"1d");
  trieslimit := RECOG.ParseNumber(hint.tries,d,10   : RECOG.hint.numberrandgensd,;
   =.java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 60
3"java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
it=,java.lang.StringIndexOutOfBoundsException: Range [69, 68) out of bounds for length 69
        ,java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 36

  repeat
      gens := ShallowCopy(x);
      triesinner"=,)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
      gens =ShallowCopyx)
                triesinner := 0;
          if         = Lengthg)then# we have to make the hm module
               : tries + 1;
              continue;
          fi;
      else
          while Lengthgens)  numberrandgensand
                triesinner < triesinnerlimittries =tries  1java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
              y :else
              Add(gens,)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
              ;
              hm := GModuleByMats( java.lang.StringIndexOutOfBoundsException: Range [35, 36) out of bounds for length 35
                            :  +1java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
                   if IsIrreduciblehm) 
              ;
          od;
      fi
      if            :bas]
          
          bas := [MTX.ProperSubmoduleBasis(hm)];               := .(hm,);
          s := bas[1];
                        :MTX.roperSubmoduleBasis(hm);
              hm := MTX.InducedActionSubmodule(hm,s);
              s =MTX.ProperSubmoduleBasishm)
              Add(bas,s);          java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
          od;
          Unbind(          for i in bas-,b).1] do
           =basL()java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
            in [Lengthbas),b)-.1 
              s := s * bas[i];
         od;
          # Now s is the basis of a minimal submodule, permute that:
          ()java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
          TriangulizeMat(          ConvertToMatrixRs)
#FIXME:this  be :
          ConvertToMatrixRep(s);
Info,2"    dimension ,
               Length(s),          ifnot (hint.ubspacedims java.lang.StringIndexOutOfBoundsException: Range [46, 47) out of bounds for length 46
          if not b : RECOG.(G,s,)
             s inhint. 
              #orb := RECOG.OrbitSubspaceWithLimit(G,s,orblenlimit);
              orb lBasis,
                         rec(storenumbers := true,
NextPrimeInt(2*orblenlimit)));
              Enumerate(orb,orblenlimit);
              if IsClosed(orb) then
                  : OrbActionHomomorphism(G,orb);
                  if Length(s) * Length(orb)                   Length()*Length(rb   then
                      
                      InitialDataForKernelRecogNode(ri)blocksize: Lengths;
                      () =Length(s);
                                             .,
                                FindHomMethodsProjective.DoBaseChangeForBlocks,
                                2000);
                      Setimmediateverification(ri,true);
                      findgensNmeth(ri).args[1] := Length(orb)+3;ri.2]:5java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
                      findgensNmeth(ri).args[2] :                          ,"java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
                      Info(InfoRecog,2,"Found block                            Length(orb)," - not a block,  java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 65
Length)" .";
                  else
                      Info(                   java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
                           Length()"-not  block.";
                  fi;
                  SetHomom(ri,hom);
                  Setmethodsforimage(ri,                   "not enumerating orbit.");
                  fijava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
              fi;
          else
              Info(InfoRecog ;
                   "not enumerating orbit.");
          fi;
# We start a database of hints, whenever we discover a certain group, we
      tries := tries + 1;
  RECOGAlmostSimpleHints:rec(;
  return java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
end );

# We start a database of hints, whenever we discover a certain group, we
# can ask this database what to do:

RECOG.AlmostSimpleHints := rec();

# is called in almostsimple/hints.gi to create a database in
# RECOG.AlmostSimpleHints to store hints about almost simple groups.
# Currently just sporadic simple groups are contained.
InstallGlobalFunction(InstallAlmostSimpleHint,
  function( name, type, re )
    if not IsBound(RECOG.AlmostSimpleHints        RECOG.AlmostSimpleHints.(name : [;
        RECOG.java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 20
    fi
    reend)
    Add( RECOG.
  end ) FIXME: unused?

# FIXME: unused?
# TODO: this was likely used to generate the hints in almostsimple/hints.gi.
# Document this, and how to replicate the hints; move the code to a separate file.
# Indeed, ideally a user should be able to trivially regenerate the list of hints
# by running a script. Note that for that, we need to also explain how the arguments
# "reps" and "maxes" are chosen...
# Perhaps a full script is not possible; but then we should still explain how
# the hints where generated.
RECOG.ProduceTrivialStabChainHint := function(name# the hints where generated.
  local bad,f,,gens,int,list,m,o,prevdim,prevfield,r,range,res,ri,
        size,success,t,values,x;
  PrintTo  local ,,ggens,int,ist,,o,revdim,revfield,,range,es,rijava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
  prevdim :failjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
  prevfield   prevfield =fail;
    inreps do
      Print("\nDoing representation #",r,"\n");
      gens =AtlasGeneratorsname,;
      g := Group(gens.generators);
      f := gens.      gens := AtlasGe : AtlasGenerators(,)
       =[;
      success := false;
      size        =gens.ing;
      for m in      success: false;
oing maximal subgroup#",m,"\n");
          hint := rec( name := name, size          1.(axes]do
          ri := RecogNode(rec(),          hint :rec(),gtrue);
          t := Runtime();
          =DoHintedStabChain(ri,g,hint);
          t := Runtime() - t;
if  true then
              o := ri!.stabilizerchaint:= Runtime()- t;
              x: o[1];
              if IsMatrix(x) then
Addvalues[Length()QuoInt((o)99100)Length()];
              else
                  Add(values,[QuoInt(              if IsMatrix() then
             fi;
              Print("              else
                    d(alues,[QuoInt(Length(o)99,00)Length(o)];
              ViewObj(x);
              "n);
              success : true;
          else
              Add(values,[infinity,infinity]);
              Print("java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 25
          fi              success :truejava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
      od;
      if success then
ifSize(  prevfield and (gens.enerators1]   then
                        ;
                      >>>SAME FIELD AND DIM\)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
          fi;
          list := ShallowCopy(maxes);
          SortParallel(values,list);
           :=First[1.Length(values)],i->values[i][1] = infinity);
          if bad = fail or bad >              AppendTo(Concatenation(NEWHINTS.,name)
               Length(alues > 3then
                  range := [1..3];
              else
                  range           : ShallowCopy()
              fi;

                        bad  > 
          fi
                  range=[.]
                "range := [1..Length(values
                "  rec( name :          
                Size(f),"],          fi;
                "], \n       usemax := ",list{range},
                " \       size =" ,
                ", atlasrepnrs : "InstallAlmostSimpleHint\"n," ""\"
                valuesrange}\  );n);
      fi;
      prevfield := Size(f);
      prevdim := Length(gens.generators[1]);
  od;
end;

# FIXME: unused?
RECOG.DistinguishAtlasReps := function(name,rep1,rep2)
  localbr1,classes,gens1,gens2,uck1,guck2,l,lens,slps;
  classes := AtlasProgram(name,"cyclic").program;
  gens1                " java.lang.StringIndexOutOfBoundsException: Range [44, 30) out of bounds for length 64
  gens2 = AtlasGenerators(name,rep2).generators;
  guck1 := ResultOfStraightLineProgram(classes,gens1);
  guck2 :=      fi;
  br1: List(guck1,x-BrauerCharacterValue(x!.el));
  br2 := List(guck2,BrauerCharacterValue);
  ([1..Length(r1],i-b[i<[];
  slps := List(guck1,SLPOfElm  od;
  lens: (lx>LengthLinesOfStraightLineProgram(lpsx))
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  Print("brauercharelm := ",slps[l[1RECOG.DistinguishAtlasReps :=,rep2
]]],,n";
end;


# This is for the released AtlasRep package:
if not IsBound(AGR_TablesOfContentsgens2 :=ResultOfStraightLineProgram(classes,gens1);
    AGR_TablesOfContents := fail;
   AGR_InfoForName: fail;
fi  br1 : List(uck1->rauerCharacterValue(x!.el));

# FIXME: unused?
RECOG. :=function ( n )
    local S,g,gens,nn,toc,tocs;
    tocs  : AGR_TablesOfContents( "all" );
    nn := AGR_InfoForName( n )[2];
    toc := tocs[1].(lens: lx-Length((slps[))
    gens := AtlasGeneratorsPrint(brauercharelm:="slps[[1],, brauercharvals :"java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
    g := Group( gens );
    Sjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    Print( "InstallAlmostSimpleHint( \""if IsBound(GR_TablesOfContents 
         :=",n \"usemax: ")
    java.lang.StringIndexOutOfBoundsException: Range [21, 19) out of bounds for length 28
    Print( ",\.:= java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 49
;

# dimensions optionally
# subspacedims there or not
# elordersstart unbound ==> start with empty generator list
# if numberrandgens = "logd" then it will use LogInt(d,2)
# if triesforgens = "Xd" then it will use X * d (X a number as a string)
# if orblenlimit = "Xd" then it will use X * d (X a number as a string)
# L2 hint with doing the decision on the fly
#   depending on the ppd-Properties of L2(p)
# This means:
#   rec( numberrandgens := "logd", tries := 10, triesforgens := "1d",
#        orblenlimit := "4d" )
# is the standard low index.

# BUG: The following hint was added a long time ago, but it
# can lead to an infinite loop in DoHintedLowIndex, because
# elordersstart suggests searching for elements of order 31,
#  but no such elements are found.
# See also https://github.com/gap-system/recog/issues/6
# InstallAlmostSimpleHint( "L2(31)", "LowIndexHint",
#   rec( characteristics := [31], dimensions := [1,2,3],
#        elordersstart := [31], numberrandgens := 2, tries := 1,
#        triesforgens := 100, orblenlimit := 32, issimple := true ) );

# if hint in AlmostSimpleHints exists appropriate function is executed
InstallGlobalFunction# L2 hint with doing the decision on the fly
  function# This means:
    local#        orblenlimit := "4d" )
    Info(InfoRecog,2,"Looking java.lang.StringIndexOutOfBoundsException: Range [0, 32) out of bounds for length 0
    if IsBound(RECOG.AlmostSimpleHints.(name)) then
        j := 1;
        hi :=#  but no such elements are found.
        f := ri!.field;
        p := stSimpleHint( "L2(31)"#   rec( characteristics := [31], dimensions := [1,2,3],
        q := Size(f);
        dim := ri!.dimension;
        while # if hint in AlmostSimpleHints exists appropriate function is executed
(not IsBound(hi[j.characteristics) or
                p in hi[j].characteristics) and
               (not IsBound(hi[j].fields) or
                name)
                   local dim,f,i,,p,q;
            ForAny(hi[j]dimensiondivs,d->dim mod d = 0)) and
               (not IsBound(hi[j].dimensions) or
                [j].dimensions) then
                # This hint is applicable!
                if hi[j].type = "java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 15
(ri,G,i[];
                elif hi[j].type = "StabChainHint" then
                    return DoHintedStabChainri,G,j]);
                # Put other hint types here!         =Characteristic)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
                fi;
            fi;
            j := j             ( IsBoundhi[j.) 
        ;
    fi;
   (InfoRecog2"  ,giving up.";
    return fail;
end );                 in []fields 


# checks whether the orbit of <vec> under g is not longer than bound
shortorbit:function(,,bound)
    local v, i, pos               (otIsBound(hi[])or
    v:= StructuralCopy(vec);
    pos := PositionNonZero(vec);
    vec := vec /                 This hint is applicable!
    fori in [..ound do
        v := v * g;
        if v = v[pos] * vec then
            break;
        fi;
    od;
    return i;
end;


# Under the assumption that G is an almost simple group,
# attempt to guess the "natural" characteristic of the
# group based on the two or three maximal orders of group elements.
#
# Used by FindHomMethodsProjective.ThreeLargeElOrders.
RECOG.
    
     randominG its
        ;
    local mat,vs,

    if randelfunc = fail then
        pr := ProductReplacer(GeneratorsOfGroup(G));local v,, ;
        randelfunc: functionri)
          local el;
           := Nextp)
          vec java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
        end;
    fi;

        od;
    d := ri!.dimension;
    mat:=One(G);
    vs:=VectorSpace(GF(p),end;
    repeat
        vec:=Random(vs);
    until not IsZero(vec);

    if RECOG.shortorbit(vec,Product(GeneratorsOfGroup(# group based on the two or three maximal orders of group elements.
        return p;
     fi;

    #find three largest element orders m1, m2, m3
    bound:=32*(LogInt(d,2))^2*6*4;
    count:=0,s,,,,glist,p,d,;

    m2:     randelfunc  failthen
    m3:0;
    java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 34
    
        countreturn rec( el:=el order : ProjectiveOrder(l)1])java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
        r :d:.java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 23
        g := r
       order:=.rder;
        if order >= 3*d then
            until not (ec;
        elif order > m1vecProduct(GeneratorsOfGroupG) 3d  3d 
            m3:=m2;
            m2:=m1;
            m1:=order#findthree largest   m1,m2 java.lang.StringIndexOutOfBoundsException: Range [49, 50) out of bounds for length 49
;
            count:java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
  :java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
            m2:=order;
            last:=count;
        elif order<m2count:1
   =
            =;
             ;
         

    #handle ambiguous cases
    if [m1,m1:java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
        return[13,,[2"8];
    elif [m1,m2] = [13,8] then
        return             m3:=2java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
    [,,m3 =137,6 
        return [[13, elif m2and >3 
    elif             m3:order;
        return [[13,2[l"2,]];
    elif [m1,m2,m3] = [13,12,9]fi
        return [[13,12,["G2",3]]]java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    elif m1m2,]=[12,9,]then
        return         return [[37 [2B2,8]]java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
    elif [m1,return[13,,""3,]]
        return [129[u,,]]
     return [13,7,["2];
        java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 34
 mm] 54 
        elif [m1,m2,m3] = [13,12,9] then
    elif[m1,m2
        return [[7,4,["l",2,7]]];
    [1,2] = 1513 
        [1513[u,,]]
             [,,""4,]]java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
        return [[30,20,["s",4        [[5,3,"l",24]]java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
     m,2  [30,]then
        return [[30,24,["selif m1m]= [7,4] 
    elif[1,2  6360 
        return[[,,""u,3,];
    elif [m1,m2] = [91,85] then
             [,2] =[30,0 
    fi;

list:FilteredRECOGgrouplist, x-x]=1  [2]);
    #one more ambiguous case
    if  Length(list) >=2 and (
        (list[1][3]{[1,2]}=["l",        [[6360,""4,]]java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
([]3{1,}[l,]and 1[]1="")then
       if m3>m1/2 then
           return Filtered(list    :Filtered(.rouplist, >1=1and x2]=)
       else
          Filtered(ist,x-x3[]""java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
;

        return listxx1""
    fi;

    java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10

# just called for PSL (in FindHomMethodsProjective.ThreeLargeElOrders),
# gives hints
RECOG.MakePSL2HintPSL (in FindHomMethodsProjective.ThreeLargeElOrders# gives hints
 java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 24
  f :=f:java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 36
  q =Characteristic(f);
  p := Characteristic(f);
  d := DimensionOfMatrixGroup(3[]java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
  defchar :=       return fail
  if p = Info(InfoRecog, hint  "".)
      return     arein cross characteristic.
  fi;
  Info(InfoRecog,2,"Making hint for group ",name  # to be made better...
  # we are in cross characteristic.we are in cross characteristic.
  # to be made better...
       orblenlimit: 3*([]1 ;
              triesforgens := 3*(name[3]+1),
               : 3*name[]1))java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
end;

# is used in FindHomMethodsProjective.ComputeSimpleSocle
# it computes the non-abelian simple socle randomly (it might
# underestimates it)
# if called for an abelian group (even a group with nilpotence class smaller
# than 3?) it runs in an infinite loop
simplesocle: (,gjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
  x,ycomm,comm2,comm3,gensH;

  repeat
    x:=RandomElm(ri,"simplesocle",  repeat
 untilnot ri!.sone);

  repeat
   :java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 43
    comm:=Comm(x    :ri",.el;
  until not ri!.isone(comm);

  
    y:=RandomElm(ri,"
    comm2repeat
  until not     y:=RandomE(i"simplesocle"true)el

  repeat
    y:=RandomElm(ri,"simplesocle",true).until not ri!.isone(comm3);
    comm3:=Comm(comm2,java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
  until not ri!.isone(comm3);

  java.lang.StringIndexOutOfBoundsException: Range [37, 7) out of bounds for length 41

  return gensH;
end;

#! @BeginChunk ComputeSimpleSocle
#! This 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 <K>NeverApplicable</K>.
#! @EndChunk
BindRecogMethod(java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 14
"compute simple socle   .etPseudoRandomStamp(G"ComputeSimpleSocle)java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
functionri,)
  local x;
 .etPseudoRandomStampG"ComputeSimpleSocle";
  ri!.simplesocle  ri!.implesoclerand :=EmptyPlist;
  ri!.simplesoclepr := ProductReplacer(ri!.simplesocle);
.java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 41
java.lang.StringIndexOutOfBoundsException: Range [8, 5) out of bounds for length 33
:100;
  for x in ri!.simplesoclerand do
      java.lang.StringIndexOutOfBoundsException: Range [28, 9) out of bounds for length 28
od;
  java.lang.StringIndexOutOfBoundsException: Range [22, 4) out of bounds for length 28
  ri!.simplesocle!
       [rec( func := Next, args := [ri!. and its projective order# first uses the random generator and afterwards generate
  return RECOG.RandElFuncSimpleSocle := function(ri)
end);

# computes a random element in the non-abelian simple socle
# and its projective order
# first uses the random generator and afterwards generate
# a new random element
.andElFuncSimpleSocle : function(ri)
  local el,  if  IsBoundr!simplesoclerand[i.simplesoclerandp] then
  ri!.implesoclerandp =ri!simplesoclerandp + 1
    IsBound(i.r!simplesoclerandp)
      el := Nextord: el)1;
      ri.[.]=ord;
      ordelse
ri!simplesoclerandori!.implesoclerandp] : ord;
  else
      : ![i!.;
      ord  fijava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
  fi;
  return  rec(el:=el order : ord )java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
end;

#! @BeginChunk ThreeLargeElOrders
#! In the case when the input group <A>G</A><M> \le PGL(d,p^e)</M> is
#! suspected to be
#! simple but not alternating, this method takes the three
#! largest element orders from a sample of pseudorandom elements of
#! <A>G</A>. From these element orders, it tries to determine whether <A>G</A>
#! is of Lie type and the characteristic of <A>G</A> if it is of
#! Lie type. In the case when <A>G</A> is of Lie type of characteristic
#! different from <M>p</M>, the method also provides
#! a short list of the possible isomorphism types of <A>G</A>.
#!
#! This method assumes that its input is neither alternating nor sporadic and
#! that <Ref Func="ComputeSimpleSocle"/> has already been called.
#!
#! This recognition method is based on the paper <Cite Key="KS09"/>.
#! @EndChunk
BindRecogMethod type groups and get its characteristic"
"recognisefunction(ri,)
function(ri, local hint,amenamecat,,res;
  local hint,name,namecat,p,res;
  RECOG.SetPseudoRandomStamp(G,"ThreeLargeElOrders");
  ri.simplesoclerandp :=0java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
  p := RECOG.findchar   : RECOG.findchar(ri,ri!.simplesocle,RECOG.RandElFuncSimpleSocle);
  if p = Characteristic(ri!.field) then
     (InfoRecog,2,"ThreeLargeElOrders: defining characteristic p=",p);
      return false; # FIXME: false = NeverApplicable here really correct?
  fi;
  # Try all possibilities:
  Info(,,ThreeLargeElOrders "p;
  for hint in p do
      Info(java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 5
      name := hint  (,2":found ,)
      if[1]=""   
          if 2] = 
     :=RECOG.akePSL2Hintn,)
              if hint <> fail then
                  res := DoHintedLowIndex(ri,G,hint);
              else   # we use Pete Brooksbank's methods
returnSLCR.(riG2,ame[3])java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
              fi;
          else
              return SLCR.FindHom(ri,G,name[2],name[3]);
          fi;
      else
          if Length(name) = 3 then
             namecat : Concatenation(UppercaseString(name[1])
                                       String(              fi
                                       "(",String(name[              returnSLCR.indHom(,,[2,3)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
          else
              :java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 33
          fi;
         =java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 51
      fijava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
      if res = true then
                    res :=java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 51
      fi;
  od;
  Info(InfoRecog,           Success;
  return fail; # FIXME: fail = TemporaryFailure here really correct?
end);

# RECOG.DegreeAlternating := function (orders)
#     local   degs,  prims,  m,  f,  n;
#     degs := [];
#     prims := [];
#     for m in orders do
#         if m > 1 then
#             f := Collected(Factors(m));
#             Sort(f);
#             n := Sum(f, x->x[1]^x[2]);
#             if f[1][1] = 2 then n := n+2; fi;
#             AddSet(degs,n);
#             UniteSet(prims,Set(f,x->x[1]));
#         fi;
#     od;
#     return [degs, prims];
# end;
# 
# RECOG.RecognizeAlternating := function (orders)
#     local   tmp,  degs,  prims,  mindeg,  p1,  p2,  i;
#    tmp := RECOG.DegreeAlternating (orders);
#    degs := tmp[1];
#    prims := tmp[2];
#    if Length(degs) = 0 then
#        return "Unknown";
#    fi;
#    mindeg := Maximum (degs);  # minimal possible degree
# 
#    p1 := PrevPrimeInt (mindeg + 1);
#    p2 := PrevPrimeInt (p1);
#    if not p1 in prims or not p2 in prims then
#        return 0;
#    fi;
#    if mindeg mod 2 = 1 then
#        if not (mindeg in orders and  mindeg - 2 in orders) then
#            return 0;
#        fi;
#    else
#        if not mindeg - 1 in orders then
#            return 0;
#        fi;
#    fi;
# 
#    for i in [3..Minimum (QuoInt(mindeg,2) - 1, 6)] do
#        if IsPrime (i) and IsPrime (mindeg - i) then
#            if not i * (mindeg - i) in orders then
#                return 0;
#            fi;
#        elif IsPrime (i) and IsPrime (mindeg - i -1) then
#            if not i * (mindeg - i - 1) in orders then
#                return 0;
#            fi;
#        fi;
#    od;
#    return mindeg;
# end;
#
# SLPforElementFuncsProjective.Alternating := function(ri,x)
#   local y,slp;
#   RecSnAnIsOne := IsOneProjective;
#   RecSnAnEq := IsEqualProjective;
#   y := FindImageAn(ri!.recogSnAnDeg,x,
#                    ri!.recogSnAnRec[2][1], ri!.recogSnAnRec[2][2],
#                    ri!.recogSnAnRec[3][1], ri!.recogSnAnRec[3][2]);
#   RecSnAnIsOne := IsOne;
#   RecSnAnEq := EQ;
#   if y = fail then return fail; fi;
#   slp := SLPforAn(ri!.recogSnAnDeg,y);
#   return slp;
# end;
#
# SLPforElementFuncsProjective.Symmetric := function(ri,x)
#   local y,slp;
#   RecSnAnIsOne := IsOneProjective;
#   RecSnAnEq := IsEqualProjective;
#   y := FindImageSn(ri!.recogSnAnDeg,x,
#                    ri!.recogSnAnRec[2][1], ri!.recogSnAnRec[2][2],
#                    ri!.recogSnAnRec[3][1], ri!.recogSnAnRec[3][2]);
#   RecSnAnIsOne := IsOne;
#   RecSnAnEq := EQ;
#   if y = fail then return fail; fi;
#   slp := SLPforSn(ri!.recogSnAnDeg,y);
#   return slp;
# end;
#
# FindHomMethodsProjective.AlternatingBBByOrders := function(ri,G)
#   local Gm,RecSnAnEq,RecSnAnIsOne,deg,limit,ordersseen,r;
#   if IsBound(ri!.projordersseen) then
#       ordersseen := ri!.projordersseen;
#   else
#       ordersseen := [];
#   fi;
#   limit := QuoInt(3*ri!.dimension,2);
#   while Length(ordersseen) <= limit do
#       Add(ordersseen,RECOG.ProjectiveOrder(PseudoRandom(G)));
#       if Length(ordersseen) mod 20 = 0 or
#          Length(ordersseen) = limit then
#           deg := RECOG.RecognizeAlternating(ordersseen);
#           Info(InfoRecog,2,ordersseen);
#           if deg > 0 then  # we strongly suspect Alt(deg):
#               # Switch blackbox recognition to projective:
#               Info(InfoRecog,2,"Suspect alternating or symmetric group of ",
#                    "degree ",deg,"...");
#               RecSnAnIsOne := IsOneProjective;
#               RecSnAnEq := IsEqualProjective;
#               Gm := GroupWithMemory(G);
#               r := RecogniseSnAn(deg,Gm,1/100);
#               RecSnAnIsOne := IsOne;
#               RecSnAnEq := EQ;
#               if r = fail or r[1] <> "An" then
#                   Info(InfoRecog,2,"AltByOrders: Did not find generators.");
#                   continue;
#               fi;
#               Info(InfoRecog,2,"Found Alt(",deg,")!");
#               ri!.recogSnAnRec := r;
#               ri!.recogSnAnDeg := deg;
#               SetSize(ri,Factorial(deg)/2);
#               Setslpforelement(ri,SLPforElementFuncsProjective.Alternating);
#               Setslptonice(ri,SLPOfElms(Reversed(r[2])));
#               ForgetMemory(r[2]);
#               ForgetMemory(r[3][1]);
#               SetFilterObj(ri,IsLeaf);
#               SetIsRecogInfoForSimpleGroup(ri,true);
#               return Success;
#           fi;
#       fi;
#   od;
#   return fail; # FIXME: fail = TemporaryFailure here really correct?
# end;

# abbreviation stands for "homomorphism fully deleted permutation module";
# returns a permutation
RECOG.;
    r =.(.**.,ata;
  r := RECOG.FindPermutation(data.cob*x*data.cobi,data.fdpm);
  if r = fail then
      return fail;

  return r[2];      return fail;
end;

#! @BeginChunk AltSymBBByDegree
#! This method is a black box constructive (?) recognition of alternating
#! and symmetric groups.
#! 
#! This algorithm is probably based on the paper <Cite Key="BLGN+05"/>.
#! @EndChunk
# subroutines are in AnSnOnFDPM.gi and also paper reference
BindRecogMethod(java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 3
 + or +2ifsensible,
functiontryBB1or2 sensible,
  local GG,Gm,  local GG,Gm,RecSnAnEq,deg,,homjava.lang.StringIndexOutOfBoundsException: Range [62, 61) out of bounds for length 80
        r,totry;
etPseudoRandomStamp(G,";
  d := ri!.dimension;
  orders := RandomOrdersSeen(ri);
  if Length(orders) = 0 then
      orders := [RandomElmOrd(ri,"AltSym",false).order];
  fi;
  primes := Filtered(Primes,x->x <= d+2);
  for o in orders do
    fact := FactorsTD(o,primes);
      if Length(fact[2]) <> 0 then
          Info(InfoRecog,orders: Rri",);
          return NeverApplicable;
      java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
  od;
  f : ri!field;
  # We first try the deleted permutation module method:
  if d >= 6       if Lengthif Length(act[])< 0 then
      Info(nfoRecog,3"Trying deleted permutation module method.."java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
      r := RECOG.RecogniseFDPM(G,f,1/10);
      ifod;
  f : ri!.ield;
          newgens := List   We first try the deleted permutation module method:
                          -RECOG.HomFDPM(r,x));
          if not fail in newgensInfoRecog" java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 70
              GG l>java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 39
              hom := GroupHomByFuncWithData(G,GG,java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 47

              (,hom)
              Setmethodsforimage(ri,FindHomDbPermifnot fail in newgens then

              ri!.comment := "FDPM";
              return Success;
          fi;
      fi;
Info(nfoRecog,,Deleted permutationmodule methodfailed.)
  fi;

  return TemporaryFailure;    # do not try any more now


# TODO: try out an example that should need this;
#  e.g. start with A_n on k-subsets, k >= 2, then go to perm mats...
#

# FIXME: there is dead code below...

#   p := Characteristic(f);
#   totry := EmptyPlist(2);
#   if (d+1) mod p <> 0 and d+1 > 10 then
#       Add(totry,d+1);
#   fi;
#   if (d+2) mod p = 0 and d+2 > 10 then
#       Add(totry,d+2);
#   fi;
# 
#   for deg in totry do
#       Info(InfoRecog,3,"Looking for Alt/Sym(",deg,")...");
#       RecSnAnIsOne := IsOneProjective;
#       RecSnAnEq := IsEqualProjective;
#       Gm := GroupWithMemory(G);
#       r := RecogniseSnAn(deg,Gm,1/100);
#       RecSnAnIsOne := IsOne;
#       RecSnAnEq := EQ;
#       if r = fail then
#           Info(InfoRecog,2,"AltSym: deg=",deg,": did not find generators.");
#           continue;
#       fi;
#       if r[1] = "An" then
#           Info(InfoRecog,2,"Found Alt(",deg,")!");
#           ri!.recogSnAnRec := r;
#           ri!.recogSnAnDeg := deg;
#           SetSize(ri,Factorial(deg)/2);
#           Setslpforelement(ri,SLPforElementFuncsProjective.Alternating);
#           Setslptonice(ri,SLPOfElms(Reversed(r[2])));
#           ForgetMemory(r[2]);
#           ForgetMemory(r[3][1]);
#           SetFilterObj(ri,IsLeaf);
#           SetIsRecogInfoForSimpleGroup(ri,true);
#           ri!.comment := "Alt";
#           return Success;
#       else   # r[1] = "Sn"
#           Info(InfoRecog,2,"Found Sym(",deg,")!");
#           ri!.recogSnAnRec := r;
#           ri!.recogSnAnDeg := deg;
#           SetSize(ri,Factorial(deg));
#           Setslpforelement(ri,SLPforElementFuncsProjective.Symmetric);
#           Setslptonice(ri,SLPOfElms(Reversed(r[2])));
#           ForgetMemory(r[2]);
#           ForgetMemory(r[3][1]);
#           SetFilterObj(ri,IsLeaf);
#           SetIsRecogInfoForAlmostSimpleGroup(ri,true);
#           ri!.comment := "Sym";
#           return Success;
#       fi;
#   od;
#   return TemporaryFailure;
end#           Setslptonice(ri,SLPOfElms(Reversed(r[2])));

# Looking at element orders to determine which sporadic it could be:

# The following may have been generated by RECOG.MakeSporadicsInfo.
# RECOG.SporadicsElementOrders[i] contains all appearing element orders
# in the sporadic simple group RECOG.SporadicsNames[i].
# RECOG.SporadicsElementOrders[i][j] contains an element order of the
# sporadic simple group RECOG.SporadicsNames[i] with
# probability RECOG.SporadicsProbabilities[i][j].
# RECOG.SporadicsSizes[i] is the size of the sporadic simple group
# RECOG.SporadicsNames[i].
# RECOG.SporadicsKillers contain orders that appear relatively often.
RECOG.SporadicsElementOrders :=
[ [ 1,# The following may have been generated by RECOG.MakeSporadicsInfo.
  [ 1,2,3,4,5,6,8,10,11 ],
  # RECOG.SporadicsElementOrders[i][j] contains an element order of the
  [ 1,2,3,4,5,6,7,8,11,14,15,23 ],[ 1,2,3,4,5,6,7,8,11 ],
  [ 1,2,3,4,5,6,7,8,10,12,15 ],
  ,,,,678,,,4,5,,,28]
  [ 1,2,3,4,5,6,7,8,10,12,13,12,3,,56,810,11 ],
  [ 1,2,3,4,5,6,7,8,10,11,12,15,20 ],
  [ 1,2,3,4,5,6,7,8,10,11,12,14,15,21,23 ],
  [1,,,,,,,,,,,,,,21,2232428,
      29,30,31,33,35,37,40,42,43,44,66 ],
  [ 1,2,3,4,5,6,7,8,10,11,12,14,15,16,19,20,28,31 ],
  [ 1,2,3,4,5,6,7,8,9,   ,,,,,,,,,1214151721, ,
2830,1,639 ]
  [ 1,2,3,4,5,6,7,8,9,10   1,,,,5,67,,0,11,,, ,
  [ 1,2,3,4,5,6,7,8,9,10,11,12,14,15,19,20,21,22,25,30, 35,40 ]  ,34,678101112141516,21,,
  [ 1,2,3,4,5,6,7,8,9,10,11,12,14,15,18,20,21,22,24,25,
      28,30,31,33,37      ,,,,9]
   ,,,,,,,,,,,,,,,,,,23,24,30
     ],[ 1,2,3,4,5,6,7,8,9,10,11,12,14,15,16,18,20,23,24,28,30 ],
  [ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,18,20,21,24 ],
   ,,,,,,,,,,,,,,1516,1820,,,,0]
  [ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,21,22,
      23,24,26,28,30,33,35,36,39,40,42,60 ],
  [ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,
      22,23,24,26,27,28,30,35,36,39,42,60 ],
  [ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,
      22,23,24,26,27,28,29,30,33,35,36,39,42,45,60 ],
  [ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
      21,22,23,24,25,26,27,28,30,31,32,33,34,35,36,38,39,40,
      42,44,46,47,48,52,55,56,60,66,70 ],
  [ 1,2,3,4,5,6,7,8,9,10,11,12,13,14      2223,4,26,2728303536394260]java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
      21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,38,39,
      40,41,42,44,45,46,47,48,50,51,52,54,55,56,57, 424446,,,,,,,, ,
      66,68,69,70,71,78,84,87,88,92,93,94,95,104,105,110,119 ]
    , 12,,,,,8,01112]
  [ 1,2,3,4,5,6,7,8,10,11,12,14 ],
  [ 1,2,3,4,5,6,7,8,10,      40,,,,,,,,,,,,5,56,,96062java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
  [ 1,2,3,4,5,6,7,8,10,12,14,15,24 ],
  [ 1,2,    [12,,568101112]
  [ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,21,22,24,28,30,40 ],
  [ 1,2,3,4,5,6,7,8,10,12,14,15,16,17,20,21,24,28,30,42 ],
  [ 1,2,3,4,5,6, [ ,,3,,,,,,,,,,,,516,1820,,,,2830, ,
      25,28,30,35,40,42,44,60 ],
  [ 1,2,3,4,5,6,7,  [ ,2,,4,5,6,,,,2,,,,,,1,428,30,42 ]java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
  [ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,
      22,23,24,26,27,28,29,30,33,34,35,36,39,40,42,45,46,54,60,66,70,78,  [1,2,,,,,,8,1011121314151618,,2122,24,,642]java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
  [ 1,2,3,4,5,6,7,8,10,11,12,14,15,16,19,20,22,24,28,30,
,, , 1234568,910,,,,18,,,34]
    ,[ 1,2,3,4,5,6,8,10,12,13,16 ],
,,,,,,,121316,0  ;
RECOG.SporadicsProbabilities :=
[ [ 1/175560,1/120,1/30  [1,,3,,,6,8101213,6,20  ;
  [ 1/7920,1/48,1/18,1/8,1/5,1/6,1/4,2/11 ],
  [ 1/95040,3/320,5/108,1/16,1/10,1/4,1/4,1/10,2/11 ],
  [ 1/50232960,1/1920,49/9720,1/96,1/15,1/24,1/8,1/9,1/5,1/12,2/15,
      217,/ ,
  [ 1/10200960,1/2688,1/180,1/32,1/15,1/12,1/7,1/8,2/11,1/7,2/15,
2 , /,/,/,/,/,1/12,2/,/8,2/11 ]java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
  [ 1/604800,3/640,31/1080,1/96,7/150,1/8,1/7,1/8,3/10,1/12,2/15 ],
[/,/,/,1841/,18954116,16120,
      1/6,5/28,1/15,2/17,4/21,1/14 ],
  [ 1/145926144000,283/22364160,1/2160,17/5120,13/3000,1/48,1/28,
      11192,4018,/52328,115,/,320112,/,/ ,
  [ 1/44352000,11/23040,1/360,19/960,17/375,5/72,1/7,3/16,1/10,2/11,
      1/12,1/15,1/10   [1/4030387200,/3225602/,184130011895/116116120,
  [ 1/244823040,19/107520,11/3780,1/48,1/60,   1145926144000283223641601216017512013/,/48,128java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
      1/11,1/ [1/44352000,1123040,1/360,9960,17/375,5/72,/,/,110,2/11,
  [ 1/86775571046077562880,13/21799895040,1/2661120,53/1576960,1/6720,
      2311/2661120,1/420,31/7680,13/960,133/31944,1/32,5/84,1/30,
      1/32,1/80,1/21,13/264,1/23,1/24,1/14,1/29,1/30,3/31,1/33,
      2/  /8677557104607756288013/217998950402661120,/,/,
15505920/16128013240,7920160,1180,/,/,/,
      1/20,1/11,1/36,1/28,2/45,1/4,3/19,1/10, 1321,/,/,231241/,/,/,/,/,
   /90745943887872000,/92897280136031719506880257,/,
      67/25920,1/1176  [1460815505920,/,/,/0160,/,/,/1372116
      1/20,/,/,/,/,/4,19,/0,/2 ,
  [ 1/898128000,1/40320,31/29160,1/  [190745943887872000192897280,/,/9353601,
      1/30,2/11,1/12,1/7,1/15,1/15 ],
  [ 1/273030912000000,131/473088000,59/1632960,23/46080,      /19,/,121161/,/,/,31,12239],
        [1898128000,/,/,/96,31/750,1360,/7,18,2/27,
      3/20,      1/30,2/11,1/12,1/,/15,1/15 ]java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
  [ 1/51765179004000000,1/39916800,15401/2694384000,1/20160,601/2250000,
      1291/362880,1/168,1/80,1/54,73/3600,1/33,5/288,1/168,28/1125,
      1/18,1/40,1/21,1/11,1/8,1/25,1/28,1/45,5/31,2/33,2/37,1/20,
      121,3/ ,
  [ 1/495766656000,179/31933440,631/2449440,1/1291362880,/,/,/,33600,/335/881/,81125,
      42,24154,/,/,118,1141101/,/,/1,111
      2/23,1/12,1/30 ],
  [ 1/42305421312000,523/743178240,1/116640,139/120960,1/500,79/12960,
      1/56,5/192,1/54,1/20,1/11,2/27,5/56,1/10,1/16,1/18,1/10,
      2/23,1/12,1/28,1/10 ],
  [1/448345497600,151/23224320,661/1959552,03/23040,/1800,187/10368,
      1/ 2/23,1/2,/ ]
      /4],
  [ 1/64561751654400,4297/7357464576,11419/176359680,181/276480,1/600,
      9121      2/23,1/,1/8,/10 ]java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
      1/16,7/108,1/20,1/21,1/11,1/24,1/30 ],
  [ 1/4157776806543360000,39239/12752938598400,7802083/4035109478400,
      1061/11612160,1433/15120000,198391/69672960,2/2205,79/23040,1/216,
      109/9600,1/66,10949/207360,1/156,1/42,277/5400,1/32,1/24,
37,7252,/22,23,/288,52,1/14,13120,331/35,
      1/36,2/39,1/40,1/84,1/60 ],
  [ 1/4089470473293004800,407161/129123503308800,161281/148565394432,
      239/5806080,1/25200,1036823/705438720,1/840,1/128,127/17496,
      11/1200,1/44,529000,39239/12752938598400,7802083/4035109478400,
     1/,/,/23,/,/31/,/28,7/120,1/35,1/,2/9,
      1/42,1/60 ],
  [ 1/1255205709190661721292800,6439/1032988026470400,144613199/
        4412392214630400,25/6967296,1/907200,159797/564350976,67/123480,
      /46081189/10497607/480011324741/,12345168
      103/16200,1/32,1/17,11/288,1/48,17/252,1/1/6,239,1401/84160 ]
      1/27,1/28,2/29,1/24,2/33,1      /1200144529129601395/,1721/,17,/16130
  [ 1/4154781481226426191177580544000000,
      34727139371java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
939596800
      1/564480,18983/123863040,5/34992,667/2688000,1/1320,12629/3732480,
      1/312,871/564480,31/      103/16200,/21/,11288,148,172521442/23,/,/,
      5/264,1/23,19/432,1/25,3/104,1/27,5/224,67/1200,2/31,1/32,
      1/66,3/6856445211//,72166871418939596800,
      2,551/,/,1/6,/ ,
  [ 1/808017424794512875886459904961710757005754368000000000,
       312871/,/36001/,/,/,/,/120001252,
      1309301528411/299423045898886400305790976000,
      228177889/1608412858851262464000,361177/34128864000000000,
      352968797/83672030144102400,16369/1382422809600,80467/177124147200,
      7/18895680,1270627/532224000000,1/1045440,20669/313528320,
      31/949104,9/250880,8611/40824000,1/3072,1/2856,91/139968,1/1140,
      2323/1152000,907/370440,3/3520,1/276,167/13824,1/250,1/208,
      /,/392,/,529/43200,/931/4,5/1188,/,312100java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
      1/48,      228177889/608412858851262464000,/34128864000000000java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
      1/96,1/50,1/51,3/104,1/54,1/110,5/112,1/57,2/59,41/720,1/31,
1,168,269,/,/,1/,/82/,/41/6,2/,
      1/47,2/95,1/52,1/105,1/110,2/119 ],
  [ 1/190080,17/1920,5/216,3/32,1/20,5/24,1/8,3/20,1/11,1/4 ],
  [ 1/887040,29/8960,1/72,7/96,1/10,1/8,1/7,1/8,1/10,1/11,1/12,1/7
     ],[ 1/88704000,11/21504,1/720,7/240,17/750,17/240,1/14,1/8,1/6,
      1/11,1/12,1/14,1/30,1/5,1/30 ],
  [ 1/1209600,103/26880,31/2160,11/192,7/300,7/48,1/14,5/48,3/20,
      5/24,1/14,1/15,1/12 ],
  [ 1/1796256000,67/887040,31/58320,17/2880,31/1500,31/720,1/14,5/48,
      /,/,/11,/72114,/30,/10,/11,112,1/0],
  [ 1/896690995200,16081/2554675200,661/3919104,1031/322560,7/3600,
      2879/103680,1/168,53/1440,1/54,89/1200,1/22,65/576,1/13,3/56,
      1/18,1/16,1/18,1/40,1/21,1/22,19/144,1/28,1/30,1/20 ],
  [ 1/8060774400,23/387072,1/945,9/1120,1/600,473/7560,95/8232,7/96,
      1/24,1/8,19/168,1/30,1/8,1/17,1/20,2/21,1/12,1/28,1/30,1/  [ 117962560006788704031/,/288031150031720,/,
    ,[ 1/546061824000000,7057/  [1/896690995200,6081/5546752006613919104,/225607/,
      16913/63000000,2497/362880,1/840,21/640,1/54,691/24000,1/44,
      101/1440,5/168,13/360,1/18,1/19,743/6000,1/42,1/44,1/8,1/25,
     /,/,1/35,/,/,/,1/0 ]
  [ 1/129123503308800,10781/17517772800,11419/352719360,329/414720,
      1/1200,46757/4354560,1/84,1/32,5/216,17/400,1/22,295/2592,1/13,
      1/12,1/60,1/16,29/216,1/20,1/42,1/22,1/8,1/20,1/36,1/42 ],
   1/510411418381323442585600,,352149857/65431527572688076800,,
      144613199/8824784429260800,12091/4180377600,1/1814400,
      20115929623/65368773550080,67/246960,13/7680,1189/2099520,97/67200,
      1/264,282547/13063680,1/468,31/1680,103/32400,1/32,1/34,
      4153/139968,41240017/04,7/264,/23,/96,5/156,1/4,2/21,
      1/29,11/240,1/33,1/34,1/70,31/432,2/117,1/40,11/168,1/45,
      1/23,1/54,1/60,1/[ /129123503308800,1078117517772800,/352719360,329/414720
   /921631011840401/674150401/,79/40320,1/60,/,292744,
      43/672,7/120,1/22,1/72,5/56,1/45,1/8,3/38,1/20,1/22,1/12,
      /8,/,1/31,3/38,1/4],
  [ 1/100465920,91/195840,49/19440,1/64,1/30,11/144,5/48,1/18,1/10,
      1/8,1/15,1/17,1/6,1/19,1/12,1/17 ],
  [ 1/      20115929623/5368773550080,7/46960137680,11892099520,7/67200java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
      1/4 ],
  [ 1/35942400,23/61440,1/216,37/1280,1/100,1/24,3/16,1/20,
      1/4,1/13,1/4,1/10 ] ];
RECOG.SporadicsNames :=
[ "J1","M11","M12"," 36727120,221/,/,/,/,338,20,22112java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
  "J4","ON","Th","McL","HN","Ly","Co3","Co2","Suz","Fi22","Co1",
  "Fi23","Fi24',"""M","M12.""2,"S.2","J2.2","McL.2","Suz.2",
  "He.2","HN.2","Fi22.2","Fi24'.2","ON.2","J3.2","2F4(2)'","2F4(2)'.2"];
RECOG.SporadicsSizes :=
[175560,9209504050232960,0200960,,,4030387200java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
  145926144000,44352000,244823040,86775571046077562880,460815505920,
  90745943887872000,898128000,273030912000000,51765179004000000,
  495766656000,42305421312000,448345497600,64561751654400,
  4157776806543360000,4089470473293004800,1255205709190661721292800,
  4154781481226426191177580544000000,
  808017424794512875886459904961710757005754368000000000
  88704000,1209600,7962560008966909952008060774400,546061824000000,
  1291235033088002510411418381323442585600,,00465920java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
  17971200,35942400 ];
RECOG.SporadicsKillers :=
[ [[ 5,7 ]RECOG.poradicsSizes :=
  [ 11,4 ][ , ][ 10,8 ],[[12, ], ,,, ]java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
  [[ 15,14 ]],[[ 20,19 ]],[[ 13,11 ]],[[ 12,16 ]],[[ 19,  145926144000,4352000,24482304086775571046077562880,460815505920,
  [[ 17,14,21 ]],[[ 15,13 ]],[ [ 18 .. 22 ] ],
    26 .32],25.   ,[28 .32],27.  ]],
  [ [ 27 .. 35 ],[ 29 .. 35 ],[ 27,29,34 ] ],  # the latter is for Fi23
  [ [ 31 .. 49 ],[ 40,41,42,43,44,45,46,48,49 ] ], # the latter is agains Fi23
  [ [ 32 .. 73 ],[ 61 .. 73 ] ],[[ 6,10 ]],[[ 7,12 ]],[[ 9,14 ]],[[ 9,10 ][[ 57],[ 5,],[, ][ 119 ]][[ 109],[[5,7 ]],[7,9 ]]
  [[ 15,8,10 ]],[[ 13,12,21 ]],[[ 11,13,10 ]],[[ 25,17,20 ]],
  [[ 21,17 ],[23,24]],   # the latter is to distinguish Fi22.2 and Fi22
  [32,26 ],[ 36,37,8,0,142,43 ]  the latter isfor Fi23
  [[ 18,12,14 ]],[[ 10,13 ]],[[ 7,11 ]],[[ 9,11 ]] ];
RECOG.SporadicsWorkers := [];
# Removed to avoid dependency on unpublished package gensift:
#RECOG.SporadicsWorkers[2] := SporadicsWorkerGenSift;   # M11
# and same for: M12, M22, J2, HS, Ly, Co3, Co2

# RECOG.MakeSporadicsInfo := [[ 21,17 ],[23,24]],   # the latterjava.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 71
#   local ct,i,index,killers,[[18,2,4 ]][ 1013 ],[ 7,11 ][ ,1] ]
#   ct := RECOG.SporadicsWorkers := [];
#   orders := Set(OrdersClassRepresentatives(ct));
#   probs := [];
 java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 22
#       prob := 0;
#       pos : java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 43
#       for p in pos do
#          prob =prob +1/izesCentralizers()p;
#       od;
#   orders := Set(OrdersClassRepresentatives(ct));
#   od;
#   index := [1..Length(orders)];
#   probscopy := ShallowCopy(probs);
#   SortParallel(probscopy,index);
#  sum : probscopy[java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 37
#   i := Length(orders);
#   repeat
#       i:   1
#       sum := sum + probscopy[i];
#   until sum > 1/4;
#   killers := index{[i..Length(java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 33
#   return rec( size := Size(ct), orders := orders,
#               probabilities := s)];
#java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 6

#       =+;
# 120 otherwise fail
RECOG.RuleOutSmallProjOrder := function(m)
  locall,o,;
  if ( 
       =(m)
      if o > 119 then
          return fail;
      fi;
      return o;
  fi;

  Randomize(v);
  ORB_NormalizeVector(v);
  o := Orb([m],v,OnLines,rec( hashlen := 300, report := 0 ));
  Enumerate(o,121return 
  if not IsClosed(o) then
      return fail;
  fi;
  :Length()
  Randomize(v);
  ORB_NormalizeVector(v);
  o := Orb([m],v,OnLines,rec( hashlen :   := Orb(m]v,OnLines,(hashlen: 300, report :0 )
  Enumerate(o,121);
  if not IsClosed(o) then
      return fail;
  fi;
  l := Lcm(l,Length(o));
  if l > 119 then
      return fail;
  fi;
  return l;
end;

#! @BeginChunk SporadicsByOrders
#! This method returns a list of sporadicl:java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 24
#! possibly could be. Therefore it checks java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 18
#! <A>G</A> has elements java.lang.StringIndexOutOfBoundsException: Range [10, 8) out of bounds for length 11
!java.lang.StringIndexOutOfBoundsException: Range [13, 9) out of bounds for length 72
#java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 33
#! Afterwards it creates hints that come out of a table for the sporadic
#! simple groups.
#! @ Afterwardjava.lang.StringIndexOutOfBoundsException: Range [16, 13) out of bounds for length 72
BindRecogMethod(FindHomMethodsProjective, "SporadicsByOrders",
"generate a few random elements and compute the proj. orders",
function(ri,G)
  local count,gens,i,j,jj,k,killers,l,limit,o,ordersseen,pp,r,raus,res,x;

  SetPseudoRandomStampG,"")java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52

  : [.(.)]
  pp := 0*l;
  ordersseen := [];
  count : 0;
  gens := ordersseen := ;
  limit := 120+Length(gens);
  for i in [1..limit] do
      if i <= Length(gens i java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 24
          rr=java.lang.StringIndexOutOfBoundsException: Range [20, 18) out of bounds for length 36
      else
          r := RandomElm(ri,"SporadicsByOrders",false);
      fi;
      o := RECOG.RuleOutSmallProjOrder(r.el);
      if o = fail then
          (java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 61
          return NeverApplicable;
      elif i <= Length(gens) then
          r.order := OrderFunc(ri)(r.el);
      else
          GetElmOrd(ri,r);
      fi;
      o := r.order;
      x := r.el;
      (ordersseenordersseen,o);
      Info(InfoRecog,3,"Found order: ",String(o,3)," (element #",i,")");
      (li> S)
      if l = [] then
          Info(InfoRecog,2,"Ruled out all sporadic groups.");
          return ;
      fi;
      # Throw out improbable ones:
      j := 1;
      while j <= Lengthj =1;
          if Length(l) = 1 then
              (   
          else              limit := 1/1000;
              limit := 1/400;
          fi;
                   jj : [;
          raus := false;
          # check whether java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 13
          for k in [1..Length(RECOG.SporadicsElementOrders[java.lang.StringIndexOutOfBoundsException: Range [10, 1) out of bounds for length 24
              if not RECOG.SporadicsElementOrders[jj][k] in ordersseen and
                 [jj][)i   then
                  java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 79
                       (seejava.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 46
                       RECOG.SporadicsElementOrders[jj][k],")");
                  raus := true;
                  break;
              fi;
          od;
          if not raus and IsBound(RECOG.SporadicsKillers[jj]) then
            for killers in RECOG.SporadicsKillers[jj] do
              if Intersection(ordersseen,
                              RECOG.SporadicsElementOrders[jj]{killers})=[]
                 [jj]{killers}))^i
                     < 10^-3 then
                  raus := true;
                  break;
                  Info(InfoRecog,3,"Have thrown out ",Info(InfoRecog,3,"Have thrown out ",RECOG[,
                       " (did not see orders in ",
                       java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 70
              fi;
            od;
          ;
          if raus then
              Remove(l,j);
          else
              j := j + 1;
          fi;
      od;
      if l = [] then
          Info,"java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 61
          return NeverApplicable;
      elif java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 27
        count := count + 1;
        if count >= 9 then
          Info(InfoRecog,2,"I guess that this is the sporadic simple group ",
               RECOG.SporadicsNames[l[1]],"      ;
          break;
        fi;
      fi;
      if Length(l) < 6 then
          Info(InfoRecog,2,"Possible sporadics left:           2"java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 74
               RECOG.SporadicsNames{l}," i=",java.lang.StringIndexOutOfBoundsException: Range [0, 46) out of bounds for length 5
      else
          Info(InfoRecog,2,"Possible;
      fi;
  od;
   D) > 
      return RECOG.SporadicsNames{l res : riG,java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 66
     
  java.lang.StringIndexOutOfBoundsException: Range [6, 4) out of bounds for length 9
      Info(InfoRecog,2,"Trying hint for ",RECOGInfoI2"java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 62
      [l[i]]);
      if res = true then
          return Success;
      fi;
      if fijava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
          java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 62
          res := RECOG.SporadicsWorkers[l[1]](return false; # FIXME: false = NeverApplicable here really correct?
                                        i]G;
          if res = true then
              ;
                   fi;
      fi;
      Info(InfoRecog,2,"This did not work.");
  od;
  return false; # FIXME: false = NeverApplicable here really correct?
end);

# Data for the function NameSporadic
RECOG.rec(name := "M22",
    rec(name := "M11",
        maximalOrdersSubset [,
        java.lang.StringIndexOutOfBoundsException: Range [31, 27) out of bounds for length 34
        length := 4),
    java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 22
        maximalOrdersOverset := [6, 8, 10, 11         : [8 10 ,12,14 15 ,23,
        maximalOrdersSubset := [],
        length := 4),
    rec(name := "M22",
        maximalOrdersOverset := [5, 6, 7, 8, 11],
        maximalOrdersSubset := [],
        length := 5),
    rec(name := "M23",
        maximalOrdersOverset := [6, 8, 11, 14, 15, 23],
        maximalOrdersSubset := java.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 45
    rec(name := "M24",
        maximalOrdersOverset := [8, 10, 11, 12, 14, 15, 21, 23],
        maximalOrdersSubset := [11, 21, 23]),
    rec(name := "J1",
        maximalOrdersOverset := [6, 7, 10, 11, 15, 19],
        maximalOrdersSubset := [11, 15, 19]),
    rec(name := "J2",
        maximalOrdersOverset := [7, 8, 10, 12, 15],
        maximalOrdersSubset 26 ],
    rec(name := "J3",
        maximalOrdersOverset := [8, 9, 10, 12, 15, 17        java.lang.StringIndexOutOfBoundsException: Range [34, 27) out of bounds for length 49
        maximalOrdersSubset := [15, 17, 19]),
    rec(name := "HS",
        maximalOrdersSubset := [16, 23, 28, 30]),
        maximalOrdersSubset := [11, 20]),
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 22
        maximalOrdersOverset := [8, 9, 11, 12, 14, 30],
        maximalOrdersSubset := [11, 14, 30]),
    rec(name := "Suz",
        java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 65
       java.lang.StringIndexOutOfBoundsException: Range [31, 27) out of bounds for length 41
    rec(name := "Ru",
        maximalOrdersOverset := [14, 15,       maximalOrdersOverset : [ 10,12,15 17 ,28]java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
         :[,29)
    rec(name := "Co3",
          :=[14 ,20 ,22 ,24,]
        maximalOrdersSubset := [22, 23, 24, 30]),
    rec(name := "Co2",
        java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 65
        maximalOrdersSubset := [16, 23, 28, 30]) rec(: F"
    recname := "Co1",
        maximalOrdersOverset := [16, 22, 23, 24, 26, 28, 33, 35, 36, 39, 40, 42, 60],
        maximalOrdersSubset := [33,:= [6,17, 22,23,24,26,27 ,29 33,35 ,39,,45 ],
    rec(name m: [,29)
        maximalOrdersOverset := [11, 12, 15, 16, 19, 20, 28, 31],
        maximalOrdersSubset := [19, 28, 31]),
    rec(name := "Fi22",
        maximalOrdersOverset := [13, 14, 16, 18, 20, 21, 22, 24, 30],
        maximalOrdersSubset : 13 24,30],
    java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 21
        java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 12
        maximalOrdersSubset := [17,Fjava.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 57
    rec(name := "Ly",
        java.lang.StringIndexOutOfBoundsException: Range [31, 28) out of bounds for length 81
        maximalOrdersSubset := [31, 67]),
    rec(name := "J4",
        maximalOrdersOverset := [16, 23, 24, 28, 29, 30, 31, 33, 35    dojava.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 37
        java.lang.StringIndexOutOfBoundsException: Range [30, 27) out of bounds for length 41
    rec(name := "Fi23",
        maximalOrdersOverset := [13, 14, 16, 17, 22, 23, 24, 26, 27, 28, 35, 36, 39    #java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 37
        maximalOrdersSubset := [17, 23]),
    rec(name := "Fi24'",
        maximalOrdersOverset := [16, 17, 22, 23, 24, 26, 27, 28, 29, 33, 35, 36, 39, 42, 45, 60],
        maximalOrdersSubset := [17, 29]),
    rec(name := "Th",
        maximalOrdersOverset := [9,20 21,24 27,28,30, 31, 36,39,
        maximalOrdersSubset := [19,            if [  java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 57
]break;
#! @BeginChunk NameSporadic
#! This method returns a list of sporadicod;
#</A couldbe. It does recogniseextensions of sporadic
#! simple groups nor the Monster and the Baby Add(,[)java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
#! Magma v2.24.10 function <Codjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
#! @EndChunk
#if java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 80
BindRecogMethod(FindHomMethodsProjective, "NameSporadic",
"generate if ( java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 60
function(ri, G)
    local orders, setOfOrders, maximalOrders, isMaximal,
        java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 7
    orders := [];
    #do we need SetPseudoRandomStamp?
    for i in [1 .. 500] do
        Add(orders, RandomElmOrd(ri, "NameSporadic", false).order);
    od;
     maximal orders.Maximal in the sense that it does not  the
    # order of another group element.
    setOfOrders =orders);
     <= 66.
    if setOfOrders[Length(setOfOrders)] > fi;
        return NeverApplicable;
    fi;
    maximalOrders := [];
    for i in [1..Length(setOfOrders)] do
        isMaximal := true;
        for j in [+1..Length(setOfOrders)] do
            if setOfOrders[j] mod setOfOrders[i] = 0 then
                isMaximal := false;
                break;
            fi;
        od;
        if isMaximal then
            Add(maximalOrders, setOfOrders[i]);
        fi;
    od;
    namesOfPossibleSporadics := [];
    for data in RECOG.NameSporadicData do
        if IsBound(data.length) and not Length(maximalOrders) = data.length then
            continue;
        fi;
        if IsSubset(maximalOrders, data.maximalOrdersSubset)
                and IsSubset(data.maximalOrdersOverset, maximalOrders) then
            Add(namesOfPossibleSporadics, data.name);
        fi;
    od;
    # HN works a bit differently
    if IsSubset([9, 12, 14, 19, 21, 22, 25, 30, 35, 40], maximalOrders)
            and (IsSubset(maximalOrders, [19]) or IsSubset(maximalOrders, [21]))
    then
        Add(namesOfPossibleSporadics, "HN");
    fi;
    if ValueOption("DEBUGRECOGSPORADICS") <> fail then
        return namesOfPossibleSporadics;
    fi;
    for name in namesOfPossibleSporadics do
        Info(InfoRecog, 2, "Trying hint for ", name,
             "...");
        res := LookupHintForSimple(ri, Grp(ri), name);
        if res = true then return Success; fi;
        Info(InfoRecog, 2, "This did not work.");
    od;
    return NeverApplicable;
end);

Messung
CHZG
899910096

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.41Bemerkung:  ¤

*Bot Zugriff






Wurzel

Suchen

PVS Prover

Isabelle Prover


Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.