Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/lib/   (GAP Algebra Version 4.15.1©)  Datei vom 18.9.2025 mit Größe 70 kB image not shown  

Quelle  grpperm.gi   Sprache: Shell

 

#############################################################################
##
##  This file is part of GAP, a system for computational discrete algebra.
##  This file's authors include Heiko Theißen.
##
##  Copyright of GAP belongs to its developers, whose names are too numerous
##  to list here. Please refer to the COPYRIGHT file for details.
##
##  SPDX-License-Identifier: GPL-2.0-or-later
##


#############################################################################
##
#M  CanEasilyTestMembership( <permgroup> )
##
InstallTrueMethod(CanEasilyTestMembership,IsPermGroup);


#############################################################################
##
#M  CanEasilyComputePcgs( <permgroup> )
##
##  solvable permgroups can compute a pcgs. (The group may have been told it
##  is solvable without actually doing a solvability test, so we need the
##  implication.)
java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72

#M  CanComputeSizeAnySubgroup
InstallTrueMethod(CanComputeSizeAnySubgroup,IsPermGroup);

#############################################################################
##
#M  AsSubgroup( <G>, <U> )  . . . . . . . . . . . .  with stab chain transfer
##
InstallMethod(             base,  #  the
    size,# the size of the group generated by <inds>
    functionorbs #java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
    local S;
    # test if the parent is already alrightone,# identity of `P'
    if HasParent(U) and IsIdenticalObj(Parent(U),G) then
                        
    ;

    if             ,         # one generator from <gens>
      return fail;
    fi;
    S:= c,    # other point in orbit
    UseIsomorphismRelation( U, S )java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
    UseSubsetRelation( U, S );
    if HasStabChainMutable(U)then
         = [];
    fisize := 1;
    return S;
end );

#############################################################################
##
#M  CanEasilyComputeWithIndependentGensAbelianGroup( <permgroup> )
##
InstallTrueMethod(CanEasilyComputeWithIndependentGensAbelianGroup,
    

#############################################################################
##
#F  IndependentGeneratorsAbelianPPermGroup( <P>, <p> )  . . . nice generators
##
stallGlobalFunction( IndependentGeneratorsAbelianPPermGroup,
    function ( P, p )
    ,
            powsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            base,       # the base of the vectorspace
            for  inexp,exp-1.] do
             over the remaining generators
                    gens2 :=]java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
                         : gens[]java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
                        ;
            gens2,
            exp        
            g,          # one generator from <gens>
     # its power
            b,          # basepoint
            c,          Add powsg);
            i ,k     loop 

    # initialize the list of independent generators = size * java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
    inds := [];
    pows := [];
    base :###  Copyright of GAP belongs to its developers, whose names are too numerous;
    size := 1;
    orbsjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 2
    ##  CanEasilyTestMembership

    #############################################################################
    java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 2
    ##  imp

    # loop over the exponents
    exp := Maximum( List( gens, g -                    odjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
    for          Add(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        gens2= [];
         in1.gens)  java.lang.StringIndexOutOfBoundsException: Range [39, 40) out of bounds for length 39
            g := gens[j];
            ##

            IsAbelian,
             notnot
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 14
      returnfail;
                h :p #java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
            java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 15

            # if this is linear independent, add it to the generators
             ;
                ( g;
                Add( powsAdd(      p< 1
                
                java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 19
h;
                if not IsBound( orbs 
                    
                    []: [         Append(inds,
                fi;
                for c  in                     
                    for k  odjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
                        (orbsb,c ^ (h^k ;
                        trns[c^(h^k)] java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
                    od;
                


           java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
g)

            

                orb:= [d;

        # prepare for the next round
s:= gens2;
        newd := java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24

        ge :=(

    # return the independent generators
    inds  (gens    , java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
end          fornewmg]then

#############################################################################
##
#M  IndependentGeneratorsOfAbelianGroup( <G> )  . . . . . . . nice generators
##
while IsOne()
        [ IsPermGroupjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    function
                    m(]]
            
            # ofgroupsize
            gens,       # generators of <p>-Sylowsubgrouplargest>  java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 60
g,          onegenerator
                      # its order

    # loop over all primes
     : ;
    one:= One( G );
    for p  in Union( List            fst = [b ]
            g 
      ifforc   ShallowCopy(rbs              inorb  do

        # compute the generators for the Sylow <p> subgroup                for    gensdo
        gens := [];
        for g  in GeneratorsOfGroup( G                    
            o := Order(g);
while p0  doo:  / p;;
             = ;
            if not IsOne(g)  then java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 11

        # append the independent generators for the Sylow <p> subgroupjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        Append( inds,
                java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 11
                    GroupByGenerators ( 

      ;
    od;

    # Sort the independent generators by increasing order(orbs   );
    SortBy

    # return the independent generators ;
    g,          
end )            o          # its order

#############################################################################
##
#F  OrbitPerms( <gens>, <d> ) . . . . . . . . . . . . . orbit of permutations
##
InstallGlobalFunction(    in FactorsOrder() )do
      orb, ) then

        # get the largest point <max> moved by the group <G>
           m <minthen

        # handle fixpoints
        if         gens :[];
            return [ d ];
         in ( )do

        # start with the singleton orbit o p    od
        orb := [              : g;
        new                 IsOneg  then ( ,g;  java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
        new[dSortBy(inds,Order)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26

        # loop over all points found
        for pnt  java.lang.StringIndexOutOfBoundsException: Range [0, 2) out of bounds for length 0

            # apply all generators <gen>
            for gen  inmax =java.lang.StringIndexOutOfBoundsException: Range [10, 0) out of bounds for length 0
                imgjava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 25

                # add the image <img> to the orbit if it is new
                if new[img]  then
                    
                    new[imgjava.lang.StringIndexOutOfBoundsException: Range [12, 3) out of bounds for length 32
                fi;



        odlocal     java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 28
                #####################################################################java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 2
end );

#############################################################################
##
#F  OrbitsPerms( <gens>, <D> )  . . . . . . . . . . .  orbits of permutations
##
InstallGlobalFunction(
          # get the largest point <max> moved by the group <G>

        java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
        max :orbsod;
        # repeat until the domain is exhausted
        new =java.lang.StringIndexOutOfBoundsException: Range [27, 24) out of bounds for length 47
        orbs

        # repeat until the domain is exhausted
        fst
 do

            
             :[ fstjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
            #############################################################################
            dom[                for      

            # loop over all points found
            for pnt  in 

                # apply all generators <gen>
                for                     
                    img :  ^gen;

                    
                     java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
                        Add( orb
                        [ =java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
                        dom[img
                    

                od;

            od;

            # add the orbit to the list of orbits and take next point
"a permutation group"java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
                 >LargestMovedPoint java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 55

        od;

        # add the remaining points of <D>, they are fixed
 pnt D 
          if pnt>max then
            Add( java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
          ;
        od;

        return orbsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
end< )   .. 


#############################################################################
##
#M  SmallestMovedPoint( <C> ) . . . . . . .  for a collection of permutations
##
BindGlobal    -java.lang.StringIndexOutOfBoundsException: Range [22, 20) out of bounds for length 49
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

    min := infinityjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 2
    for [,
        NrMovedPoints( )
            
            if m < min
                java.lang.StringIndexOutOfBoundsException: Range [5, 3) out of bounds for length 17
            fi;
        fi;
    od;
    return
;

InstallMethod;
    ;
    truee )
    #M  \=( <G>, 
    SmallestMovedPointPerms );

java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 9
     notjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9

    [
    SmallestMovedPointPerms##


#############################################################################
##
#M  LargestMovedPoint( <C> )  . . . . . . .  for a collection of permutations
##
BindGlobal( "java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 5
    local   max 

     ;
    forG=                           (    do
        not (  
            m := LargestMovedPointPerm( gen
java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
                max i   java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
            ;
        fi;
    od;
     #
end );

InstallMethod( java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 5
   java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
    true,
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    LargestMovedPointPerms );

InstallMethod(#M  Enumerator( 
    "for     = java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 9
    [ IsEmptyjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
    LargestMovedPointPerms;


#############################################################################
##
#F  MovedPoints( <C> )  . . . . . . . . . .  for a collection of permutations
##
InstallGlobalFunction(  then
    local,,genpntjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28

    mov := [  ];
    for gen  infi =QuoIntpos,  )
        if gen <java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
ovedPoint gen).java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
                           
                if"for  ;
                    ( "NumberElemen"java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
                fi notnot(elm  
            od;
        fi;
    od;
    java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 2
end);

InstallMethodS .;
    [  Length g    java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 30
   MovedPointsPerms)

#############################################################################
##
    MovedPointsPerms  java.lang.StringIndexOutOfBoundsException: Range [28, 22) out of bounds for length 30

java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
function(p##
  return MovedPointsPerms([p]);
end);


#############################################################################
##
#M  NrMovedPoints( <C> )  . . . . . . . . .  for a collection of permutations

###############################################################################
    local mov, sma,

    mov := 0java.lang.StringIndexOutOfBoundsException: Range [30, 22) out of bounds for length 30
    java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 35
    = then
        return 0;
    fi;
    fori=ist(,ength
      for:#M  OrbitsMovedPo( G 
        ( " a ,[IsPermGroupjava.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
          mov:= mov +local o,;
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 16
        fi;
        :List)
    od;
    java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 15
end );

InstallMethod( NrMovedPoints,
 :  java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
    [ IsPermCollectionjava.lang.StringIndexOutOfBoundsException: Range [0, 39) out of bounds for length 11
    NrMovedPointsPerms java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0

##
    "anemptyjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
     .:]java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
         )


#############################################################################
##
#M  LargestMovedPoint( <G> )  . . . . . . . . . . . . for a permutation group
##
stMovedPoint
    ";
   
    [ IsPermGroupfi
    


#############################################################################
##
#M  SmallestMovedPoint( <G> ) . . . . . . . . . . . . for a permutation group
##
InstallMethodifIsEqualSet(  G , GeneratorsOfGroup(H) ) java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
    "for permutation group"java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
    ifHasStabChainMutable()or HasStabChainImmutable(H) then
    [ IsPermGroup ], 0,
    G -> SmallestMovedPoint( GeneratorsOfGroup( G ) oup(),gen->gen in H);


#############################################################################
##
#M  MovedPoints( <G> )  . . . . . . . . . . . . . . . for a permutation group
##
InstallMethod( MovedPoints,
    "for a permutation group",
     true,
    [ IsPermGroup ], 0,
    G -> MovedPoints


#############################################################################
##
#M  NrMovedPoints( <G> )  . . . . . . . . . . . . . . for a permutation group
##
InstallMethod 
    for group,
    true,
    [ IsPermGroup ], 0,
    G -> NrMovedPointstrue,


#############################################################################
##
#M  OrbitsMovedPoints( <G> )
##
InstallMethod( OrbitsMovedPoints, "for a permutation group", [IsPermGroup],
unction(G)
local o,i;
  o:=Orbits(G,MovedPoints(G));   );
  o:=Listjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  List(o,IsRange); # save memory if long orbits
  Sort(o);
  MakeImmutableo)java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
  for i 
    (,true)
  od;
  SetIsSSortedList(o,true);
  java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 11
java.lang.StringIndexOutOfBoundsException: Range [4, 3) out of bounds for length 30


#############################################################################
##
#M  \=( <G>, <H> )  . .  . . . . . . . . .  test if two perm groups are equal
##
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 79
( G,HiG)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
  # avoid new stabilizer chains if they are not computed yet
)     : .java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 22

  if not (HasGeneratorsOfGroup(G) and java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 19
     len ;
  fieelm= 

  if java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
    or S := S.;
    return false;
  fi;

  IsEqualSet ajava.lang.StringIndexOutOfBoundsException: Range [27, 22) out of bounds for length 49
    return true;
      >,  java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 61

  # try to use one existing stab chainBindGlobal( "N"java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
  if HasStabChainMutable(H)en
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 18
  fi;
  return Size(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
end);



#############################################################################
##
#M  BaseOfGroup( <G> )
##

roup,img= .orbitP ,#   the
    true,
    [        
    G -> BaseStabChain# new generator list


#############################################################################
##
#M  Size( <G> ) . . . . . . . . . . . . . . . . . . size of permutation group
##
  F(,  java.lang.StringIndexOutOfBoundsException: Range [45, 42) out of bounds for length 50
"for   group,
    true,
    [ IsPermGroupreturnjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
    G->SizeStabChain (G)jj in) then


#############################################################################
##
#M  Enumerator( <G> ) . . . . . . . . . . . . enumerator of permutation group
##
BindGlobal( "ElementNumber_PermGroup"end)
    function( enum, pos )
    local   elm,  S     java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 70

    S := enum!.stabChain;
    elm    size:ptionsimit;java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
    n: pos;
    :=os - ;
    while Length(    p:=];      :=       
 = i))java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
=LeftQuotient
                       ( S, S.java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 31
        
         :    :(G(ase=);
    od;

    ifnot(java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
NumberElement    
    fi;
    return elm;java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
end );

BindGlobalPrint
    function( #        if inpar  then
    local#                         java.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 74

          
         Length(S#java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
    fi;

    pos := 1;
     = 1java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
    S := enum!.UseSubsetRelat C, G java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
#   ;
imgjava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 11
        
:java.lang.StringIndexOutOfBoundsException: Range [39, 8) out of bounds for length 11
          
          val := val * options.base := Base;
          elm ifjava.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 68
          bilizer;
        else
          return fail;
        fi;
    od;
    if elm <> Sjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        
    ;
    returnif##
java.lang.StringIndexOutOfBoundsException: Range [17, 6) out of bounds for length 6

InstallMethod( java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 20
#
    [ java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 65
function(G)
local          : java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 7
    
        ;
    p:=   
    while return rnd
      ejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ength
      ijava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
      Add(p,e,IsEmpty, java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
      ScInstallMethodjava.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 55
    od;
    Info        =java.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 35

    S:=java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 6
    e:=#M  ClosureGroup( (G, 
             java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 2
            "(G java.lang.StringIndexOutOfBoundsException: Range [56, 54) out of bounds for length 56
Length  >java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 71
             java.lang.StringIndexOutOfBoundsException: Range [27, 21) out of bounds for length 43
                                        
                              end,

             =  )
<0do
    S.ol:java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
    S.orbitposif java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 25
    for i in [1..Maximum(S.orbit       ForAlljava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
      (S.,)java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
      java.lang.StringIndexOutOfBoundsException: Range [10, 8) out of bounds for length 21
               ,:(java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 70
      fi;
    od;
    S:=java.lang.StringIndexOutOfBoundsException: Range [12, 10) out of bounds for length 74
  od;
   ;
end);

#############################################################################
##
#M  Iterator( <G> ) . . . . . . . . . . . . . . iterator of permutation group
##
InstallMethod    java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 66
    "            gensG := GeneratorsOf);
       java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
java.lang.StringIndexOutOfBoundsException: Range [11, 8) out of bounds for length 11
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 30
end);

InstallMethod   injava.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 61
    "for a permutation #    if DefaultStabChainOptions.tryPcgs
    [ IsPermGroup ],
#        if inpar  temp SubgroupNCjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
    return IteratorStabChain#            C := GroupByGenerators
end);

#############################################################################
##
#M  Random( <G> ) . . . . . . . . . . . . . . . . . . . . . .  random element
##
#          Add( gensN)
    "
    [ # make the base
    function: java.lang.StringIndexOutOfBoundsException: Range [29, 22) out of bounds for length 37
       ,;

    # go down the stabchain and multiply random representatives
    S := ifgensN :( java.lang.StringIndexOutOfBoundsException: Range [45, 43) out of bounds for length 51
    rnd identityjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
    while Length( Sthejava.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 69
        rnd := LeftQuotient java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 33
                               java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
        S := S.stabilizer
    od;

    # return the random element
    return rndnotorbits java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 6


#############################################################################
##
#M  <g> in <G>  . . . . . . . . . . . . . . . . . . . . . . . membership test
##
InstallMethod
    ":java.lang.StringIndexOutOfBoundsException: Range [43, 36) out of bounds for length 46
    true,
    [ IsPerm, java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 20
    if g = Onejava.lang.StringIndexOutOfBoundsException: Range [26, 24) out of bounds for length 32
         java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
    
                InstallMethod( ClosureGroup, "permgroup, element",true,
        return SiftedPermutation
      ()java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
end );


#############################################################################
##
#M  ClosureGroup( <G>, <gens>, <options> )  . . . . . .  closure with options
##
##  The following function implements the method and may be called even with
##  incomplete (temp) stabilizer chains.
"oClosurePrmGpf G, gens, )
    local   C,          # closure of < <G>, <obj> >, result IsPermGroup  ],0java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
            ,inpar,  # parent of the closure
            g,          # an element of gens
            o,          # order
            ,# new generator list
            chain;      # the stabilizer chain created

    options:=ShallowCopy(java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 25
    # if all generators are in <G>, <G> is the closure
    gens := java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
    if IsEmpty( gens )  then
        return G;
    fi;

    # is the closure normalizing?
    if Length(gens)=1 and
       ForAll(gens,i.     correctthen
      :ens1]
      if Size(Gjava.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 11
        o:=SetStabChainMutablejava.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 36
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
      else
        o:=First(Difference(##java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 39
        java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      fi
      options.size ;
      end );
    fi;

      if not IsSubset(G,U) then
                           java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 58
        = P,  )
    while not inpar  and
        P := Parent#    gensG := GeneratorsOfGroup( G );
        inpar :java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
    od;
    if inpar  then
         := GroupByGenerators( , (  java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
     (      java.lang.StringIndexOutOfBoundsException: Range [26, 24) out of bounds for length 59
         =java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 57
    fi;

   C>java.lang.StringIndexOutOfBoundsException: Range [56, 48) out of bounds for length 61

#AH 5-feb-96: Disabled (see gap-dev discussion).
#    if DefaultStabChainOptions.tryPcgs
#       and ForAll( gens, gen -> ForAll( GeneratorsOfGroup( G ),
#                   g -> g ^ gen in G ) )  then
#        if inpar  then
#            C := SubgroupNC( P,
#                         Concatenation( GeneratorsOfGroup( G ), gens ) );
#        else
#            C := GroupByGenerators
#                 ( Concatenation( GeneratorsOfGroup( G ), gens ) );
#        fi;
#        pcgs:=TryPcgsPermGroup( [ C, G ], false, false, false );
#        if IsPcgs( pcgs )  then
#          chain:=pcgs!.stabChain;
#          if inpar  then  C := GroupStabChain( P, chain, true );
#                    else  C := GroupStabChain( chain );           fi;
#          SetStabChainOptions( C, rec( random := options.random ) );
#
#          UseSubsetRelation( C, G );
#          return C;
#        fi;
#    fi;

    # make the base of G compatible with options.base java.lang.StringIndexOutOfBoundsException: Range [15, 13) out of bounds for length 41
    # java.lang.StringIndexOutOfBoundsException: Range [0, 19) out of bounds for length 14
    if IsBoundfori java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 30
        ChangeStabChain(             if not cnj in N  then
IsBound(.java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 65
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 7

    if java.lang.StringIndexOutOfBoundsException: Range [12, 24) out of bounds for length 15
               gens java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        options := ShallowCopy( C := ClosureGroup( C,recjava.lang.StringIndexOutOfBoundsException: Range [56, 53) out of bounds for length 59
        b :: java.lang.StringIndexOutOfBoundsException: Range [32, 29) out of bounds for length 35
        for g  in gens  do
              java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 68
                StabChainStrong( chain, [              =                  :=java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 46
            # force closure test
        od;
    else(.ndom:r;
        o:=ValueOption("knownClosureSize");
        IsIntthenl:=;
        chain 
    fi;

    java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 34
    java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 77
      if inpar  then  C := GroupStabChain( P, fi
                else  C        chain : rchain [;
    else
      if inpar  thenjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
lse C:  ,()            fi;
       =[,,,];
    fi;
    SetStabChainOptions( C, rec( ,k+2)4

    UseSubsetRelation( C,  fi
    return C;
end)java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6

therMethod;
    true,
[ andjava.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 62
    java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 20

InstallOtherMethod resultchain.java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 64
[            :java.lang.StringIndexOutOfBoundsException: Range [48, 39) out of bounds for length 56
ReturnFirst);

InstallMethod( ClosureGroup, "    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  [ #M  DerivedSubgroupifresult<c.java.lang.StringIndexOutOfBoundsException: Range [33, 31) out of bounds for length 37
 G java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
   (
  ,# random subproducts of generators

java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 56
        [ IsPermGroup    list, java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 45
function( G, gens )
  return DoClosurePrmGp N;
end );

java.lang.StringIndexOutOfBoundsException: Range [20, 18) out of bounds for length 69
[ D :java.lang.StringIndexOutOfBoundsException: Range [31, 24) out of bounds for length 30
function( G, g, options )
( , java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 27
end );

InstallOtherMethod( ClosureGroup, "permgroup, permgroup, options")
  [ IsPermGroup, IsPermGroup, IsRecord ]##
function( G
  return DoClosurePrmGp( G, GeneratorsOfGroup(   java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 37
end      (    H := GroupByGenerators( O()  ,  G 

java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 64
IsPermGroup, H));
ReturnFirst);

#############################################################################
##
#M  NormalClosureOp( <G>, <U> ) . . . . . . . . . . . . . . . . in perm group
##
BindGlobal("java.lang.StringIndexOutOfBoundsException: Range [12, 36) out of bounds for length 17
    local   f
            chain,       
            rchain
            options,    # options record for stabilizer chain construction
            ,# generators of the group <G>
            java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 15
                      
            genN,       # one generator of the group <N>
            cnj,        # conjugated of a generator of <U>
             java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
             java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 56

    odjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
    gensG := GeneratorsOfGroup( G );
    one:= One( G );

    # make a copy of the group to be closed
    N:= java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 51
    UseIsomorphismRelation(
RelationUStabChainOption)randomDjava.lang.StringIndexOutOfBoundsException: Range [69, 61) out of bounds for length 69
    SetStabChainMutable( N, D := DoNormalClosurePermGroup
     :java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
    if IsBound( optionsjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
                                  else  
    options.temp   := true;

    # make list of conjugates to be added to N
##  This  is  a most interesting function.   It  tests whether  a permutation
        gensN := [  ];
        for i  in [;
             =java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 59
            cnj   ##  Finding Composition Factors of Permn\eq10^,
                        (N),java.lang.StringIndexOutOfBoundsException: Range [41, 28) out of bounds for length 69
            if not local   ,          domainof<
                Add( gensN, java.lang.StringIndexOutOfBoundsException: Range [12, 1) out of bounds for length 39
            fi;
                      # force closure test
           
           N := java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
        fi;
     IsTrivial;

 alljava.lang.StringIndexOutOfBoundsException: Range [39, 35) out of bounds for length 77
    java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 7
gensN
    for genN  in      java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 15

        # loop over the generators of G   java.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 55
           notcomm C

                           Add( list, comm );
            cnj := genN ^
            if not cnj     java.lang.StringIndexOutOfBoundsException: Range [4, 10) out of bounds for length 7
                N := ClosureGroupelifSize(DerivedSubgroup ))<SizeG )  then
                Add( gensN, cnj );


        od;

    od;

    # Verify the stabilizer chain.
        =DoNormalClosurePermGroup java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
    if not IsBound( chain.orbits #############################################################################
        if IsBound( chain.aux )  then
#M  DerivedSubgroup( <G> )  . . . . . . . ##
        fi;
        result := chain.identity;
    elif random = 1000  then
        missing := chain.missing;
        correct := chain.correct;
        rchain  := SCRRestoredRecord( chain );
        result  
        if not IsPerm(result)             ,       # list of commutators
            repeat
                result := java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            until result <         false;
        fi;
        chain := rchain;
    
     if $d$ is a prime, <G> is simple
         IsBound(.nownBase random 
                    return ;
        else
             =[QuoIntd    25920 java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
       fijava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
        g : ( ,                 g := SCRRandomSubproduct( GeneratorsOfGroup( G ), One(
            param[2] := 2;
            param[           or (d =    d  21  Size(G         )#

java.lang.StringIndexOutOfBoundsException: Range [18, 14) out of bounds for length 63
                          ord   SizeAdd list,  );
                          chain.correct, chain.java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 19
        if java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 36
java.lang.StringIndexOutOfBoundsException: Range [41, 39) out of bounds for length 56
         
        chain := java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
fi
    SetStabChainMutable
    if # if we donStabChainOptionsD).random:=StabChainOptions(G).random;
        N := java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
    ;

    # give N the proper randomness
tions()andom=andom;

    # return the normal closure
    UseSubsetRelation( N, U );
    return N;
end );

InstallMethod( NormalClosureOp    fi;
IsIdenticalObj, I     # do the deterministic method; it will aresult
function(G,U)
  # test applicability
  ifnotIsSubsetGLength (G )) ] 
    TryNextMethod();
  fi;
  return60360],,java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
end);

#############################################################################
##
#M  ConjugateGroup( <G>, <g> )  . . . . . . . . . . . .  of permutation group
##
java.lang.StringIndexOutOfBoundsException: Range [76, 13) out of bounds for length 76
function( G, g )
local   , S

    H :=     java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 12
    if HasStabChainMutable) then
                60                         :()
      ConjugateStabChain( StabChainMutable( G ), S, g, g );
      SetStabChainMutable( S );
    elif HasSize(G) then
      SetSize(H,Size(G));
    fi;
    UseIsomorphismRelation( G, H );
    ;
end );

#############################################################################
##
#M  CommutatorSubgroup( <U>, <V> )  . . . . . . . . . . . . . for perm groups
##
InstallMethod( CommutatorSubgroupfi
        I,
            D :=: or ((t * (4*sm     0 and  )java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
    local   C,       # the commutator subgroup
    , closureof ,V
            doneCUV, # boolean; true if CUV is computed
,#
            v,       # random subproduct of V.generators
            comm,    # commutator of u,v##
            list,    # list of commutators
            i;       # loop variable

    # [ <U>, <V> ] = normal closure of < [ <u>, <v> ] >.
    C := TrivialSubgroup( U );
    doneCUV := false;

    # if there are lot of generators, use random subproducts
    if Length( # for large degree##  J. Symbolic Computation, 12:517--526, 1991.
       Length( GeneratorsOfGroup( V # idea but builds a pcgs on the way).
        repeat
           list :=BindGlobal", local   ,          java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 49
           for i in [1..10] do
               u            n ,       
               v := SCRRandomSubproduct( GeneratorsOfGroup( V ), One( V ) );
               comm := Comm( u, v );
                not comm  Cthen
                   ( list,comm ) ;
               ;
           od;
(list)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
              C := ClosureGroup( C, list, 
                                   java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
              if not doneCUV# first find a transitive representation for <G>
                   =ClosureGroup(, ;
              doneCUVtrue;
              fi;
              # force closure test
              StabChainOptions(C).random:=  gens:G;
               : DoNormalClosurePermGroup(CUV, #find  commutator
           fi;
        until IsEmptyfijava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
    fi;

    # do the deterministic method; it will also check correctness
st = [java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 15
     uinGeneratorsOfGroup U  
        for v  in GeneratorsOfGroup(        homA(fi
           comm := Comm( u, v );    ;
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
list comm ;
           fi;
        od;
    odw 
    if not IsEmpty( list )  then
        C:ClosureGroup( C, list, rec( random := 0,
                                           =java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
        if not doneCUV10newjava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 31
CUV=)
           doneCUV := true;
        fi;:,(cannotwhetherjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
        # force closure test
    java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
        :  returnjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
    fireturn truereturn true;

    return C;
end );

#############################################################################
##
#M  DerivedSubgroup( <G> )  . . . . . . . . . . . . . .  of permutation group
##
InstallMethod( DerivedSubgroupjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    function( G )
local  ,IsPcgsp then
            g, h,       # random subproducts of generators,.permpcgsNormalSteps
            comm,       # their commutator  java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
                   # list of commutators
            ;#java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34

    
    D:=TrivialSubgroup( G ;

    # if there are >4 generators, use random subproducts#java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
    if Length( GeneratorsOfGroup( G ) ) > 4 then
        repeat
            list := [];
            for i in [1..10] do
                g := SCRRandomSubproduct( GeneratorsOfGroup( G ), One
                : SCRRandomSubproduct(GeneratorsOfGroup  ,One(G))java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
                comm = Comm(g, hjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                ifor(#
                   
                ;
            
            if Length(list) > 0 then
 ClosureGroup, java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 0
                                           IsPrimePowerInt( d)then
              # force closure test
java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 57
         (randomjava.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 71
              else
                
              fi;
               D := DoNormalClosurePermGroup( G##
            fi;
         =[;
    fi;

    # do the deterministic method; it will also check random result
    list := [];
    for  in [2. Length( GeneratorsOfGroupG)  ]java.lang.StringIndexOutOfBoundsException: Range [0, 58) out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Range [38, 33) out of bounds for length 45
             comm := Comm(  IsPcgs(pcgs  ()java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 27
                           GeneratorsOfGroup( G   pcgs;
             if not comm in D then
                 Add( list#T form the description why TryPcgs... should also give a drived series. Thus
             fi;
         od;
    od;
    n
        D := ClosureGroup(D,list,rec( random := 0,# ##
                                        temp := true ) );
        # give D a proper randomness
       ifIsBound((G#     if   (not DefaultStabChainOptions.tryPcgs
          StabChainOptions(D).random:=StabChainOptions(G).random                    sIsSolvableGroup()andIsSolvableGroup() then
        else
ptions)random#     f  IsPcgs(pcgs )  
        fi;#     fijava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9

        #     if not HasDerivedSubgroup( G )  then
    fi;

    if HasIsNaturalSymmetricGroup(G) and     ;

    return #     return series;
end );

#############################################################################
##
#M  IsSimpleGroup( <G> )  . . . . . . . test if a permutation group is simple
##
##  This  is  a most interesting function.   It  tests whether  a permutation
##  group is  simple  by testing whether the group is  perfect and then  only
##  looking at the size of the group and the degree of a primitive operation.
##  Basically  it uses  the O'Nan--Scott theorem, which gives  a pretty clear
##  description of perfect primitive groups.  This algorithm is described  in
##  William M. Kantor,
##  Finding Composition Factors of Permutation Groups of Degree $n\leq 10^6$,
##  J. Symbolic Computation, 12:517--526, 1991.
##
InstallMethod( IsSimpleGroup,"       HasIsNilpotentGroup)and ()then
;
  fi
            hom,        # transitive constituent or blocks homomorphism
            d,          # degree of <G>
            n, m,       # $d = n^m$
            simple,     # list of orders of simple groups;
              # list of orders of transitive perfect groups
            s,     if not HasDe(  ) then

    # if <G> is the trivial group, it is not simple
    if IsTrivial(  :f;
        return java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 18
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7

    # first find a transitive representation for <G>
    D: ( ,SmallestMovedPoint(G  )
    if not IsEqualSet( MovedPoints( Gnew:=Comm(ens[i],nd and IsFinite)
        hom := ActionHomomorphism( G, D,"surjective" );
         Size        j+;
            return false;
        fi;
        G pcgsjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
    fi;

    # next find a primitive representation for <G>
     : (G,MovedPoints G ))java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
    while Length( D ) <> java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 14
        hom := ActionHomomorphism( G, D, OnSets,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        ( )<> Size(Image( hom#        [ IsList ], 0,
            return false;
        java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
              a:Random(l^b=(l,#( list[ 1])
        D := Blocks(newC##    fi;
    od;

     if not IsPcgs( pcgs )  then  return fail;
    D := MovedPoints( G );
    d := Length(
    n := java.lang.StringIndexOutOfBoundsException: Range [0, 24) out of bounds for length 17
    m := LogInt( d, n );
    if 10^6 < ifnew=InstallMethod(,"or,true,[IsPermGroup] 0java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82
        Error("cannot decideifF>java.lang.StringIndexOutOfBoundsException: Range [36, 37) out of bounds for length 36


 issimple
    G
        return truejava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 11

    # if $G = A_d$, it is simple (unless $d < 5$)
    elif  IsNaturalAlternatingGroup#############################################################################
        return 5 <= d;

    # if $G = S_d$, it is not simple (except $S_2$) java.lang.StringIndexOutOfBoundsException: Range [43, 30) out of bounds for length 58
elifjava.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 41
        return 2 =   ;

    # if $G$ is not perfect, it is not simple (unless $G = C_p$, see above)SetPcgsElementaryAbelianSeries,cgs;
     (       ;
        return false;

    # if $\|G\| = d^2$, it is not simple (Kantor's Lemma 4)
    elif  Size  fi S=GroupStabChain ,  )) ;
        return false;

    # if $d$ is a prime, <G> is simple
    elif  Group S, true  );
        return true;

    # if $G = U(4,2)$, it is simple (operation on 27 points)
 Size( G) =  ", true, [IsPermGroup ], 0,
        return true;

    # if $G = PSL(n,q)$, it is simple (operations on prime power points)
  (##
          or (d )
          or (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
          )  # PSL(5,3)
          or (d =    128 and        S          # <p>-Sylow subgroup of <G>, result(G)
         d=   SizeG) 8191^8191)2) # PSL(2,8191)
            D,          # domain of operation of <G>
          or (d = 524288 and Size(G)  (^-524287)                     blocks of the operation of <G> on <D>
      and IsTransitive( Stabilizer(     SetIsPcgsCentralSeries(pcgs,true)
    then
        return true;

    # if $d$ is a prime power, <G> is not simple (except the cases above)
    elif      q := 1;  java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        return false;

    # if we don't have at least an $A_5$ acting on the top, <G> is simple
    elif  m < 5  then
        return true;

    # otherwise we must check for some special cases
java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 8

 simplelocalpcgs;
        simple := [ ,,,,,
          [60,360],,,,                  #  5: A(5), A(6)
          [60,360,1814400],,            # 10: A(5), A(6), A(10)
          [660,7920,95040,239500800],,  # 12: PSL(2,11), M(11), M(12), A(12)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 7
          [1092,43589145600],           # 14: PSL(2,13), A(14)
fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
        )

        # orders of transitive perfect subgroups of $S_m$        repeatg: Random ;until ( ) p= 0ved .Thus
        transperf := [ ,,,,
          [60],                         # 5: A(5)
          [60,360],                     #     function( G )
          [168,2520],                   # 7: PSL(3,2), A(7)
          [168,8168,20160]              # 8: PSL(3,2), AGL(3,2), A(8)
        ]java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10

        # test the special cases (Kantor's Lemma 3)
#
            for #         TryNextMethod();
                if    #     SetIndicesEANormalSteps(( ;
                  #         if Length( series ) > 1  then  SetDerivedSubgroup( G, series[ 2 ] );
                    or (
                then
                    return false;
                fi;
            od;
        od;

        # otherwise <G> is simple
        return true;

    fi;

end );

#############################################################################
##
#M  IsSolvableGroup( <G> )  . . . . . . . . . . . . . . . .  solvability test
##

# fast test for finding iteratively nontrivial commutators in a permutation group.
# if this goes on too long the group may not be solvable. This can be much faster
# for large degree groups than to use the full pcgs machinery (which uses the same
# idea but builds a pcgs on the way).
# The function returns `true` if the group has been proved to be *non*solvable.
(java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 51
local TryNextMethod
  # a few moved points
  som:=MovedPointspcgs:         f :ActionHomomorphism  B,OnSetssurjective")
 ( 0java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 64
    if not HasDerivedSubgroup java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 21
  if Length(som)>100 then
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  fi;

  elvth:=One(G);
  fct=unction()
    elvth:=elvth*Product([1..Random(1,5)],x->Random(GeneratorsOfGroup(G))^java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 57
    return elvth;
  ;

 =(G;
  # find one nontrivial commutator
  new:=fail;
  i:=1;        g2 :RandomC)   ( )p=0;
  while i<=Length(gens) and new=fail do
    j:i+
    while j<=Length(        C2 := Centralizer)
      ifForAny(-(^[]^gensj]>x[j]^ens] 
        new:=Comm(gens[i],            C := C2;  g := g2;
       od
      j:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    od;
i=+;
  od;
  if new=fail then return     I,,PermSylow ";

  # now take commutators with conjugates to get down
  i:=1;     = (f), java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
  repeat
    gens:=;
    j:=1;
    new:=fail;
    l:=[gens];
    #############################################################################
      a=Random()^fct();
      b:=First(l,b->ForAny(som,x->java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
      if b<>fail then
new=(a,b)java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
      else
        Addl,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      fi;
      j:=j+1;
        odIsPrimitive,)
return (java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
      return fail;
    java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
    :i+;
  until i>bound;
  return true;
end);

InstallMethod( IsSolvableGroup,"for permgrp", true, [ IsPermGroup ], 0,
function(G)
local pcgs;
  if QuickUnsolvabilityTestPerm(G)#            and not IsSolvableGroup( list[        TryNextMethod)

  pcgs:=TryPcgsPermGroup#java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
  if IsPcgs(pcgs) then
    SetIndicesEANormalSteps(pcgs,pcgs!.permpcgsNormalSteps);
    SetIsPcgsElementaryAbelianSeries(pcgs,rue);
    if not HasPcgs(G) then
      java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    fi;
    if not HasPcgsElementaryAbelianSeries(G) ##
      SetPcgsElementaryAbelianSeries(G,pcgs);
    fi;
    return true;
  #                m := m * c[ 1 ] ^ ( c[ 2 ] / d );
    return false;
  ;
;

#############################################################################
##
#M  IsNilpotentGroup( <G> ) . . . . . . . . . . . . . . . . . nilpotency test
##
InstallMethod( IsNilpotentGroup,"for     java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
    G -> IsPcgs     : java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 20

#############################################################################
##
#M  PcgsCentralSeries( <G> )
##
InstallOtherMethod( PcgsCentralSeries,"for permgrp    
function(G)
local pcgs;
 G,true 
  if IsPcgs(pcgs) #M  SylowSubgroup( <G>, <p>            i : java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 23
    (pcgs,pcgs!permpcgsNormalSteps);
    SetIsPcgsCentralSeries(pcgs,true);
    if not[IsPermGroup,        
      etPcgsG,java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
    fi;
  fi;
  return pcgs           # enforce solvable methods if we detected anew that the group is
end);

#############################################################################
##
#M  PcgsPCentralSeriesPGroup( <G> )
##
java.lang.StringIndexOutOfBoundsException: Range [33, 18) out of bounds for length 85
)
local   Last;
  java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
  if    
    java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 6
    SetIsPcgsPCentralSeriesPGroup(pcgs,true);
  fi
  if IsPcgs#M  FrattiniSubgroup( <G> q# largest  of p>dividing the size##
SetPcgs(,)java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
  fijava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
;
endB          

#T AH, 3/26/07: This method triggers a bug with indices. It is not clear
#T form the description why TryPcgs... should also give a drived series. Thus
#T disabled.
# #############################################################################
# ##
# #M  DerivedSeriesOfGroup( <G> ) . . . . . . . . . . . . . . .  derived series
# ##
# InstallMethod( DerivedSeriesOfGroup,"for permgrp", true, [ IsPermGroup ], 0,
#     function( G )
#     local  pcgs,  series;
#
#     if   (not DefaultStabChainOptions.tryPcgs
#        or ( HasIsSolvableGroup( G )  and  not IsSolvableGroup( G ) ))
#        and not (HasIsSolvableGroup(G) and IsSolvableGroup(G)) then
#         TryNextMethod();
#     fi;
#
#     pcgs := TryPcgsPermGroup( G, false, true, false );
#     if not IsPcgs( pcgs )  then
#         TryNextMethod();
#     fi;
#     SetIndicesEANormalSteps(pcgs,pcgs!.permpcgsNormalSteps);
#     series := EANormalSeriesByPcgs( pcgs );
#     if not HasDerivedSubgroup( G )  then
#         if Length( series ) > 1  then  SetDerivedSubgroup( G, series[ 2 ] );
#                                  else  SetDerivedSubgroup( G, G );  fi;
#     fi;
#     return series;
# end );

#############################################################################
##
#M  LowerCentralSeriesOfGroup( <G> )  . . . . . . . . .  lower central series
##
,,Ggens
    
    local  pcgs,  seriesOrbitsDomainStabilizerpunkt,


        return [G        g = g  ( g) /p#    orbit:=Difference(StabChainMutable(G).orbit,[punkt]);table().orbit,punkt]);
    fi;

    #      stab:=[ one ];
       or HasIsNilpotentGroup
       and 
        TryNextMethod#    processStabGen:=function()
    fi;

    pcgs :=          StabGenAvailable:=false;
    if not IsPcgs( pcgs )  then
        TryNextMethod(#    end;
    fi;
    SetIndicesCentralNormalSteps(,pcgs.permpcgsNormalSteps);
    series : = java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
    if not HasDerivedSubgroup( G )  then
        if Length( series ) > 1   punkt]: onejava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
                                 elseforgen do
    fi;
    return series;
end =SylowSubgroupPermGroup( Range( ),          ]: gen;

              (, T ;
 [ IsPermGroup and ;
  # we want this to come *before* the method for Pcgs computable groups;
  RankFiltercurrPt=
  -currGen0
function(Gjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
local pcgs;
  pcgs(;
  if    B:= Blocks(G  ;
    TryNextMethod();
;
  return EANormalSeriesByPcgs Length)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
;

#InstallOtherMethod( ElementaryAbelianSeries, fam -> IsIdenticalObj
#        ( fam, CollectionsFamily( CollectionsFamily( PermutationsFamily ) ) ),
#        [ IsList ], 0,
#    function( list )
#    local  pcgs;
#
#    if    IsEmpty( list )
#       or not DefaultStabChainOptions.tryPcgs
#       or (      HasIsSolvableGroup( list[ 1 ] )
#            and not IsSolvableGroup( list[ 1 ] ) )  then
#        TryNextMethod();
##    fi;
#
##    pcgs := TryPcgsPermGroup( list, false, false, true );
#    if not IsPcgs( pcgs )  then  return fail;
#                           else  return ElementaryAbelianSeries( pcgs );  fi;
#end );

#############################################################################
##
#M  PCentralSeries( <G>, <p> )  . . . . . . . . . . . . . .  p-central series
##
InstallMethod;
function( G, p java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
    local  pcgs;

  if Length(Factors(Size(G))#    deg > 3125
    TryNextMethod;
  fi;
  pcgs:=PcgsPCentralSeriesPGroup(G);
  not( 
    TryNextMethod(#        if d mod 5 = 0  then
  fi;
  return PCentralNormalSeriesByPcgsPGroup
end);

#############################################################################
##
#M  SylowSubgroup( <G>, <p> ) . . . . . . . . . . . . . .  Sylow $p$-subgroup
##
InstallMethod( SylowSubgroupOp,"permutation
  [ #############################################################################
function( G, p )
local   S;
  if not HasIsSolvableGroup(G) InstallGlobalFunction( SignPermGroup(g
#
    # solvable.
    SylowSubgroupOp)
      :[java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
  S := SylowSubgroupPermGroupcoll ] 2]       j1
S =(,StabChainMutable   ;
  SetIsNilpotentGroup( S, true );
  if Size(S) > 1 then
              m-1:m[-1]+
    SetPrimePGroup( S, p );
            
   fi m-1]:=1
  return S;
end );

InstallGlobalFunction( SylowSubgroupPermGroup, function( G, p )
    local   S,          # <p>-Sylow subgroup of <G>, result
            
            D,          # domain of operation of <G>end )
            O,#java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
            B,          # speed up the closure process##
            f            homomorphism of G> java.lang.StringIndexOutOfBoundsException: Range [0, 55) out of bounds for length 2
            T,          # <p>-Sylow subgroup in the image of <f>
           , g2      # one <p> element of <G>
            C       # centralizer of <g> in <G>

    # get the size of the <p>-Sylow subgroup  m:=([1..engthl1]i>);
    q := 1;  while Size( G ) mod (q * p) = 0  do q := q * p;  od;

    # handle trivial subgroup
    if   q #############################################################################
        return TrivialSubgroup( G );
    fi##
    # go down in stabilizers as long as possible
    S := StabChainMutable( G );
    whileLength(Sorbit ) mod p <> 0  do
        S := S.stabilizer;
    od;
    G := t  ) 

    # handle full group
    if q = Size( G )  then
        return G;
fi

    # handle <p>-Sylow subgroups of size <p>
    if =pthen
        repeat g := Random( G );   l:=GeneratorsOfGroup(G);
        g := g ^ (Order( g ) / p);
        return SubgroupNC( G, [ g ] );
    fi;

    # if the group is not transitive work with the transitive constituents
    D := MovedPoints( G );
    java.lang.StringIndexOutOfBoundsException: Range [23, 6) out of bounds for length 37
        Info(InfoGroup        (,l[i]^p)java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
        S := G;
        D: ShallowCopy  )java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
        while q < Size( S )  do
            O := Orbit( S, D[1] );
            f := #M  ApproximateSuborbitsStabilizerPermGroup(<G>,<pnt>) . . . approximation of
            T := SylowSubgroupPermGroup( Range( f ), p );
            S := PreImagesSet( f, T );
            SubtractSet( D, O );
        od;
        return S;
    fi;

    # if the group is not primitive work in the image first
    B := Blocks( G, D );
       ifLength( B ) <> 1  then
        Info(InfoGroup,1,"PermSylow: blocks");
        f = ActionHomomorphism( G,B, OnSets,surjective" );
        T := SylowSubgroupPermGroup( Range( f ), p );
        if Size( T ) < Size( Range( f ) )  then
            T := PreImagesSet( f, T );
            S:=SylowSubgroupPermGroup( T , p) ;
            return S;
        fi;
    fi;

    # find a <p> element whose centralizer contains a full <p>-Sylow subgroup# stabilizer, a trivial orbit algorithm seems best.
    Stabilizer(,unkt),
    repeat g :Difference(MovedPoints(),punkt]))java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
    g := g ^#    stab:=Stabilizer(G,punkt));
    C := Centralizer( G, g );
    while GcdInt( q, Size( C ) ) < q  do
        repeat g2 := java.lang.StringIndexOutOfBoundsException: Range [0, 27) out of bounds for length 13
        g2 :#      if stgp>Length(stab) then
#      return stab[stgp-1];
        if GcdInt( q, Size( C ) ) < GcdInt( q, Size( C2 ) )  then
            C :
        fi    # compute orbit and transversal
    od;

    # the centralizer acts on the cycles of the <p> element
    for pnt  indo
    Info(InfoGroup,1,"PermSylow        img:pnt^genjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
    f := ActionHomomorphism( C, java.lang.StringIndexOutOfBoundsException: Range [8, 33) out of bounds for length 11
    T := SylowSubgroupPermGroup( Range( f ), p );
    S := PreImagesSet( f, od;
    return S;

end );

#############################################################################
##
#M  Socle( <G> )  . . . . . . . . . . .  socle of primitive permutation group
##
InstallMethod( Socle: One g );
      for i in Conjug i  (g do
       , ,coll   L  ,ordjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
            p,  i;

    Omega := MovedPoints( G 

    if not IsPrimitive( G,
        TryNextMethod();
    turn e is a^e=b or false otherwise

    # Affine groups first.
 );
 Ljava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
        return L[1];
    fi  

    deg := Length( Omega 
    if deg >= 6103515625  then
;
    # the normal closure actually seems to be faster than derived series, so
    # this is not really a shortcut
#
    #    shortcut := true;
    #    if deg >= 3125  then
#        coll := Collected( Factors( deg ) );
         = (coll  >c 2]))
    #        if d mod 5 = 0  then ,abgjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
         m : 1java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
    #            for c  in coll  do
    #                m := m * c[ 1 ] ^ ( c[ 2 ] / d );
    :;
    #            if m >= 5  then
    #                shortcut := false;
    #            fi;
    #        fi;
    #    fi;
    #    if shortcut  then
    #        ds := DerivedSeriesOfGroup( G );
    #        return Last(ds);
    #    fi;
    java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7

      gens  (G);
     deg <78125
        # mdescendingorder;trivial 
    else
        i := Length( coll );
        while coll[ i ][ 2java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                  else
        odgen:=b]java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
        p :[ ] ]
    fi;
    
        repeat
            z := Random( G );
            : Order( )java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
        ord  p=0java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
         =z^ (/java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 5
    until Index(   Lengthgens)=()2

    # immediately add conjugate as this will be needed anyhow and seems togen<orbit[]then (") java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
    # speed up the closure process
    L := NormalClosure( G, SubgroupNC( java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
    if deg >= 78125  then
        ds :=  # Schreier generators
        =Last(ds)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
     changed=3 and currPt<=Length( do;
    if IsSemiRegular( L, Omega )  then
      : ClosureSubgroup ,(G,L);
    fi;
     L;
end );

#############################################################################
##
#M  FrattiniSubgroup( <G> ) . . . . . . . . . . . .  for permutation p-groups
##
(java.lang.StringIndexOutOfBoundsException: Range [33, 31) out of bounds for length 72
  java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
    localodjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

    if not IsPGroupjava.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 27
        
    elifmintry=
      return  ()2 then
    fi;
    p := PrimePGroup( G );
    l := GeneratorsOfGroup( G#############################################################################
    k := [ l[1]^p ];
..Length(l)]  
        for j  in [ 1 .. i-1 ]  ifmintry=(ens  return gens;fi;
            Add(k, Comm(l[i] , ,java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
        od;
        Add(k, l[i]^p);while<5iLengthjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 21
odjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
    java.lang.StringIndexOutOfBoundsException: Range [44, 41) out of bounds for length 50
end );

        j:=j+1;
##
#M  ApproximateSuborbitsStabilizerPermGroup(<G>,<pnt>) . . . approximation of
##  the orbits of Stab_G(pnt) on all points of the orbit pnt^G. (As not
##  all schreier generators are used, the results may be the orbits of a
##  subgroup.)
##
InstallGlobalFunction( ApproximateSuborbitsStabilizerPermGroup,
    function,unkt)
    local one, orbit, trans, gen, pnt, 
          processStabGen, currPt,currGenF(n1,,i

    one:= One( G
  if HasStabChainMutableAdd 
# if we already have a stab chain and bother computing the proper
# stabilizer, a trivial orbit algorithm seems best.
    fi
              OrbitsDomain(Stabilizer(G,java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 14
                           (MovedPoints()[unkt)
#    orbit:=Difference(StabChainMutable(G).orbit,[punkt]);
#    stab:=Stabilizer(G,punkt));
#    # catch trivial case
#    if Length(stab)=0 then
#      stab:=[ one ];
#    fi;
#    stgp:=1;
#
#    processStabGen:=function()
#      stgp:=stgp+1;
#      if stgp>Length(stab) then
#        StabGenAvailable:=false;
#      fi;
#      return stab[stgp-1];
#    end;

  java.lang.StringIndexOutOfBoundsException: Range [6, 7) out of bounds for length 6
    # now get the smallest generating system of the stabilizer
    Ggens:=GeneratorsOfGroup(G);
    orbit := [ punkt ];
    trans := [];
    trans[punkt ] :one;
    for pnt  in orbit  do
forgenin Ggens do
        img:=pnt^gen;
        if not  SubtractSet(  l=[;
           java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
          trans[img ] :;
        ;
      ;
    od;

  fi;:1]java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22

  currPt:=1;
  currGen: ( S.[   ]  )java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66

=        
    localpunkt,mg,b  stabilizer
if(,)1
        # next one
    Add,mjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
        if currGen   ;
         :1java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
          currPt:=currPt+1;
          if;
            return ();
          fi;
        fi;
        a:=currPt;
        b:=currGen;
      else
        a:=Random(1, Length(orbit));
              b=Random(1,LengthGgens)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
      PositionlCRepresentative))1]=;
      # map a with b
      img:=orbit[a]^Ggens[b          java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 30
img
        return ();
      else
        punkt:=orbit[a];
        gen:=Ggensjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        while punkt<,,,cp,g
          gen:     return the smallest generating system
         punkt:punkt/trans[punkt];
        od;
        if orbit1]java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
        punkt:=mg;
        while punkt<>orbit[1] do
          gen=/ranspunkt;
          
        odjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
        if orbit[1]^gen<while m<ob do
      fi;
      return       java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 53
    end;

  # as the first approximation take a subgroup generated by four nontrivial
  # Schreier generators
  changed=0;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   changed<=3 and currPt<=Length(orbit) do
    g:=Gcdm,Length(c));
    while or(e modgjava.lang.StringIndexOutOfBoundsException: Range [26, 19) out of bounds for length 19
      gen:processStabGen();
    od;
    Addgens,gen);
    changed:=changed+1;
  od#M  SmallGeneratingSet(<G>)
if(gens)0 
   :  : GeneratorsOfGroup ;
  else
    orbit=OrbitsPermsgensorbit;
  fi;

  # todo: further fuse
  return orbit;
end );

#############################################################################
##
#M  AllBlocks . . . Representatives of all block systems
##
InstallMethod(AllBlocks,    (strPluralize(( gens )");
function(g)
localjava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6

  DoBlocks(b
  local bl,bld,i,t,n;
    find representatives of all potential suborbits
    bld:=List(Filtered(subo,i->not ForAny(b,j->j in i)),i->i[1]);
    bl:=[];
    a=(ens] gens[    fi;
      for i in bld do
        t:=Union(b,[i]);
        nj:=  +1java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
        if Length(n)>1 and 
           not n[1] in pool then
          ##
          #M  AsList( <G> ) elements of perm group
          bl:=InstallMethod(AsList,"permgp: ElementsStabChain,[IsPermGroup ]
        fi;
      od;
    fi;
    ;
  end;

  one:= One( g );
 < java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
if(gens)=then return [;fi;
  subo:=ApproximateSuborbitsStabilizerPermGroup(g,
          Minimum(List(   java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        IsSolvableGroupG)
otg,) java.lang.StringIndexOutOfBoundsException: Range [33, 34) out of bounds for length 33
      Sort(list
  ;
  pool:=[endjava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
  return DoBlocks(subo[############################################################################
end);

#############################################################################
##
#F  SignPermGroup
##
InstallGlobalFunction LengthG)Length=);
  if ForAll( IsPrimitived)then
    Error(<Gprimitive"
  else
    return -1;
  fi;
end );

java.lang.StringIndexOutOfBoundsException: Range [13, 10) out of bounds for length 51
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 14
      return Size(U)=Size(G);
  for i in Partitions(n)return 5;
    m:=[];
   for    java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 74
      if j>1 then
j-1] java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 26
          m[j-1]:=m[j-1]+1;
        else
          m[j-1]:=1;
        fi;
      fi;
    
    Addif()-]java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
  od;
  return l;
end 

#############################################################################
##
#F  CycleStructuresGroup(G)  list of all cyclestructures occ. in a perm group
##
InstallGlobalFunction( CycleStructuresGroup, java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 22
 one
  l:=CreateAllCycleStructures(Length(java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 42
  m ;;
    one )
  for  in #  power of the
 java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 36
      m[Position(l,CycleStructurePerm(Representative(i)))-1]:=1;
    fi;
  od;java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 20
  return m;
end );


# return e is a^e=b or false otherwise
InstallGlobalFunction("LogPerm",
function(a,b)
java.lang.StringIndexOutOfBoundsException: Range [16, 5) out of bounds for length 33
  oa:=      :=(U);
  ob:=Order(b);
  if oa mod ob<>0 then Info(InfoGroup      i:=i1java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
     gens;
  aa:=a^java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 5

  m:=1; # order modulo which power is OK so far
  e:=1;
  while m<ob do
    tst:=aa^e/b;
    s:=SmallestMovedPoint(DeclareGlobalFunction "eneratorsSmallestStab );
    if s=infinity then # found it
      returnInstallGlobalFunction(GeneratorsSmallestStab, function ( S )
    fi;
    c:=Cycles);
    g:=Gcd(m,Length(c));
    p:=Position(c,s^b);
    if p=fail or (e mod g<            orb        
    e:=ChineseRem([m,Length(c)][e,-]java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
    m:=Lcm(m,Length(c));
  od;
  if aa^e<>b then return false;fi;
  return q*e mod oa;
end);


#############################################################################
##
#M  SmallGeneratingSet(<G>)
##
InstallMethod(SmallGeneratingSet,"random and generators subset, randsims",true,
  [IsPermGroup],0,
function (G)
local  i, j, U, gens,a,mintry,orb,orp,isok;

  gens := ShallowCopy(Setjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

  # remove obvious redundancies...
  # sort elements by descending order; trivial permutations
  # at the end
 SortBy(gens, g-> Order(g);

  i := 1;theother points in the orbit
  while i < Length(gens) do
    j := i + 1;
    while j <= Length(gens do
      a:=LogPerm(gens[i], gens[j]);
      if a = false then
        j := j + 1;
      else
        Remove(gens, j);
fi;
    od;
    i := i + 1;
  od;

  if Length(gens)<=Length(java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 26
    return             pntOnTuples orbitgen)
  fi;

  # try pc methods. The solvability test should not exceed cost, nor
  
  if #Length(MovedPoints(G))<50000 and
   #((HasIsSolvableGroup(G) and IsSolvableGroup(G)) or IsAbelian(G)) =java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 30
      IsSolvableGroup(G)
andLengthgens> java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
    return MinimalGeneratingSet
  fi;

  # store orbit data
  orb:=Set(Orbits(G,MovedPoints(G)),        :[.1]
  # longer primitive orbits
  orp:=Filtered([1..Lengthjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26

  isok:=function(U)
    if Length(MovedPoints(G))>)java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
      Length(orb)>Length(Orbits(U,MovedPointsIsPermGroup,
        (xUx))then
      return false;
    fi;

    (U
    return ()S(G)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
  end;

  :2;
  if java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    
    # structure of G/G', as the latter is more expensive.
    mintry:=Maximum(java.lang.StringIndexOutOfBoundsException: Range [0, 24) out of bounds for length 2
    mintry:=Maximum(mintry,2);
    if mintry=Length(gens) then return gens;fi;
    :=aximum2m "
    while i<=mintry+1 and i<      (,tringjava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 34
      # try to find a small generating system by random search>java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
      j:=1;
      whilestr"";
        U:=Subgroup(G,List([1..i],      Append(str,ViewString(gens));
        if isok(U) then
          gens:=Set(GeneratorsOfGroup(U));
        str;
        j:=j+1end
      od;
      i:=i+1;
    od;
  fi##

  # try to delete generators
  i := 1;
  while i < (ens)and Lengthgens>mintry do
    # random did not improve much, try removing generators one by one
    U:=Subgroup(G,gens{Difference([1..Length(gens)],[i])});
    ifisok(U then
      gens:=Set(GeneratorsOfGroup(U));
    else
      i:=i+1;
    fi;
  od;
  return gens;
end);

#############################################################################
##
#M  GeneratorsSmallest(<G>) . . . . . . . . . . . . . for permutation groups
##
DeclareGlobalFunction( "GeneratorsSmallestStab" );

InstallGlobalFunction( GeneratorsSmallestStab, function ( java.lang.StringIndexOutOfBoundsException: Range [0, 59) out of bounds for length 13
    localend )
            gen,        # one generator in <gens>
            ##
            pnt,        # one point in <orb>
            T,          # stabilizer in <S>
            o2,img,oo,og; # private orbit algorithm

    # handle the anchor case
    if Length(S.generators) = 0  then
        return [];
    fi;

    # now get the smallest generating system of the stabilizer
    gens: GeneratorsSmallestStab( S.stabilizer );

    # get the sorted orbit (the basepoint will be the first point)
orb=Set(Sorbit );
    SubtractSet( java.lang.StringIndexOutOfBoundsException: Range [0, 20) out of bounds for length 15

    # handle the other points in the orbit
    while Length(orb) <> 0  do

        # take the smallest point (coset) and one representative
        pnt := orb[1];
        gen :    fi
        while S.orbit[1] ^ gen <> pnt  do
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        od;

    :Stabilizer(,(s)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
        T := gth()1]
   while(Tgenerators)<   do
            pnt := Minimum( OnTuples#M  SocleTypePrimitiveGroup( <G> )
            while T.orbit[1] ^ gen <> pnt  do
                gen := LeftQuotient( T.transversal[ pnt / gen ], gen )    # now test Dixon&Mortimer, p.126, Case 1: R1 (projection of pt. stab
            od;
            T := T.stabilizer;
        od;

        
        Add( gens, gen );

        #SubtractSet( orb,
        #    Orbit( GroupByGenerators( gens, S.identity ), S.orbit[1] ) );

#
        o2:=[S.orbit[1]];
        RemoveSet(orb,S.orbit[1]);
        for oo in o2 do
          forog in  do
            img:=oo^og;
            if img in orb then
              Add(o2,img);
              java.lang.StringIndexOutOfBoundsException: Range [8, 9) out of bounds for length 8
            fi;
          od;
        od; b;

    od;

    # return the smallest generating system
    return gens;
end );

InstallMethod(GeneratorsSmallest,"##
  [#M  SocleTypePrimitiveGroup( <G> )
function(G)
  
  return GeneratorsSmallestStab(java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 28
cs(;

InstallMethod(LargestElementGroup,"perm group via minimal stab chain",
  [IsPermGroup],
  # call the recursive function to do the work
  G -> LargestElementStabChain( MinimalStabChain( G ), One( G ) ) );


#############################################################################
##
#M  KnowsHowToDecompose( <G>, <gens> )
##
# this function is needed for the transitive and primitive groups libraries
    "perm group and generators: always true",
    IsIdenticalObj,
    [ IsPermGroup, IsList    return b(a);
    ReturnTrue);


#############################################################################
##
#M  ViewObj( <G> )
##
InstallMethod( ViewString
    [ IsPermGroup and HasGeneratorsOfGroup java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 4
function(G)
  local gens,str;
  gens:= GeneratorsOfGroup( G );
  if 30 < Length(d:List(i>g);
    str<java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 30
    if HasSize(G) then
      Append(str," of size ");
str,Size(G)java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
    fi;
    Append(str," with ");
    Append(str,Pluralize(Length( gens ), "generator"));
    Append(str,">)
  else
    str:="Group(";
    if IsEmpty( gens ) or ForAll(gens,i->Order(i)=1) then
      Append(str,"()");
    else
      (,iewString((gens)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
    fi;
    Append(str,")");
  fi;
  return str;
end);


#############################################################################
##
#M  AsList( <G> ) elements of perm group
##
InstallMethod( AsList, "permgp: ElementsStabChain"  ;
  G -> ElementsStabChain( StabChainMutable(G)) );

#############################################################################
##
#M  AsSSortedList( <G> ) elements of perm group
##
InstallMethod( AsSSortedList, "via stabchain", [ IsPermGroup ],
  AsSSortedListNonstored );

InstallMethod( AsSSortedListNonstored, "via stabchain", [IsList)=then
function( G )
  local list;
  list := ElementsStabChain( StabChainMutable(G));
  Sort(list);
  return list;
end );

#############################################################################
##
#M  ONanScottType( <G> )
##
InstallMethod(ONanScottType,"primitive permgroups",true,[IsPermGroup],0,
function(G)
local,ctmjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
  dom:=MovedPoints(G);
  if not IsPrimitive(G,dom) then
    Error("<G> must be primitive");
  fi;
  s:=Socle(G);
  if IsAbelian(s) then
    return "1";
  elif IsNonabelianSimpleGroup(s) then
    return "2";
s then
    return "5";
  else
    # so the group now is of type 3 or 4. Next we determine a simple socle
    # factor and a direct product of all but one socle factor.
    # simple socle factor.

    # as default stab chain chooes pts lexicographically, this is likely a
    # stored stabilizer
    stb:=Stabilizer(s,SmallestMovedPoint(s));
    cs:=CompositionSeries(s);
    t:=cs[Length(cs)-1];
    m:=cs[2];

    # now test Dixon&Mortimer, p.126, Case 1: R1 (projection of pt. stab
    # onto one direct factor) is proper subgroup of T1.:=+;

#java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
    while not ForAny(orb[p],j->ForAny(GeneratorsOfGroup(s),k->j^k<>j)) do
    # act transitively
    if       p:=p1;
      return "4c"; # Product action of type 2 with transitiveifp>Length(orb then :;ijava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
    fi;

    #  Now we are in case 2, R1=T1. Group must be diagonal (3) or product    ndom=Unionndom,[p)java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
    #  action of diagonal with transitive (4). For diagonal case the point
    #  stabilizer must have the order of t, for product case it must be a
    od
    if Size(stb)=Size(t) then # type 3
      # in the a case the socle is not minimal
      #if Size(NormalClosure(G,t))<Size(s) then
      if Length(Orbit(G,t))<Length(cs)-1 then
        return "3a";
      else
        return "3b";
      fi;
    else
      # Same argument as for 3:
      #if Size(NormalClosure(G,t))<Size(s) then
      if Length(Orbit(G,t))<Length(cs)-1 then
        return "4a";
      else
        return "4b";
      fi;
    fi;
  fi;
end);

#############################################################################
##
#M  SocleTypePrimitiveGroup( <G> )
##
InstallMethod(SocleTypePrimitiveGroup,"primitive permgroups",true,
  [IsPermGroup],0,function(G)
local s,cs,t,id,r;
  if not IsPrimitive(G) then
    ErrorNoReturn("<G> must be primitive on its moved points");
  fi;
  s:=Socle(G);
  cs:=CompositionSeries(s);
  t:=cs[Length(cs)-1];
  id:=IsomorphismTypeInfoFiniteSimpleGroup(t);
  r:=rec(series:=id.series,
             width:=Length(cs)-1,
             name:=id.name);
  if IsBound(id.parameter) then
    r.parameter:=id.parameter;
  else
    r.parameter:=id.name;
  fi;
  return r;
end);

# this function is needed for the transitive and primitive groups libraries
BindGlobal("STGSelFunc",function(a,b)
  if IsFunction(b) then
    return b(a);
  elif IsList(b) and not IsString(b) then
   if IsList(a) and a=b then
     return true;
   fi;
   return a in b;
 else
   return a=b;
 fi;
end);

InstallGlobalFunction(DiagonalSocleAction,function(g,nr)
local ran,d,emb,u,act;
  ran:=[1..nr];
  d:=DirectProduct(List(ran,i->g));
  emb:=List(ran,i->Embedding(d,i));
  u:=List(GeneratorsOfGroup(g),i->Product(ran,j->Image(emb[j],i)));
  u:=SubgroupNC(d,u);
  act:=ActionHomomorphism(d,RightTransversal(d,u),OnRight,"surjective");
  return Image(act,d);
end);

InstallGlobalFunction(ReducedPermdegree,function(g)
  local dom, orb, gdeg, p, ndom, s,hom;
  dom:=MovedPoints(g);
  orb:=ShallowCopy(Orbits(g,dom));
  if Length(orb)=1 then return fail;fi;
  gdeg:=20*LogInt(Size(g),2); # good degree
  SortBy(orb, Length);
  p:=PositionProperty(orb,i->Length(i)>=gdeg);
  if p=fail then p:=Length(orb);fi;
  ndom:=orb[p];
  if Length(ndom)*2>Length(dom) then return fail;fi;
  s:=Stabilizer(g,orb[p],OnTuples);
  p:=p+1;
  if p>Length(orb) then p:=1;fi;
  while Size(s)>1 do
    while not ForAny(orb[p],j->ForAny(GeneratorsOfGroup(s),k->j^k<>j)) do
      p:=p+1;
      if p>Length(orb) then p:=1;fi;
    od;
    ndom:=Union(ndom,orb[p]);
    s:=Stabilizer(s,orb[p],OnTuples);
  od;
  if Length(ndom)*2>Length(dom) then return fail;fi;
  hom:=ActionHomomorphism(g,ndom,"surjective");
  SetIsInjective(hom,true);
  SetSize(Image(hom),Size(g));
  return hom;
end);

Messung V0.5 in Prozent
C=74 H=78 G=75

¤ 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.53Bemerkung:  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

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.