Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/irredsol/fp/   (GAP Algebra Version 4.15.1©)  Datei vom 5.3.2021 mit Größe 5 kB image not shown  

SSL genss.gi   Interaktion und
PortierbarkeitShell

 

##############################################
##
##  genss.gi              genss package           
##                                                           Max Neunhoeffer
##                                                              Felix Noeske
#
# java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 47
##
##  Implementation stuff for generic Schreier-Sims
##
#########################java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 70

###.java.lang.StringIndexOutOfBoundsException: Range [22, 20) out of bounds for length 72
# java.lang.StringIndexOutOfBoundsException: Range [23, 15) out of bounds for length 74
# main function "StabilizerChain":
#######################################################################

# Initial hash size for orbits:
GENSS.InitialHashSize := NextPrimeInt(1000);
# Number of java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 47
GENSS.Report := 30000;
# Number of random elements to consider for the java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 39
:10
# Absolute:=1
GENSS.tabMaxDepth=400
 Firstlimitforthe java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 78
GENSS.ShortOrbitsInitialLimit := 400;
# Absolute limit for single orbit lengthG.java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 32
ENSSjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 35
 java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 77
=10;
# Number   settofalse Do not doyou you java.lang.StringIndexOutOfBoundsException: Range [69, 70) out of bounds for length 69
ENSSjava.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 26
  java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 71
#   function java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 25
 java.lang.StringIndexOutOfBoundsException: Range [9, 7) out of bounds for length 65
 java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 9
GENSS.iresjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 33
GENSS.StabGenAddSlots := 3;
GENSS.StabGenMaxDepth := 400;
# Number of randomS:S.
#   java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 7
GENSS. It produces newjava.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 70
GENSSparentS
 randomjava.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 62
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 41
#java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 30
java.lang.StringIndexOutOfBoundsException: Range [25, 5) out of bounds for length 26
  veryjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 74
.: java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
# Neverfi
GENSSAddlx)
rowjava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 34
# Number of Schreier generators to java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 12
GENSS. := EmptyPlist([;
# MaximalAddv,ci[j,l[i),
GENSS.MaxNumberSchreierGens := 100;
# By default do 3 rounds of java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
GENSS.java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
# By default#Nowa  java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 62
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 25
on java.lang.StringIndexOutOfBoundsException: Range [72, 71) out of bounds for length 72
GENSSOrbitLimitBirthdayParadox 1000000java.lang.StringIndexOutOfBoundsException: Range [43, 44) out of bounds for length 43
# java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 72
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 41
Limit  of elementsjava.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 62
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 39
#fi
GENSS.Reducedod

#java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 42
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 25
ENSS.: 
GENSS.StabAddSlots := 1;
GENSS.tabMaxDepth =400;
# Initial limit for orbit length for Stab computation:
GENSS.StabInitialLimit := 1000;
# Patience elif a[2] > b[2] then return false;
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 32
# Maximal amount ofelifa4  4 java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 42
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 32
# endjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
# longer try to Info(InfoGenSS,3,",java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 79
GENSS.if not(IsMutable(wb) 
              java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 42
# java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 0
    java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 68
java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28

#java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 76
# A few helper functions needed elsewhere:
#############################################################################

InstallGlobalFunction( GENSS_CopyDefaultOptions,
  function( defopt, opt )
    local n;
    for n in RecNames(defopt) do
        if not(IsBound(opt.(n))) then
            opt.(n) := defopt.(n);
        fi;
    od;
  end );

InstallGlobalFunction( GENSS_MapBaseImage,
  function( bi, el, S )
    # bi must be a base image belonging to S, el a group element
    local i,l,res;
    l := Length(bi);
    res := 0*[1..l];
    i := 1;
    while true do
        res[i] := S!.orb!.op(bi[i],el);
        i := i + 1;
        if i = l+1 then break; fi;
         =Sjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
    od;
    return res;
  end;

InstallGlobalFunction( java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 2
   Ojava.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 51
   java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 41
  # and stores them in opt.FindBasePointCandidatesData.randpool for
  # later usage.
  function(g,opt,parentS)
    # Needs opt components "java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 26
    , sortfun 
          wb, j, ww;
     java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 65
l: java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 43
    f (g;
    data := opt.FindBasePointCandidatesData;
    for i in [1. note thisisjava.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 69
        if parentS = false then
            xjava.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 53
        # Are we worjava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 30
            =java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 70
java.lang.StringIndexOutOfBoundsException: Range [10, 8) out of bounds for length 11
        Add(l,x);
        Add(data.randpool,x);
    java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 7
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 20
     =Listl,x->java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 61
                               GENSS.OrbitLimitImmediatelyTake := 10000;
    v := [];
    for i in [G.java.lang.StringIndexOutOfBoundsException: Range [32, 30) out of bounds for length 39
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 37
             =c[i];
            java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 54
                    java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 36
                    java.lang.StringIndexOutOfBoundsException: Range [64, 32) out of bounds for length 78
                    )
o;
       java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 18
    o.n := java.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 34
    Info(InfoGenSS,4li,lres
     Now   java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 62
     java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 26
:= ];
    i S: S!.;
    whilejava.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 15
        java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 17
        in[..(v]) java.lang.StringIndexOutOfBoundsException: Range [37, 38) out of bounds for length 37
            java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 26
                 := ShallowCopyjava.lang.StringIndexOutOfBoundsException: Range [42, 38) out of bounds for length 43
                java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 42
,Minimum(2,vi[][),
                            Minimum(ww[3fi;
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 20
            od;
            Add(nw,vv  ];
        od;
java.lang.StringIndexOutOfBoundsException: Range [16, 8) out of bounds for length 21
         :  ;
    od;
    sortfun := function(a,b)
        if a[2] < b[2] then return true;
        elif a[2] > b[2]java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 24
        elif a[3] < java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 26
        elifjava.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 37
        elif a[4] < b[4] then return true;
        elif a[4] > b[4] then returnif java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 42
        elif Length(a[1]) < Length(b[1]) then return java.lang.StringIndexOutOfBoundsException: Range [53, 57) out of bounds for length 19
        else sortfun: functionab
        java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 11
    java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 8
    elif [] 4 return
    wb :[4]  [] java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 43
    Info(java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 11
     1.wb]do
        if forww  (b]
            wbif IsMutablewbw) then
        
        (wbww)
    odr wbjava.lang.StringIndexOutOfBoundsException: Range [64, 63) out of bounds for length 76
    return wb;
end );

InstallGlobalFunction( GENSS_FindShortOrbit,
  function( g, opt, parentS )
    # Needs opt components:
    #  "ShortOrbitsNrRandoms"  (because it uses GENSS_FindVectorsWithShortOrbit)
    #  "ShortOrbitsOrbLimit"
    #  "ShortOrbitsInitialartLimit"
    local ThrowAwayOrbit,found,gens,hashlen,i,j,limit,newnrorbs,nrorbs,o,wb;

    wb := GENSS_FindVectorsWithShortOrbit(g,opt,parentS);
    if Length(wb) = 0 then return fail; fi;

    # Now we have a list of vectors with (hopefully) short orbits.
    # We start enumerating all those orbits, but first only 50 elements:
    nrorbs := Minimum(Length(wb),64);  # take only the 64 first
    gens := GeneratorsOfGroup(g);
    o := [];
    hashlen := NextPrimeInt(QuoInt(opt.ShortOrbitsOrbLimit,2));
    for i in [1..nrorbs] do
        Add(o,Orb(gens,ShallowCopy(wb[i]),OnLines,
                  rec( treehashsize := hashlen )));
    od;
    limit := opt.ShortOrbitsInitialLimit;
    i := 1;               # we start to work on the first one

    ThrowAwayOrbit := function(i)
        # This removes orbit number i from o, thereby handling nrorbs and
        # Length(o) correctly. If you want to use o[i] further, please
        # make a copy (of the reference) before calling this function.
        if Length(o) > nrorbs then
            o[i] := o[nrorbs+1];
            o{[nrorbs+1..Length(o)-1]} := o{[nrorbs+2..Length(o)]};
            Unbind(o[Length(o)]);
        else
            o{[i..nrorbs-1]} := o{[i+1..nrorbs]};
            Unbind(o[nrorbs]);
            nrorbs := nrorbs-1;
        fi;
    end;

    repeat
        Enumerate(o[i],limit);
        found := IsClosed(o[i]);
        if Length(o[i]) = 1 then
            Info(InfoGenSS,3,"Orbit Number ",i," has length 1.");
            found := false;
            # Now throw away this orbit:
            ThrowAwayOrbit(i);
            # we intentionally do not increase i here!
        elif not(found) then
            i := i + 1;
        fi;
        if i > nrorbs then
          Info(InfoGenSS,3,"Done ",nrorbs,
               " orbit(s) to limit ",limit,".");
          limit := limit * 2;
          if limit > opt.ShortOrbitsOrbLimit then
              Info(InfoGenSS,3,"Limit reached, giving up.");
              return fail;
          fi;
          i := 1;
          if nrorbs < i then
              Info(InfoGenSS,3,"No orbits left, giving up.");# Nowwe haveajava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 66
              return fail;
          fi;
          if nrorbs > 1 then
              o:=[]java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
              for j in [newnrorbs+1..nrorbs] do
                  Unbind(o[j]);
              od;
              nrorbs := newnrorbs;
          fi;
        fi;
    until found;
    Info(for  in [1..nrorbs] do
    return o[i];
  end );   

InstallGlobalFunctionrec( java.lang.StringIndexOutOfBoundsException: Range [37, 35) out of bounds for length 51
  function(el)
    local 
    s := el[1][1];
    if IsZero(s) then return false; fi;
    if not(IsOne(s)) then
        s := s^-1;
        =s* ;
    fi;
r java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 23
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 8


#############################################################################
# Now toUnbind[Length]
####else

InstallMethod( FindBasePointCandidates, 
  "Unbindo[java.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 30
  [ IsGroup and IsMatrixGroup and IsFinite,#Nowwehave java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 66
  50,  # highest weight,
  function( grp, opt, i, gens := GeneratorsOfGroup(g);
    local F,o =[;
    , Fnice base(scalar...";
    F := DefaultFieldOfMatrixGroup(grp);
    q foriin 1. do
: grp;
    gens :rec java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 51
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        gens := StripMemory#o orrectly If java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 70
    fi;
    ForAnygens,x>not(java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 57
        opt.FindBasePointCandidatesData Unbind())java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
        # This is needednrorbs: 1
        java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 8
    fi;
v: ZeroMutable1[1];
    v[            Info3"java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 65
     : []  : [,used=0)
  end );

InstallMethod( FindBasePointCandidates, 
  fjava.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 51
  [ if  > java.lang.StringIndexOutOfBoundsException: Range [26, 27) out of bounds for length 26
  40,  # limit: *2;
  function( grp, opt, i, parentS )
    local F, q, d, gens,               Info(InfoGenSS,3,"Limit reached, giving up.");
    Info( InfoGenSS, 3if  then
     =java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 40
    q: java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 48
    d := Unbindo[];
    java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 35
    if untiljava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
        genso[];
    fi;

    # Try two standard basis vectors and a random java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 14
    # short orbit:
    if q = 2 then
        op := OnPoints;
    else
        op := OnLines;
    fi;
    v := [];
    # Find first standard basis vector that is moved:
    vv := ZeroMutable( gens[1][1] );
    k := 1;
    while k <= d do
        vv[k] := One(F);
        if ForAny(gens,x->op(vv,x) <> vv) then
            Add(v,vv);
            break;
        fi;
        vv[k] := Zero(F);
        k := k + 1;
    od;
    # Find last standard basis vector that is moved:
    vv := ZeroMutable( gens[1][1] );
    kk := d;
    while kk >= k do
        vv[kk] := One(F);
        if ForAny(gens,x->op(vv,x) <> vv) then
            Add(v,vv);
            break;
        fi;
        vv[kk] := Zero(F);
        kk := kk - 1;
    od;
    # Pick a random vector:
    vv := ZeroMutable( gens[1][1] );
    if IsPlistRep(vv) then
        for j in [1..Length(vv)] do
            vv[j] := Random(F);
        od;
    else
        Randomize(vv);
    fi;
    ORB_NormalizeVector(vv);
    Add(v,vv);
    # Now investigate these up to a certain limit:
    for j in [1..Length(v)] do
        o := Orb(gens,v[j],op, 
                 rec(treehashsize := QuoInt(opt.VeryShortOrbLimit,2)+1));
        Enumerate(o,opt.VeryShortOrbLimit);
        if Length(o) > 1 and Length(o) < opt.VeryShortOrbLimit then
            Info( InfoGenSS, 3, "Found orbit of length ",Length(o) );
            cand :=         found := IsClosed(o[i]);
at we non-java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 66
            # point will befound = java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 27
            return cand;elif notf java.lang.StringIndexOutOfBoundsException: Range [28, 29) out of bounds for length 28
        fi;
java.lang.StringIndexOutOfBoundsException: Range [24, 4) out of bounds for length 7
    Info(Info(InfoGenSS3, up.)java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
           ;
    Append(opt.FindBasePointCandidatesData.vecs,v);  # hand on               java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 26
    java.lang.StringIndexOutOfBoundsException: Range [19, 17) out of bounds for length 20
  end );

# Method with rank 30 taking some java.lang.StringIndexOutOfBoundsException: Range [10, 45) out of bounds for length 13

InstallMethodend)java.lang.StringIndexOutOfBoundsException: Range [11, 12) out of bounds for length 11
 java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 64
  ite, java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 76
  s = java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 18
    local F,
          val##################################
     =java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 40
    q := java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
    (grp;
    randels := opt.NrRandElsBirthdayParadox;
    # highestjava.lang.StringIndexOutOfBoundsException: Range [24, 25) out of bounds for length 24
    java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 46

    Info =java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 37
java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 63
    ifgjava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 57
    if q = #Thisis java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 68
          java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 23

        op : ;
Ijava.lang.StringIndexOutOfBoundsException: Range [15, 13) out of bounds for length 40
(grp;
    if IsObjWithMemory(gens[1]) then
40,   weight
    funct( grpo,i java.lang.StringIndexOutOfBoundsException: Range [34, 32) out of bounds for length 34
forroundin[1.opt do
        v := Set(GENSS_FindVectorsWithShortOrbit(grp,opt,parentS));
        if round = 1 then
            Append(v,data.vecs);   # take java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 40
  java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
 : java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 61
        l := op := OnPoi;
        if l = 0 then
            o =
            # At least v=[]
             unlessgrpisandopis  java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 69
            vk =OneF;
#java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 42
            v := OneMutablebreak;
            ();   java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 52
            v #Findjava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 52
 l:=v)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 11
        java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 26
       e: linfinity; java.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 76
        ht :f;
                       (java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 70
        for i in [1..l] do
            val := HTValueforj  [1.ength(]do
                          rec(java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 73
                HTAdd(java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 69
            
                AddSet(val# java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 66
           
        od;
       java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 32
            
                =java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 57
            else
java.lang.StringIndexOutOfBoundsException: Range [38, 16) out of bounds for length 74
            fi;
            function( grpopt ,java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 37
            val, x   java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 61
                if IsObjWithMemory(x;
                    w :java.lang.StringIndexOutOfBoundsException: Range [17, 15) out of bounds for length 49
                else
                    w := op(v[j],x);
                
                val := HTValue(ht,w);
                if val <> fail then   if    
                    jin val hen    # java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 56
                        c[j] := gens:= java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 34
                        ej] =i^22cj]);
                        if (c[j] >= 3 and e[j] <= immorblimit) or
                           (c[j] >= 15 and e[j] fi;
                             Info( InfoGenSS, 2, "Found orbit java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 23
                                   ,[j," (coinc=",[j]")" ;
                              unless grp is diagonal and op is OnLines, in which case
java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 52
for  in [1.l] do
                                 if i <> j and c[i] >= 10             (v Sumv);# java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 52
                                     [1..];# java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 54
                                 pointsv)
                                     Add(cand.ops,if s)then java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 39
                            
                             java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
if java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 60
                                 f java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 40
Lengthcandpoints-, " java.lang.StringIndexOutOfBoundsException: Range [69, 68) out of bounds for length 78
"java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 58
                             fi;
                             returnd =java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 37
                        fi;
                    else
                       val,j;
                    fi;
        
                    HTAdd(TryNextMethod);
                fi;
;
        od;
        minest := Minimum(e);
        java.lang.StringIndexOutOfBoundsException: Range [16, 14) out of bounds for length 37
        ( java.lang.StringIndexOutOfBoundsException: Range [25, 23) out of bounds for length 78
java.lang.StringIndexOutOfBoundsException: Range [29, 14) out of bounds for length 48
          ;
        java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 54
    od;
    TryNextMethod();
  end );


InstallMethod(  := GeneratorsOfGroup
  "for a matrix group gens := StripMemory= StripMemory();
  #Trytwobasisvectors ajava.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 72
  functionjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
    java.lang.StringIndexOutOfBoundsException: Range [11, 9) out of bounds for length 32
F= java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 40
   =java.lang.StringIndexOutOfBoundsException: Range [36, 31) out of bounds for length 37
    java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 44
     java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 52

    #vvkk]:=OneF);
    java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 43
     java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 64
        repeat
            opt.java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 7
            Info(InfoGenSSvv[j =F;
                 
            res := ORB_NormalizeVector(vv);
        until res <> fail or opt.TryShortOrbitAdd(v,java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 14
ifres <
            if Size                 rectjava.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 73
                cand.points := [res[1]];
                cand.ops := [OnLines(java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 69
                # Note  Note that if java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 66
                # point will be taken next
java.lang.StringIndexOutOfBoundsException: Range [16, 17) out of bounds for length 16
                cand.points := [java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 20
                cand.ops := [OnRight];
            "for a matrixjava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 64
            return cand;function , java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 37
        ;
    fi;
    TryNextMethod();
  end q =Size()java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17

java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 40
  "for a matrix group over a FF,                        ,, java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 63
  [ IsGroup and java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 8
  if (java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 36
    java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 31
    Fif java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 25
fi;
    ( ,  java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 73

    ##Findavectoron java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 60
    if i = 0 and 
       ((opt!.Projective = # they might all be. java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 65
        java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 65
VectorsWithShortOrbitgrpo,java.lang.StringIndexOutOfBoundsException: Range [62, 61) out of bounds for length 63
            java.lang.StringIndexOutOfBoundsException: Range [54, 15) out of bounds for length 54
            bv := ht := HTCreate= HTCreate(v[1]*        e := ListWithIdenticalEntries(l,i
        fi;
        bv: bv{[..]};   #  take ofthem
    else
        bv := One(grp);
    fi;
    cand := rec( points := [], HTAdd(ht,v[i],[i]
    for          java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 30
        w :=java.lang.StringIndexOutOfBoundsException: Range [24, 22) out of bounds for length 35
        if Size(                xparentS.layerjava.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
            java.lang.StringIndexOutOfBoundsException: Range [16, 1) out of bounds for length 42
            Add(java.lang.StringIndexOutOfBoundsException: Range [20, 17) out of bounds for length 36
        else
            cand.java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 31
           java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 34
            # Note that if we j] >= 3 and e[j] <= immorblimit) or
           java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 66
        fi;
    od;
    return cand;
  java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 8

java.lang.StringIndexOutOfBoundsException: Range [15, 13) out of bounds for length 66
  , IsInt,IsObject],
  function(                if ji > java.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 61
    local ops,points;
    if i = 0 then
        points := [1..Minimumod
java.lang.StringIndexOutOfBoundsException: Range [29, 4) out of bounds for length 8
        points := [1..LargestMovedPoint(grp)];
    fi;
    ops :" to";
    return rec( points := points, ops := ops, used := 0 );
                               java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 41
    
GENSS_HACK := OnPoints;

InstallGlobalFunction( GENSS_OpFunctionMakerfijava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
  java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 17
  name :=               "MinE"cj);
  if name = "unknown" or=* java.lang.StringIndexOutOfBoundsException: Range [33, 34) out of bounds for length 33
  s := Concatenation( ""for a java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 66
                      name, "(x,el[",String( grp , java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 34
  f := InputTextString :=optjava.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 44
  Readjava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
  return GENSS_HACK;
end);

InstallMethod( FindBasePointCandidatesrepeat
[   java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 41
  function("..")
    res=java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 57
    gens :=        res < failthen
    if not(ForAll(gens,IsDirectProductElement)) or java.lang.StringIndexOutOfBoundsException: Range [16, 1) out of bounds for length 40
        TryNextMethod();
    fi;
    l := Length#point java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 70
    cand := rec( java.lang.StringIndexOutOfBoundsException: Range [16, 1) out of bounds for length 38
    for j in [1..lfi;
        factgens :=TryNextMethod;
        fac := Group(factgens)
S = java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 35
        cand2 := BaseStabilizerChain[java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 72
        F,d, java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 31
            op :=Info( java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 73
op2: java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 47
            (opt.java.lang.StringIndexOutOfBoundsException: Range [26, 24) out of bounds for length 59
                Add(cand.points,cand2.points[k]);
                Add(cand.ops,java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 30
;
        od;
    od;
u := 0
    return cand;
  end b= grp;


InstallGlobalFunctionjava.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 54
  , 
    local if Size  then

    if  Add(.psjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 48
    fi;

    NotFixedUnderAllGens := function( gens, x, op )
      if # point willjava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 66
        returnjava.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 16
      else
        return ForAny( gens, g->op(x,g) <> x )[  java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 57
      fiifi  then
java.lang.StringIndexOutOfBoundsException: Range [16, 4) out of bounds for length 8

    # S can be false or ops:=List([1.],x-;
     not(   
        # try java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 8
        for i in [2..Minimum(java.lang.StringIndexOutOfBoundsException: Range [23, 21) out of bounds for length 64
            if   name=GENSS_HACKthen java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 66
                Infoname,(x,el[",Stringindex,]);end" )java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
                return java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 20
cand=cand);
            fi;
        ;
        # Maybe we can take the last base point now acting non-projectively?
ve=false java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 77
     java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 60
Info(nfoGenSS3"Takingsamepointin non-";
            return rec( point := S!.orb[1], op := 1.] java.lang.StringIndexOutOfBoundsException: Range [22, 23) out of bounds for length 22
        fi;
    fi;

    # Now use the candidates we already have:
    repeat
        if            java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 31
            if IsBound(cand.points2) and java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 49
                cand :od;
                             used := 0cand.used : 
            else
                cand :=
                opt.StrictlyUseCandidates( java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 32
o.Reduced= java.lang.StringIndexOutOfBoundsException: Range [36, 37) out of bounds for length 36
            fi;
        fi;
         =candused+ 
        java.lang.StringIndexOutOfBoundsException: Range [12, 9) out of bounds for length 30
                          cand.points[candfi;
        if notfixed = false and optifparentS=falsethen
            if IsBound(cand.points2) then
                # Maybe else
                mightwantto use again
                Add(cand.Add(data.randpool)
                Addif java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 42
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 15
        fi;
java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 42
          
    return rec( java.lang.StringIndexOutOfBoundsException: Range [24, 18) out of bounds for length 41
                cand :if c[>3and [j] = java.lang.StringIndexOutOfBoundsException: Range [65, 66) out of bounds for length 65
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 8


InstallGlobalFunction( GENSS_CreateStabChainRecord,
   java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 63
    # parentS can be false or the                                   > jand [i > 10and
    local base, layer, stronggens, layergens, nr, orb,                                      op;

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

    if parentS = false then
        base := [];
        layer := 1;
                        ;
        layergens :AddSet(val,j;
    else
        base := parentS!.base;
        layer := parentS!.layer + 1;
        stronggens := parentS!.stronggens;
        nr := Length(m:Minimum
        Append(stronggens,gens);
        layergens := [nr+1..Length(stronggens)];
    fi;"MinEst=",minest Coinc")

    gens := ShallowCopy(orblimit=* ;
    java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 69
    #
    if IsInt(size) then
java.lang.StringIndexOutOfBoundsException: Range [45, 8) out of bounds for length 68
    else
        hashsize := opt.InitialHashSizeF, d java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 32
fi
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 40
                 : = java.lang.StringIndexOutOfBoundsException: Range [64, 63) out of bounds for length 65
                    =.java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 46
                     java.lang.StringIndexOutOfBoundsException: Range [28, 26) out of bounds for length 75
S:=  stab :  java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 68
              opt := opt, layerifres<>then
              stronggens := stronggens, layergens := java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 40
              size : java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 65
    if parentS = false then
        S!.topS := S;
    else
.java.lang.StringIndexOutOfBoundsException: Range [17, 15) out of bounds for length 33
    fifijava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
    if IsBound();
        S.randpool := opt.java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 0
[and sMatrixGroup java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 72

    Add(base,nextpoint);
    S.orb!.stabilizerchain := S;
    DimensionOfMatrixGroup(grp;

    return S;
  end );

InstallGlobalFunction( GENSS_RandomElementFromAbove,
  function( S, i )
# java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 69
    # in the chain "from above". These ifb)< java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 30
    b:bv[.]};   # java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 49
    # java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 7
    # infrastructure until they stabilise w = java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 49
    # means a java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
    # that an orbit is too             # Note that if wepjava.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 66
    # od
    # been generated in ajava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 8
    asjava.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 68
    # the stabiliserjava.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 21
    # or (for i=0) it can be equaljava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 8
    local ,j ,p java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 35
    if i = 0 thenend);
        GENSS_HACK := OnPoints;
    fi;
    if Sjava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 64
        Error("i if name = "unknown java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 66
    fi;
    SS := S;
    java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 43
        if Length(SS!.randpool) >)
            x :java.lang.StringIndexOutOfBoundsException: Range [40, 38) out of bounds for length 63
            topS := SS!.topS;
            break;
        fi;
SS!.= java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 63
            if IsBound(SSl =gens1])
                x := SS!.opt.RandomElmFuncf  inin[1l java.lang.StringIndexOutOfBoundsException: Range [22, 23) out of bounds for length 22
            else
                x := Next(SS!.opt.pr):= java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 41
            fi;
            =    #
            break;
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 11
        SS := SS!.parentS;
    od;
    # We now have a random element x in layer java.lang.StringIndexOutOfBoundsException: Range [0, 48) out of bounds for length 16
    I GENSS_NextBasePoint
     :=SS.-;
    while j < i do
        ol ,ijava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
        if IsObjWithMemory(x) then
          p := o!.op(o[1],x!.el);
        else
          p := o!.op(o[1],x
        fi;
if (java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
        java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 47
            java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
                             SS!i   java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 59
            AddGeneratorToStabilizerChaintopS,)
             add java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 72
             hefirstonejava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
            return GENSS_RandomElementFromAbove(S,java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 43
        fi;
        # Now sift through Schreier tree:
        while po > 1 do
            x := x * SS!.orb!.gensi[o!.schreiergen[po]];
            : !.java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 37
        rec java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 74
        java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
        j := j + 1;
    od;
    # After this, we have successfully reached i-th stabilizer
    return x;
  java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 8
   
java.lang.StringIndexOutOfBoundsException: Range [23, 21) out of bounds for length 50
  function( gens, size, layer, candoptRjava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 36
    cjava.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 35
    #        cand.pointscand.used,andops[candused];
     injava.lang.StringIndexOutOfBoundsException: Range [48, 41) out of bounds for length 67
cordforbasepoint java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 66
    # record. Add(java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 57
    # It also can be java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 15
    local base,gen,S,

I4"java.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 73
    next := InstallGlobalFunction( GENSS_CreateStabChainRecord,
    cand := next.cand parentS gens size, ,cand, java.lang.StringIndexOutOfBoundsException: Range [62, 61) out of bounds for length 63
    java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 55
                                     Info( InfoGenSS, 4, "Creating new stab
    base := S!.basebase : [;

 enumerationjava.lang.StringIndexOutOfBoundsException: Range [66, 65) out of bounds for length 74
    repeat
        Enumerate(S!.orb,opt.java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 30
        if not(IsClosed(S!.orb)) then
            if opt.FailInsteadOfError java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 33
                return "Orbit too java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 7
            
                Error#one in  java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 60
java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 15
        fi;
    until IsClosed(S!.orb);orb =Orb(   extop
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 79

    if layer > 1 then
        parentS!.stab := S;   # such that from now on randomS :rec java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 68
                              # generation works!
    else
        if (Length(S!.orb) > 50 or S!.orb!java.lang.StringIndexOutOfBoundsException: Range [42, 43) out of bounds for length 27
           S!.opt.OrbitsWithLog then
            if IsBoundjava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 52
S.orb!.depth")..")
            merk
            merk2 := Length(S!.stronggens);
            MakeSchreierTreeShallow(S!.orb);
            AppendS.S!.orb!.gens[merk1.LengthS!orb.gens]);
            java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 66
             java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
        fijava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 52
    fi;
    .java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 48
 

    # Are we done?
    if java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 51
        S!.proof := true;
        Info(InfoGenSS,4,"Leaving GENSS_StabilizerChainInner layer=", java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 74
        return S;
    fi;

    # Now create a few #asstrongjava.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 68
    stabgens : or(java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 67
    for i in [1..opt.RandomStabGens] do
        x := GENSS_RandomElementFromAbove(S,layer);
        (SS.IsOne(x)) then
            Add(stabgens,x);
        fi;
    od;
    Info(InfoGenSS,3,d   #java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 43
         " random stab els, ",
         Length(stabgenstopS:=SS.java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
     java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 70
        Info(InfoGenSS,3,"Found ",Length(stabgens)," 
        if size <> false then
            Sfjava.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 15
                                                   layerf;
        
            S!.stab := # We now have a random element x in layer SS!,
layer+1,candopt,);
        fi;
        if j := SS!.layer
        if opt.ImmediateVerificationElements > 0 then
            Info(InfoGenSS,2,"Doing immediate verification in layer ",
                 S!.layer," (",opt.ImmediateVerificationElements,
                 " elements)...");
             =0
#end
            while i < #S java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 49
:  + 1;
                x := GENSS_RandomElementFromAbovejava.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 67
                if return rec( point := S!.orb[i], op := S!.orb!.op, 
                    Info( cand =  ;
                          "(layer o
                     :=;
                fi;
            od;
        fi;

        .java.lang.StringIndexOutOfBoundsException: Range [18, 16) out of bounds for length 59
    else
        # We are not fi
        # thewe java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 45
        S!.proof := false;
    fi;

    used = 0);
    java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 13
o.java.lang.StringIndexOutOfBoundsException: Range [43, 41) out of bounds for length 51

InstallGlobalFunction(candused : java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 35
  java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 15
    local cand;
    cand := rec( points := [], ops := [] #Maybe java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 69
    java.lang.StringIndexOutOfBoundsException: Range [16, 8) out of bounds for length 57
        Add( cand.points, S!.            fi;
        Add( cand.    until opt.Reducedor java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 42
        S := S!.stab;
    od;
    return cand;
  )

InstallGlobalFunction(that  java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 69
  functionjava.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 68
    return p;
  java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 40

java.lang.StringIndexOutOfBoundsException: Range [12, 1) out of bounds for length 50
 java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 17
    return StabilizerChain( grp#java.lang.StringIndexOutOfBoundsException: Range [14, 1) out of bounds for length 61
  end );

InstallMethod(VerifyStabilizerChainMC, 
  "for a stabilizer         S!.topS := parenttopS;
  Ijava.lang.StringIndexOutOfBoundsException: Range [28, 26) out of bounds for length 36
  function( S, nrels )
    local i,x;

    java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 57
    i := 0; 
    while i < nrels do
        i := i + 1;
        if IsBound(S!.opt.RandomElmFunc) then
            x := S!.opt.RandomElmFunc();
        else
            x := Next(S!.opt.pr);
        fi;
        if AddGeneratorToStabilizerChain(S,x) then
            Info( InfoGenSS, 
                  "new size "So!.java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 32
            i := 0;
        fi;
    od;
  end );

InstallMethod( StabilizerChain, "for a group object and a#java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 69
    java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 24
  function( grp, opt )
    # means a randomjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
    # Possible#we thewe . java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 69
    #   randomgjava.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 68
       java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 70
     errorwillbe java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 62
             given  VerifyElementsand
    #                                   DeterministicVerification
    #   VerifyElements java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 67
    #   java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 7
    #                              (not yet java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 43
  java.lang.StringIndexOutOfBoundsException: Range [20, 12) out of bounds for length 65
    #               StabilizerChain of (SSjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 63
    #x := SS.optR)
    #               set to OnPoints if java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 16
            is java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 70
    #               if Base is set
    #   BaseOps:    a listSS:= SS!.java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
    #java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 68
    #               java.lang.StringIndexOutOfBoundsException: Range [38, 33) out of bounds for length 65
    #               elements, that is, the java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 18
    # x) 
    #   StrictlyUseCandidates: if set to java.lang.StringIndexOutOfBoundsException: Range [41, 45) out of bounds for length 12
    fi;
    #               points                return "Orbit java.lang.StringIndexOutOfBoundsException: Range [0, 33) out of bounds for length 28
    #               this is set when Base SS.layer                java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 71
#java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 11
     java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 28
    #   Cand:       initializer fi;
                   parentS!.stab :=   #thatfromrandomelement
                   java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 69
    #               "used", thepo := if eSorb)>50or.d > )a
    #               that SS =SS.java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
java.lang.StringIndexOutOfBoundsException: Range [17, 4) out of bounds for length 40
    #m :=S.orb.gens;
    #   StabGenScramble,
     
    #   StabGenAddSlots,
    #   Append(S!.stronggens!.ens{merk.ength.!java.lang.StringIndexOutOfBoundsException: Range [75, 74) out of bounds for length 79
    #                      random elements
     java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 66
    #                      vector and java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 7
    #   
    #   ... to be ,4"java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 73
    #
    pr,x,,,java.lang.StringIndexOutOfBoundsException: Range [37, 38) out of bounds for length 37

    java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 79

    # AddreSjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
    if (HasSize(grp) and not(IsBound(opt.Projective
       or IsBound(opt.Size) then
        ifjava.lang.StringIndexOutOfBoundsException: Range [56, 11) out of bounds for length 63
            opt.
        fi;
    fi;
    if IsBound(opt.Projective) and opt.Projective then
        opt.IsOne := GENSS_IsOneProjective;
    elif java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 27
    fi;
    # Now optif Ljava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 57
    # element is equal Info(InfoGenSS, 3, "Trying to make Schreier tree shallower (depth=",
    GENSS_CopyDefaultOptions(GENSS,opt);

    # Check for             Info(In, 3,"java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 62
    gens := S!.orb!.gensi := List!.gensi:=(S!.orb.ensx-x^-1);
    if Length(gens) = 0 java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 0
       ForAll(gens,opt.IsOne) then
izer java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 51
        S := 
                   java.lang.StringIndexOutOfBoundsException: Range [54, 52) out of bounds for length 70
                                              used := java.lang.StringIndexOutOfBoundsException: Range [0, 55) out of bounds for length 39
        Enumerate(S!.orb);
        S!.orb!.gensi := List(S!.java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 11
        S!.proof := true;
        S!.trivialgroup := true;
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 43
            opt.Projective = false) and
           S!.stab := GEjava.lang.StringIndexOutOfBoundsException: Range [60, 49) out of bounds for length 79
            java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 7
        fi;
        return S;
java.lang.StringIndexOutOfBoundsException: Range [24, 4) out of bounds for length 7
java.lang.StringIndexOutOfBoundsException: Range [25, 4) out of bounds for length 4
    # Setup            ifpt 0java.lang.StringIndexOutOfBoundsException: Range [53, 54) out of bounds for length 53
    # it in the opt record:
    .java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 36
                      rec( java.lang.StringIndexOutOfBoundsException: Range [17, 35) out of bounds for length 34
java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 71
                           addslots := opt.StabGenAddSlots  .java.lang.StringIndexOutOfBoundsException: Range [58, 55) out of bounds for length 58
                           maxdepth := opt.StabGenMaxDepth ));

    java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 52
    if IsBound(opt.while i < opt.ImmediateVerificationElements do
        if opt.i :=i  ;
            opt.VerifyElements := 0;
        elif opt.random = 1000 then
            opt.DeterministicVerification := java.lang.StringIndexOutOfBoundsException: Range [0, 49) out of bounds for length 8
            InfoIIjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 55
                 "implemented!");
        else
            prob := 1/2;
            IsStabilizerChainByOrbIsInt ,
            while prob * (1000-opt.locali
                prob := prob / 2;
                opt.VerifyElements := opt.VerifyElements + 1;
            od;
        fi;
    fi;
    # The new style error bounds:
    if IsBound(opt
        prob :=java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 50
        opt.VerifyElementscand:=rec :  =
        while prob >= opt.ErrorBound do
            prob := prob / 2;
            opt.S : java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        od;
    fi;
                
    #    randomjava.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 62
    if IsBound(opt.Base) then
        java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 43
java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 66
 takebase java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 8
              "for a stabili java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 50
;
java.lang.StringIndexOutOfBoundsException: Range [22, 12) out of bounds for length 45
                #               (InfoGenSS,2,"Doing randomizedjava.lang.StringIndexOutOfBoundsException: Range [55, 51) out of bounds for length 57
                 java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 70
                    cand.ops := ListWithIdenticalEntries(Length(opt.Base  a of             x := S!.opt.RandomElmFunc()
                                                         OnLines);
                else
                    cand.ops := ( InfoGenSS, 2, "Verificationjava.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 64
                                                         #optcand  java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 11
                fi;
            else
                cand.ops :java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 22
            #java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 23
        fi;
        opt.StrictlyUseCandidates    rational#               "used", theijava.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 66
    elif IsBound(opt.Cand) then
        cand := opt.Cand;
       java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 39
            cand.used := 0;
        fi;
        cand.points2 := [];
        cand.ops2 := #randomelements
    java.lang.StringIndexOutOfBoundsException: Range [8, 9) out of bounds for length 8
#try   
        cand: #s ifjava.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 70
    #  java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 5
    if not(IsBound(opt.StrictlyUseCandidates #               java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 65
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 43
    java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
java.lang.StringIndexOutOfBoundsException: Range [23, 4) out of bounds for length 48
 java.lang.StringIndexOutOfBoundsException: Range [57, 39) out of bounds for length 77
                                         cand, opt, false);
           if to java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 7
        S := GENSS_StabilizerChainInner#    initializerforjava.lang.StringIndexOutOfBoundsException: Range [43, 44) out of bounds for length 43
                                         cand, opt, false;
    else
        S :(java.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 74
cand, 
    fi;
    if IsString(S) then return S; fi;

    # Do we already have a proof?
    if S!.proof then
        if not(IsBound(opt.Projective)) or java.lang.StringIndexOutOfBoundsException: Range [0, 46) out of bounds for length 30
            java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 44
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
        return S;
    fi;
    if opt.VerifyElements#

    Info(InfoGenSS,2,"Current#aS!.orb!.gensi.java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 52
    # Now a S!.proof : java.lang.StringIndexOutOfBoundsException: Range [24, 22) out of bounds for length 31
S   # java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 60
n known            java.lang.StringIndexOutOfBoundsException: Range [50, 45) out of bounds for length 51
        while Size(S) < S!.size do
        fi;
                 java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 43
            if IsBound(opt.RandomElmFunc) then
                x := opt.RandomElmFunc();
            
: java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 34
            fi;
            if AddGeneratorToStabilizerChain
                Info( InfoGenSS, 2, "Increased size to 
            fi;
        java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
. := java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 25
        if (not(IsBound(opt.Projective)) Info                          used:=0),opt;
           IsIdenticalObj(opt.IsOne,IsOne) then
            S!.orb!.gensi=S!orb.java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 52
f;

         java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 36
       java.lang.StringIndexOutOfBoundsException: Range [33, 31) out of bounds for length 54
    fi;
    # Now clean up the random element pools to save memory:
    SSOnPoints;
    while SS <> false do
        if java.lang.StringIndexOutOfBoundsException: Range [12, 1) out of bounds for length 16
            SS!.                     ;
        fi;
        SS : ops:=
    od;
    return S;
  end );

InstallMethod( java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 24
  "for a stabilizer chain and a java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 31
   java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 61
  function( S, el )
    # Increases the java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 11
    local SS, r, n, pr, o    
    IsBoundS!.trivialgroup)and S.then
        if S!.IsOne(el) then
            return java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 7
        ;
        SS := StabilizerChain(Group(el),S!.opt);
        if:= GENSS_StabilizerChainInnerjava.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 77
        for n in elif IsBound(opt.Sizethen
(S then java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 37
        od;
        Unbind(S!.;
        return true;
    ;

    r :fi
   java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 17
    isone      java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 47
        return false        (java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 70

    # if S.ize<>then   #  knew         java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
    #    ifopt.=             Info(InfoGenSS,2,"Know,   tjava.lang.StringIndexOutOfBoundsException: Range [65, 62) out of bounds for length 77
     ()java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 75
#Nowa java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 40
    if r.S <> false thenInfo(: pr)
        SS := r.S;
        Info( InfoGenSS, 2, "Adding new generator to stabilizer chain ",
              "in layer ", SS!.layer, "..." );
        Add(fi;
        Add(SS!.x := opt)
        java.lang.StringIndexOutOfBoundsException: Range [38, 23) out of bounds for length 71
        java.lang.StringIndexOutOfBoundsException: Range [12, 10) out of bounds for length 44
        newstrongnr := Length(SS!.stronggens);
        Info( InfoGenSSjava.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 54
      .";
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 14
            Enumerate(SS!.orb,S!.optif (grp,java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
if(java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 42
                if S!.opt.FailInsteadOfError then
java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 78
                else
                    Error("Orbit too end ;
                fi;
            for  java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 47
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 32
        Info( # Increases the setjava.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 61
        SS!.proof := false;
    else   # case (2)
        # Note that we do not create a pr instance here for one
        # generator, this will be done later on as needed...
S =r, java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 39
        newstrongnr := Length(SS!orninS SI 
        SS!.stab := GENSS_StabilizerChainInner([r.java.lang.StringIndexOutOfBoundsException: Range [0, 53) out of bounds for length 11
                           java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 20
        if IsString(r:  
S java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
   java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 7
   java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 69
    # the new gen came # java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 33
     wen#java.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 47
f;
    ifr.S<>  therejava.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 33
    # shallower:
    while S!.  (2) the sift  throughthe the java.lang.StringIndexOutOfBoundsException: Range [62, 61) out of bounds for length 75
        Add(SS.java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 50
        Add(S!.layergens,newstrongnr);
        java.lang.StringIndexOutOfBoundsException: Range [31, 28) out of bounds for length 45
        Add(S!.orb!.gensi,r.rem^-1);
        
    od;
    # Finally, we have to add it to AddGeneratorsToOrbit(SS!.orb,[r
    java.lang.StringIndexOutOfBoundsException: Range [36, 33) out of bounds for length 52
    return trueijava.lang.StringIndexOutOfBoundsException: Range [22, 20) out of bounds for length 49


java.lang.StringIndexOutOfBoundsException: Range [16, 8) out of bounds for length 20
  [ java.lang.StringIndexOutOfBoundsException: Range [14, 11) out of bounds for length 22
  functionESS.        until IsClosed(SS!.or
    java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 30
e  .java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 22
    preS := false;
    while S <> false do
        o := S!.orb;
        if newstrongnr= java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 77
          p := o!.op(o[1],x!.el);
        else
          p := o!.op(o[1],x);
        fi;
         :Position()java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
        if po = fail then   # not in current stabilizer
            eturnrec(isone =false,rem=x,S = , preS : preS;
        fi;
        # Now sift # where the generators the generators of the PCGS
        java.lang.StringIndexOutOfBoundsException: Range [16, 13) out of bounds for length 23
            x := x * S!.orb!.gensi[o!.java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 38
            po := o!.schreierpos[po];
        d;
        preS := S        o  .orb;
s;
    ;
   r : rec         =then   #not inin 
    return r;
  end );

InstallMethod( SiftGroupElementSLP, 
  "for a stabilizer chain and a group element",
  [ whilepo  1 
  function( S,            x :      Add(java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 23
    : LargestMovedPoint(o!gens)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
    preS := falsepo :=o!schreierpos[o]java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
    :=: Sjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
    nrstrong :=fi;odjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
    slp:    ! = ;
    while.java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 19
        o := java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
        p := o!.op(o[1],x);
        po := Position(o,p);
        =fail    #not in stabilizer
            return rec( isone := false, rem :=                            [slp{[Length(slp),Len1.1]]lse
                        slp := fail );
        fi;
        # Now sift through Schreier tree:
        while po > 1 do
            x := x * S!.orb!end );
            Add(slp,1);
            Add(slp,S!.layergensInstallMethod(StrongGenerators "ora stabilizerchain"
            po := o!.schreierpos[po];
        od;
        preS := S;
        S := S!.stab;
    od;
    r := rec( rem := x, S := false, preS := preS, isone :=InstallMethod(NrStrongGenerators fora stabilizer ",
    if r.isone then
        if Length(slp) = 0 then   # element was the java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 15
java.lang.StringIndexOutOfBoundsException: Range [27, 12) out of bounds for length 61

            r.slp := StraightLineProgramNC(
                           [slplocalo,,1,2;
        fi;
    else
        =fail;
    fi;
    eturn r;
  end );

 StrongGenerators,end )java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 8
  [ IsStabilizerChainInstallMethod(AddNormalizingGenToLayer
  for a stabilizer
    return S!.stronggens;
  end );

InstallMethod(NrStrongGeneratorsastabilizerchain"java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
  [ IsStabilizerChain and java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 69
  unction(else
    return Length(return Product(gens{word});
  end );

InstallMethod( ForgetMemory, "for a stabilizer #is knownjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 2
   and java.lang.StringIndexOutOfBoundsException: Range [35, 32) out of bounds for length 69
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 15
    ForgetMemory(# by . java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 66
    while S <##           cosetnrlimitfactor
        ForgetMemoryS.rb;
        ForgetMemory(S!.orb!.gensi)#     allstrong = S)
         = !stab;
    od;
  end );

InstallMethod( ##            UniteSet(stlayergens;
  "for a stabilizer chain, a group element, and a prime number",
  [ IsStabilizerChain and IsStabilizerChainByOrb##        st;
  function( S, x, p )
java.lang.StringIndexOutOfBoundsException: Range [8, 4) out of bounds for length 77
     It #pres =VerifyStabilizerChainTC(.;
    # built up #o := S!orb;
    oldnrgens : Length(!gens);
    #known  them.
    # This function assumes that x is a new java.lang.StringIndexOutOfBoundsException: Range [0, 53) out of bounds for length 48
    # IsPermOnIntOrbitRep(o) then
    # by S. So in particular, S is not necessarily the top of the 
    # stabiliser chain but the layer where actually something happens.
    # Namely, since it is known that the new generator generates
    # a group which is p times ##      # First create a few Schrgenerators
     t  known  the java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 63
    # p times as big and we can enumerate it relatively cheaply.
    local lmp,o,oldnrgens;
    o :o!pos: 1;
    !genstoapply =[ldnrgens+Mjava.lang.StringIndexOutOfBoundsException: Range [28, 24) out of bounds for length 39
                    #generator position numbers
    (o.gensi,x-1)java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
    if IsPermOnIntOrbitRep(o) then
        lmp := LargestMovedPoint(o!.gens);
        if lmp > Length(o!.tab) then
            Append(o!.tab,ListWithIdenticalEntries(lmp-Length(o!.tab)ljava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
        fi;
    ;
    ResetFilterObj(o,IsClosed);
    o!.pos := 1;
    o!.genstoapply := [oldnrgens+1..Length(o!.gens)];
    repeat
        Enumerate(o,S!.opt.OrbitLengthLimit);
         (() 
            if S!.opt.Info( InfoFpGroup, 3, "    defined,gs[]3)java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
                return "Orbit too long, increase S##                 slp n  : 1
            else
                Error("Orbit too long##                  not(lp.sone)then
            ;
        fi;
    until IsClosed(S!.orb);
     : 1..ength(!gens)]java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43

    # Now fix up the stabilizer chain record:
    if not x in S!.stronggens then
      Add(S!.stronggens,x);
      Add(S!.layergens,Length(S!.stronggens));
    fi;
    Unbind(S!.size);   # whatever wejava.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
 
  end );

S_CreateSchreierGenerator,java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
  "for a stabilizer chain, a position in the first orbit and a gen java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 26
  [ IsStabilizerChain and IsStabilizerChainByOrb, IsPosInt, IsPosInt ],
  function( S, i, j )
    local o,p,w1,w2;
    o := S!.orb;
    p := Position(o,o!.op(o[i],o!.gens[j]));
    if o!.schreierpos[p] = i and o!.schreiergen[p] = j then
        return fail;
    fi;
    w1 := TraceSchreierTreeForward(o,i);
    w2 := TraceSchreierTreeBack(of
    return [w1,j,w2];
  end );

InstallGlobalFunction( GENSS_Prod,
  function( gens, word )
    if Length(word) = 0 then 
        return gens[1]^0; 
    else
        return Product(gens{word
    fi;
  end );
  
InstallGlobalFunction( VerifyStabilizerChainTC,
  function( S #              ;
##    function( S )
##      ocal        # comp  java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
#            nrgens,nrschr,,pres,sb,gs,lp,,,,,
##            cosetnrlimitfactor;
##  
##      allstrong := function(S)
##        st := Set(S!.layergens);
#        S!sjava.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 35
##            S := S!.stab;
##            UniteSet(st,S!.layergens);

##        return st;
##     end;
##      if S!.stab <> false then
##          pres := VerifyStabilizerChainTC(S!.stab);
##          if IsList(pres) then return pres; fi;
##          strongbelow := allstrong(S!.stab);
##      else
##          pres := StraightLineProgram([[]],0);
##          strongbelow := [];
##      fi;
##      strong := allstrong(S);
##      Info(InfoGenSS,1,"Verifying ] );
##  
##odjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
##      sgs := [];
##      i := 1;
##      j := 1;
##      o := S!.orb;
n=(g;
## else
##          #              Info,,# we do not want minimal gaps to bein he  cosettable
##          Info(InfoGenSS,3,"Creating ",n," Schreier generators...")                # fnecessary the 
##          while Length(sgs) < n and
##                i <= Length(o) do
##              sg := GENSS_CreateSchreierGenerator(S,i,j);
##              j := j + 1;
##              if j > nrgens then
#                   := ;
##                  i := i + 1;
##              fi;
##              if sg <> fail then
##                  Add(sgs,sg);
##              fi;
##          od;
##      end;
##  
##      nrschr := S!.opt.java.lang.StringIndexOutOfBoundsException: Range [0, 43) out of bounds for length 35
##      MakeSchreierGens(nrschr);
##      f := FreeGroup(Length(strong));
##      gens := GeneratorsOfGroup(f);
##      gensi := List(gens,x->x^-1);
##      subgens := gens{List(strongbelow,i->Position                firstDef]  =firstFree;
##      Hrels := ResultOfStraightLineProgram(pres,subgens);
##      if S!.opt.Projective then
##          ords := List([1..nrgens],i->ProjectiveOrder(o!.gens[i]));
##      else
##          ords := List([1..nrgens],i->Order(o!.gens[i]));
##      fi;
##      Prels := Listnext[lastDef   =0java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
##      Grels := [];
##      cosetnrlimitfactor := 4;
#      true     will  leftby  eventually
##          for k in [Length(Grels)+java.lang.StringIndexOutOfBoundsException: Range [0, 37) out of bounds for length 35
##              Grels[k] := GENSS_Prod(gens,sgs[k][1]+sb) * gens[sgs[k][2]+sb] * 
##                          GENSS_Prod(gensi,java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 29
##              x := GENSS_Prod(o!.gens,sgs[k][1]) * o!.gens[sgs[k][2]] * 
##                   GENSS_Prod(o!.gensi,sgs[k][3]);
##              if S!.stab <> false then
##                  slp := SiftGroupElementSLP(S!.stab,x);
##                  if not(slp.isone) then
##                      return [fail,S!.layer];
##                  fi;
##
##                                                                      givesome 
##                  sgs[k][4] := slp.slp;
##              else
##                  if not(S!.IsOne(x)) then
##                      return [fail,S!.layer];
##                  fi;
##                  sgs[k][4] := false;
##              fi;
##          od;
##          Info(InfoGenSS,2,"Doing coset enumeration with limit ",
##               
##           =CosetTableFromGensAndRels,(,,Grels),
##                     subgens:max := cosetnrlimitfactor*Length(o),silent);
##          if ct = fail java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 7
##              cosetnrlimitfactor := QuoInt(cosetnrlimitfactor Info(InfoFpGroup ,"t" nrdef, \,nrdel,"t,nrdef- \"java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
##              Info(InfoGenSS,2,"Coset enumeration did not finish!");
##         #1;
##              if nrschr > Length(sgs) # or
##                 #nrschr  S.opt.MaxNumberSchreierGens 
##                 then   # we are done!
##                  # Something is wrong!
##                  return [fail, S table[i]: StructuralCopy2i-1 ;
##              fi;
##          else
##              Info(InfoGenSS,2,"Coset enumeration found ",Length(ct[1]),
##                   " cosets.");
##          #Error(2);
##              if Length(ct[1]) = Length(o) then
##                  # Verification is OK, now build a presentation:
##                  l := GeneratorsWithMemory(
##                         ListWithIdenticalEntries(S!.nrstrong,()));
##                  li := List(l,x->x^-1);
##                  newpres := ResultOfStraightLineProgram(pres,
##                                     l{[1..S!.strongbelow]});
##                  for k in [1..nrgens] do
##                      Add(newpres,l[k+sb]^ords[k]);
##                  od;
#    # the 
##                      if sgs[k][4] <> false then
##                          Add(newpres,
##                              GENSS_Prod(l,sgs[k][1]+sb)*l[sgs[k][2]+sb]*
##                              java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 0
##                              ResultOfStraightLineProgram(sgs[k][4],l)^-1);
#                      else
#AddnewpresGENSS_Prod(,k[1]sb*[k]2java.lang.StringIndexOutOfBoundsException: Index 83 out of bounds for length 83
#                                      GENSS_Prod(i,sgs[]3+b);
##                      fi;
##                  od;
##                  Info(InfoGenSS,2,"Found presentation for layer ",S!.layer,
##                       " using ",Length(newpres)," java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 21
##                  return SLPOfElms(newpres);
##              fi;
##          fi;
##          nrschr := QuoInt(nrschr*4,2);
##          MakeSchreierGens(nrschr);
##      od;
##    end);


GENSS_CosetTableFromGensAndRelsInit :=
function(fgens,grels,fsgens,limit)
    local   next,  prev,            # next and previous coset on lists
            firstFree,  lastFree,   # first and last free coset
            firstDef,   lastDef,    # first and last defined coset
            table,                  # columns in the table for gens
            rels,                   # representatives of the relators
            relsGen,                # relators sorted by start generator
            subgroup,               # rows for the subgroup gens
            i, gen, inv,            # loop variables for generator
            g,                      # loop variable for generator col
            rel,                    # loop variables for relation
            p, p1, p2,              # generator position numbers
            app,                    # arguments list for 'MakeConsequences'
            j,                      # integer variable
            length, length2,        # length of relator (newrels  RelatorRepresentativesnewrels)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
            cols,
            nums,
            l,
            nrdef,                  # number of defined cosets
            nrmax,                  # maximal value of the above
            nrdel,                  # number of java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 5
            nrinf;                  # number for next information java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 67

    # give some information
    Info( InfoFpGroup, 3     defined java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 65
    nrdef := 1;
    nrmax := 1;
    nrdel := 0;
    nrinf := 1000;

    # define one coset (1)
    firstDef  := 1;  lastDef  := 1;            #      if S!java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 32
    firstFree: ;lastFree: limit;

    # make the lists that link             rel,                    # loop for relation
       next:=[ . limit+1]  next[ =0 next[imit := 0;
    prev := [ 0 .. limit - 1 ];  prev[2] :=app,#argumentsfor'akeConsequences

    # compute the representatives for the relators
    rels := RelatorRepresentatives( grels );

    # make the columns for the generators
    table := [];
    for gen  in fgens  do
        g: (limit,  );
        Add( table, g );
inot (gen^inrels  gen^2in )t
            g := ListWithIdenticalEntries(limit, 0 )java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
        fi;
        Add( table, g );
    od;

      for the  java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 64
    rels, table, true );

    # make the rows for the subgroup generators
    subgroup := [];
                ,                 java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 62
      #TthisshoulduseExtRepOfObj - itsfaster
      # cope with SLP elms
      if IsStraightLineProgElm(rel) then
        rel:=EvalStraightLineProgElm(rel);
      fijava.lang.StringIndexOutOfBoundsException: Range [9, 10) out of bounds for length 9
        length := Length( rel );
        length2 := 2 * length;
        nums := [ ]; nums[length2] := 0;
        cols := [ ]; cols[length2] := 0;

        # compute the lists.
        i := 0;  j := 0;
        while i < length do
            i := i + 1;  j := j + 2;
            gen := Subword( rel, i, i );
            p := Position( fgens, gen );
            if p = fail then
                p := Position( fgens, gen^-1 );
                p1:  *p;
                p2 := 2 * p - 1;
           java.lang.StringIndexOutOfBoundsException: Range [16, 17) out of bounds for length 16
                p1 := 2 * p - 1;
                p2 := 2 * p;
            fi;
            [p1]
            nums      done:java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 40
        od;
        Add( subgroup, [ nums, cols ] );
    od;

    # make the structure that is passed to 'MakeConsequences'
    app := [ table,# 
             firstFree, lastFree, firstDef, lastDef, 0, 0 ];

    # we do not want minimal gaps to be marked in local ,osets,cosetsrevtab,i,,ew,nrcosets,ptpjava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
    app[12] := 0;

return#cosets : [1;
                app := app, closed := false, table := table, limit := limit,
                fgens := fgens );
end;

GENSS_DoToddCoxeter := function( r )
    local app,fgens,firstDef,firstFree,gen,i,inv,lastDef,lastFree,next,nrdef,
          nrdel,nrinf,firstDef  := 1;  lastDef 1;

    fgens := r.fgens;
    nrdef := r. #make  lists   together the cosets
     :=r.nrmaxjava.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21
    nrdel := r.nrdel;
    nrinf := java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 50
    app := r.app;
    table := app[1];
    next := app[2];
    prev := app[3];
    relsGen := app[4];
    subgroup := app[5];
    firstFree: app6;
    lastFree := app[7];
    firstDef := app[8];
    

    # unover all the cosets:
    while firstDef <> 0  do

ows look  undefinedentries
        #                         cosetsrevtab[x] =new;
            gen := table[i];

            if gen[firstDef] <= 0  then

                inv := table[i + 2*(i mod 2) - 1];

                ##if ptsrev[ = then
                if firstFree = 0  then
                    app[6] := firstFree;
                    app[7] := lastFree;
                    app#     #We havereached anew  a word that
                    app[9] := lastDef;
                    r.nrdef := nrdef;
                     =nrmax;
                     :=[ ; cols[length2 := 0java.lang.StringIndexOutOfBoundsException: Range [40, 41) out of bounds for length 40
                    nrinf : nrinf;
                    ##                        ;
                fi;

                # update the debugging information
                nrdef := nrdef + 1;
                if nrmax <= firstFree  then
                    nrmax := firstFree;
                fi;

                # define a new coset
                gen[firstDef]   := firstFree;
                inv[firstFree]  := firstDef;
                next[lastDef]   := firstFree;
                prev[firstFree] := lastDef;
                lastDef         := firstFree;
                firstFree       := next[firstFree];
                next[lastDef]   := 0;

                # set up the deduction queue and run over it until it's empty
                app[6] := firstFree;
                app[7] := lastFree;
                app[8] := firstDef;
                app[9] := lastDef;
                app[10] := i;
                app[11] := firstDef;
                nrdel := nrdel + MakeConsequences( app );
                firstFree := app[6];
                lastFree := app[7];
                firstDef := app[8];
                lastDef  := app[9];

                # give some information
                if nrinf <= nrdef+nrdel then
                    Info( InfoFpGroup, 3, "\t", nrdef, "\t", nrinf-nrdef,
                          "\t", 2*nrdef-nrinf, "\t", nrmax );
                    nrinf := ( Int(nrdef+nrdel)/1000 + 1 ) * 1000;
                fi;

            fi;
        od;

        firstDef := next[firstDef];
    od;

    Info( InfoFpGroup, 2, "\t", nrdef, "\t", nrdel, "\t", nrdef-nrdel, "\t",
          nrmax );

    # separate pairs of identical table columns.                  
    i in[1 .. Length( fgens ) ] do                             
        if IsIdenticalObj( table[2*i-1], table[2*i] ) then
            table[2*i] := StructuralCopy( table[2*i-1] );       
        fi;                                                                
    od;

    # standardize the table
    StandardizeTable( table );

    # return the success result
    r.closed := true;
    return true;
end;

GENSS_ToddCoxeterExpandLimit := function(java.lang.StringIndexOutOfBoundsException: Range [0, 42) out of bounds for length 21
    local app,g,l,limit,next,prev,table;
    if newlimit <= r.limit then return r; fi;
    app := r.app;
    table := app[1];
    next := app[2];
    prev := app[3];
    limit := r.limit;
    ext[ =0
    prev[newlimit] := newlimit-1;
    for g  in table  do g[newlimit] := 0;  od;
    for l  in [ limit+2 .. newlimit-1 ]  do
        next[l] := l+1;
        prev[l] := l-1;
        for g  in table  do g[l] := 0;  od;
    od;
    next[limit+1] := limit+2;
    prev[limit+1] := 0;
    for g  in table  do g[limit+1] := 0;  od;
    app[6] := limit+1;   # this                     OK,now a java.lang.StringIndexOutOfBoundsException: Range [67, 68) out of bounds for length 67
    l =  ;
    app[7] := newlimit;     # this is lastFree
end;

GENSS_TCAddRelators := function(r,newrels)
  local i,relsGen;
  newrels := RelatorRepresentatives(newrels);
  newrels := RelsSortedByStartGen( r.fgens, newrels, r.table, true );
  relsGen := r.app[4];
  for i in [1..Length(relsGen)] do
      Append(relsGen[i],newrels[i]);
  od;
end;


##  VerifyStabilizerChainTC5 := 
##    function( S )
##     local ,relsHrels,Prels,cosetlimit,,,f,
##            gens,gensi,hom,k,l,li,newpres,newrel,nrcosets,nrgens,o,opgens,
##            ords,pres,r,rels,sb,stronggens,strongi,subgens,tc,words;
##  
##      if S!.stab <> false    firstFree := app[6];
##          pres := VerifyStabilizerChainTC5(S!.stab);
##          if IsList(pres) then return pres; fi;
##      else
##          pres := StraightLineProgram([[]],0);
##      fi;
##      Info(InfoGenSS,1,"Verifying stabilizer chain in layer ",S!.layer);
##  
##      o := S!.orb;
##      nrgens := Length(o!.gens);
##      sb := S!.strongbelow;
##              
##      f := FreeGroup(sb+nrgens);
##      gens := GeneratorsOfGroup(f);
##      gensi := List(gens,x->x^-1);
##      allgens := 0*[1..2*Length(gens)];
##      {[,3.* #thatstill  ought beequal the
##      allgens{[2,4..2*Length(gens)]} := gensi;
#       =gens{1.!.]}
##      Hrels := ResultOfStraightLineProgram(pres,subgens);
##      if S!.opt.Projective then
#          ords =List([.nrgens,i-ProjectiveOrder(.ens[i])java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
##else
##          ords := List([1..nrgens],i->Order(o!.gens[i]));
##      fi;
##      Prels := List([1..nrgens],i->gens[i+sb]^ords[i]);
##      Grels := [];
##      stronggens := StrongGenerators(S);
 (stronggens,-x^1)java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
# irstDef = 8];
#    lastDef : app9]java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
##      opgens{[2,4..2*Length(stronggens)]} := strongi;
##  
##      # Now start up a coset enumeration:
##              # run through all the rows and look for undefined entries
##      Info(InfoGenSS,2,"Starting coset enumeration with limit ",
##           cosetlimit," and ",Length(Hrels),
##           +gen:= table[];
##      rels := Concatenation(Hrels,Prels);
##      tc := GENSS_CosetTableFromGensAndRelsInit(gens,rels,subgens,cosetlimit);
##      done := GENSS_DoToddCoxeter(tc);
##          
#F=(oopgenst,ble)
##          local TraceWord,cosets,cosetsrevtab,i,j,new,nrcosets##else
##                ptsrev,schgen,schpt,w1,w2,x,y;
##          nrcosets := Length(table[1]);
##          cosets := [1];
##          cosetsrevtab := 0*[1..nrcosets]##c 8:= firstDef;
#1 : 1
##          pts := [o[1]];
##          ptsrev := 0*[1..Length(o)];
##          ptsrev[1] := 1;
##          #          #  tc=nrinf;
##          schgen := [fail];
##          i := 1;fi;
##          TraceWord := function(pos)
##              local w;
##              #              od;
##              while pos > 1 do
##                  Add(w,nrmax := firstFree;
##                  pos := schpt[pos];
##              od;
##              return Reversed(w);
##          end;
##          while i <= Length(cosets) do
##              for j in [1..Length(opgens)] do
##                  x := table[j][cosets[i]];
##                  if x <> 0 then   # image is defined:
##                      if cosetsrevtab
##                          Add(cosets,x);
##                          new := Length(cosets);
##                          cosetsrevtab[x] := new;
##                          schpt[new] := i;
##                          schgen[new] := j;
##                          pt := o!.op(pts[i]firstFree       : next[]java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
##                          y := Position(o,pt);
##                          if ptsrev[y] = 0 then
#firstDef= 8];
       y] : new
##                          java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
##                              
##                              # maps the starting point of the orbit to java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 7
##                              # same point as the one of another coset!
##                              
##                              w2 := TraceWord(new);
##                              return [w1,w2];
##                          fi;
##                      fi;
##                  fi;
##              od;closed: truejava.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21
##              i := i + 1;
##          od;
##          Error("Bad, this should never have been reached!");
##          return if newlimit <= r.lim return ;fi;
##      end;
#  
##      while true do   # will be left by return eventually
##          if done = true then
##              nrcosets := Length(tc.table[1]);
#          (,,Coset found "n, cosets")
##              if nrcosets = Length(o) then
##                  # Verification g     do g[ : 0  ;
##                  l := GeneratorsWithMemory(
##                         ListWithIdenticalEntries(S!.nrstrong,()));
##                  newpres := ResultOfStraightLineProgram(pres,
##                                     l{[1..S!.strongbelow]});
##                  for k in [1..nrgens] do
##                      Add(newpres,l[k+sb]^ords[k]);
##                  od;
##                  hom := GroupHomomorphismByImagesNC(f,Group(l),gens,l);
##                  for k in Grels do
##                      Add(newpres,ImageElm(hom,k));
##                  od;
##                  Info(InfoGenSS,2,"Found presentation for layer ",S!.layer,
##                       " using ",Length(newpres)," relators.");
##                  return SLPOfElms(newpres);
##              elif nrcosets < Length(o) then
##                  Error("This cannot possibly have happened!");
##                  return [fail,S!.layer];
##              else   # nrcosets > Length(o)
##                  Info(InfoGenSS,2,"Too many cosets, we must have forgotten ",
##                       "another relation!");
##                  Error("This cannot possibly have happened2!");
##                  return [fail,S!.layer];
##              fi;
##          fi;
##          # Now we have to find another relation, we do a breadth-first
##          # search through the already defined cosets to find two cosets
##          # that are still different but ought to be equal because the
# #  orbit points  java.lang.StringIndexOutOfBoundsException: Range [51, 52) out of bounds for length 51
(o,opgenstctable);
##          el := EvaluateWord(opgens,words[1])/EvaluateWord(#          fi;
##          r := SiftGroupElementSLP(S,el);
##          if not(r.isone) then
##              # Error, we found a new stabilizer element!
##              return [fail,S!.layer,el];
##          fi;
##          newrel := [(EvaluateWord(allgens,words[1])
##                      /EvaluateWord(allgens,words[2]))
#          /ResultOfStraightLineProgram.lp,ens];
#.#  !tab  then
elsAppend(relsGen[i],newrelsrelsGen[[,[]);
##          if Length(words[1]##if res <> true then return res; fi;
##              tc.app[10] := words[1][1];
#java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
###            (rbit of java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 19
##              dTwoWords,rels,rels,,allgenscosetlimit,doneel,fjava.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
#              ] > 
##                  tc.app[##      invtab: ords,,,,,,subgens,cwords
##              else
##                  tc.app[10] := 2*words[1];
##              fi;
##          fi;
##          #Print("<\c");
##          #for i in [1..tc.limit] do
##          #    for j in [1.#      ;
#           if tc.[ji]<> then
##          #            tc.app[11] := i#  
##          #            tc.app[10] := j;
##          #            tcjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 15
##          #        fi;
##          #    od;
##          #od;
##          tc.app[11] := 1;
##          tc.nrdel := tc.nrdel + MakeConsequences( tc.app );
##Print(-\)
##          done := GENSS_DoToddCoxeter(tc);
##          #Print(">\c");
##          if Length(Grels) mod 100 = 0 then
##              #Print("\n")#       !.##      # Now we  nice  breadthfirst  suchthat all inverses  
##             java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 70
 LengthPrels)""eG)"java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 68
##          fi;
##      od;
##      
##  
##  VerifyStabilizerChainMax := 
##    function( S )
##      local bl,count,d,gens,i,invtab,j,k,o,p,r,res,s,w1,w2,x,xi,y,isone;
##  
##      isone:=S!Ijava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
##      if #                 java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 57
##          res := VerifyStabilizerChainMax(S!.stab);
#          res >true thenreturn ; ijava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
##      fi;
#      (,1" chain  ayer #          ,LengthHrels)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
##           " (orbit of length ",Length or d  ..!] do
##  
##      count := 0;
##      gens := ShallowCopy(Set(S!.orb!.gens));
##      invtab := [];
#      : Lengthgens)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
##      for i in [1..k] ##nrcosets := Length(table[1]);
##          x := gens[i];
##          xi := x^-1;
##          p := Position(gens,xi);
##          if p = fail then
##              Add(gens,xi);
##              invtab[i] := Length(gens);
##              invtab[Length#          schpt :=[ail] tree
#          
vi :p;
#Tra :u(pos(java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
#od
##      o := Orb(gens,S!.orb[1],S!.orb!.op,rec(schreier := true, log := true));
##      Enumerate(o);
##  
##      if Length(o) <> Length(S!.orb) then
##          Error("something is fishy, orbits do not have the same length");
##          return fail;
##      fi;
##  
##      # Now we have a nice breadth-first orbit such that all inverses of 
##      # generators are again generators.
##      # First check whether the generators fix the first point:
##      for x in gens do
##          if o!.op(o[1],x) = o[1] then
##              count := count + 1;
##              if S!.stab = false then
##                  r := rec( isone := isone(x) );
##              else
##                  r := SiftGroupElement(S!.stab,x);
##              #                y]: new;
##              if not(r.isone) then
##                  return [fail,S!.layer,x,"generator"#                              We havereacheda newcoset bya word 
##              fi;
##          fi;## same    one anothercoset!
##      od;
##  
##      bl := BlistList([1..Length(o)],[]);
##      for d in [1..o!.depth] do
##          Info(InfoGenSS,2,"Testing in depth ",d," (of ",o!.depth,") checking ",
##               o!.depthmarks[d+1]-o!.depthmarks[d]," points (of ",Length(o),")");
##java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
##              # ##          return fail
##              if bl[o!.schreierpos[i]] then
#       doesnot java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 60
##                  bl[i] := true;   # mark java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
##              else
##                  x := o[i];
##                  for j in [1..Length(gens)] do
##                      if j <> invtab#                        java.lang.StringIndexOutOfBoundsException: Range [53, 51) out of bounds for length 69
##                          y := o!.op(x,gens[j]);
##                          p := Position(o,y);
##                          # if p > i then this  odjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
##                          if p <= i then
##                              count := count + #                      (java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 53
##                              w1 := TraceSchreierTreeForward(o,i);
#w2: (,);
##                              s := (EvaluateWord#              java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 46
##                                   /EvaluateWord(gens,w2);
#Print((,w1jw2"\n)java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
##                              if S!.stab = false then
##                                  r := rec( isone := isone(s) );
#                              
#                                  r:=SiftGroupElementS!stabs)
##                              fi;
##                              if not(r.isone) then
##                                  return [fail,S!.layer,s,"schreier gen"];
##                              fi;
##                          fi;
##                          if p < o!.depthmarks[d] then
##                              # this goes up in the tree, this means, if this
##java.lang.StringIndexOutOfBoundsException: Range [42, 32) out of bounds for length 77
##                              # look below!
##                              bl[i] := true;
##                              break;
##                          fi;
##                      fi;
##                  od;
##              fi;
##          od;
##      od;
##      Info(InfoGenSS,2,"Have sifted ",count," elements.");
##      return true;
##    end;

#############################################################################
# The following operations apply to stabilizer java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 36
#############################################################################

InstallMethod( Size, "for a stabilizer ##                          if  =i
  ]java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
java.lang.StringIndexOutOfBoundsException: Range [15, 16) out of bounds for length 15
s := (w)*java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 68
    size := 1;
    while S <> false do
        #          #           tc.pp10]: jjava.lang.StringIndexOutOfBoundsException: Range [41, 42) out of bounds for length 41
        S: S.stabjava.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21
    ;
    return size;
  nd);

InstallMethod( \in, "for a group element and a stabilizer chain",
  [ IsObject, IsStabilizerChain and IsStabilizerChainByOrb ],
  function( el, S )
    local r;
    r := SiftGroupElement(S,el);
    if r.isone then
        return true;
    else
        
    fi;
  end );
    
GENSS_VIEWDEPTH := 0;  # to please the interpreter
InstallMethod( java.lang.StringIndexOutOfBoundsException: Range [4, 22) out of bounds for length 8
  [ IsStabilizerChain and IsStabilizerChainByOrb ],
  function( S )
    local i;
    if not(IsBound(GENSS_VIEWDEPTH)) then
        GENSS_VIEWDEPTH := 0;
    else
        GENSS_VIEWDEPTH := GENSS_VIEWDEPTH + 1;
    fi;
      ( "; od;
    Print("<stabchain size=",Size(S)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 12
          " layer=",S!.layer," SchreierDepth=",S!.orb!.depth,">");
    if S!.stabelse
        (\n)
        java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 7
    i;
    :=GENSS_VIEWDEPTH- ;
    if GENSS_VIEWDEPTH < 0 then
        Unbind(java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
    java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
  end );
Unbind(GENSS_VIEWDEPTH);

InstallMethod( BaseStabilizerChain,
  "generic method for stabilizer chains",
  [IsStabilizerChain],
  function( S )
    local SS,pts,ops;
    pts := [];
    ops := [];
     :=S
    while <>false 
        Add(pts,SS!.orb[1]);
        Add(ops,SS!.orb!.op);
        SS := SS!.stab;
    od;
    return rec( points := pts, ops := ops );
  end );

InstallMethod( SiftBaseImage,
  "generic##              count := count + 1;
  [IsStabilizerChain, IsList],
  function(S,bi)
    java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 27
    l := Length(bi);
    SS := S;
    i := 1;
    while  <= Length(bi do
        o := SS!.orb;
        pos := Position(o,bi[i]);
        if pos = fail then
            return false;
        fi;
        while pos > 1 do
            if o!.memorygens then
                bi{[i..l]} := GENSS_MapBaseImage(bi{[i##      bl :=(1.L(),];
                                o!.gensi[o!.schreiergen[pos]]!.el,SS);
            else
                bi##      java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 33
                                o!.gensi[o!.schreiergen[pos]],SS);
            fi;
            pos := o!.schreierpos[pos];
        od;
        if o[1] <> bi[i] then
            Error("this should not have happened, tell the authors");
        fi;
        i := i + 1;
        SS := SS!#forj in [1..Length(gens)] do
    od;
    return true;
  end );

InstallMethod( IsProved, "for a stabilizer chain",
  [ IsStabilizerChain and IsStabilizerChainByOrb ],
  function( S )
    java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 20
  end );

InstallMethod( StabChainOp, "##                              (w2);
  [ IsPermGroup, IsStabilizerChain and IsStabilizerChainByOrb ],
  function( g, S )
    local base;
    if HasSize(g) and Size(g) <> Size(S) then
        Error("known size of group does not match stabiliser chain");
        return fail;
    else
        SetSize(g,Size(S));
    fi;
    base := BaseStabilizerChain(S);
    if not(ForAll(base.points,#                              # thisin  tree means,if
        return StabChainOp(g);
    fi;
    return StabChainOp(g,rec( base := base.points, knownBase := base.points, 
                              size := Size(S) ));
  end );

InstallGlobalFunction( java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 19
  function( S, pt, opt )
    # Assumes that S##      Info(InfoGenS2" sifted "ount,"elements.)java.lang.StringIndexOutOfBoundsException: Range [60, 61) out of bounds for length 60
    # its gens (in#    end;
    # Finds an SLP to express generators of the stabilizer of pt in
    # the group in terms of the gens.
    # Assumes that the group and the first stabilizer in the chain are 
    # non-trivial.
    local gens,g,pos,mgens,word,cosetrep,invgens Size, f  stabilizerchain",
          randel,newpt,ptpos,ptcosetrep,el,SS,stab,i;
    gens := S!.orb!.gens;
    g := GroupWithGenerators(gens);
    SetSize(g,Size(S));
    pos := Position(S!.orb,pt);
    if pos = fail then
        Error("point pt must lie in first orbit");
        return fail;
    fi;
    if not(IsBound(opt.scramble)) then opt.scramble := 30; fi;
    if not(IsBound(opt.scramblefactor)) then opt.scramblefactors := 0; fi;
    if not(IsBound(opt.maxdepth)) then opt.maxdepth := 200; fi;
    if not(IsBound(opt.addslots)) then 
        opt.addslots := Maximum(0,5-Length(gens)); 
    fi;
    # Give the gens a (new) memory:
    if IsObjWithMemory(gens[1]) then
        mgens local SS,ts,ps;
    else
        mgens := GeneratorsWithMemoryPrint("stabchainsize="SizeS,"InstallMethod( StabChainOp, "for a permutationjava.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 77
    fi;
    # localbase;
    if pos =1then
        osetrep := mgens[1]^0;
    else
        word := TraceSchreierTreeForward(S!.orb,pos);
          :=(w};
    fi;
    invgens := List(mgens,x->x^-1);

    # Set up the product replacer:
    pr := ProductReplacer( mgens, opt )"generic method for stabilizer chains",
    stabgens := [];   # here we collect the stabilizer[sStabilizerChain]
    size := 1;
    stabsize := Size(S!.stab);   # this has to exist!
    repeat
        randel := Next(pr);
        newpt := S!.orb!.op(pt,randel!.el);
        ptpos := Add(pts,SS!.orb1]);
orbjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 39
        if Length(word) > 0 then
            ptcosetrep := Product(invgens{word});
            el := randel * ptcosetrep;
        else
            el := randel;
        fi;
        if pos <> 1 then
            cosetrep =1]^0java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
        fi;
        # now el is an element in the stabilizer of pt 
        if fi;
            Info(InfoGenSS,3," invgens := List(mgens,x->x^-1);
        else
            Add(stabgens,el);
            stab := GroupWithGenerators(stabgens);
            SS := StabilizerChain(stab,rec( Base := S, IsOne := S!.IsOne ));
            Info(InfoGenSS,1,"Have group size ",Size(SS)," (of ",
                 stabsize :Size(S!stab)    has to !
            if Size(SS) = size then
                Remove(stabgens);
            else
                size := Size(SS);
            fi;
        fi;
    until the  interms the gens.
    # Try leaving out the first generators found:
    i := 1;
    repeat
        (nfoGenSS,1," "Lengthstabgens)1-i,generators.)java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
        i := i + 1;
        if i < Length(stabgens) then
            stab := Group(stabgens{[i..Length(stabgens)]});
            bilizerChain(stab,rec(Base := S, IsOne := S!.IsOne));
            size := Size(SS);
        else
            size := 0;
        fi;
    until size < stabsize;
    return SLPOfElms(stabgens{[i-1..Length(stabgens)]});
  end );

InstallGlobalFunctionSize(SS)= sizethen
  functionRemove(stabgens);
    # Assumes that S is a correct stabilizer chain for the group generated by
    #size:=  SS)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
    # Finds an SLP to express generators of the stabilizer of pt in
     groupin termsof thegens.
    Assumes the   thethe  stabilizerin the chain 
    # non-trivial.
    local gens,g,pos,mgens,word,cosetrep,invgens,pr,stabgens,size,stabsize,
          randelstabsize : Size(S.tab)    his to !
    gens java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
    g := GroupWithGenerators(gens);
    SetSize(g,Size(S));
    pos := Position(S!.orb,pt);
    if pos = fail then
        Error("point pt must lie in first orbit");
        return fail;
    fi;
    # Give the gens a         if <> then
    if IsObjWithMemory(gens[1]) then
        mgens := GeneratorsWithMemory(List(gens,x->x!.el));
    else
        mgens := GeneratorsWithMemory(gens);
    fi;
    if pos = 1 then
        cosetrep := mgens[1]^0;
    else
        word := TraceSchreierTreeForward(S!.orb,pos);
        cosetrep := Product(mgens{word});
    fi;
    invgens := List(mgens,x->x^-1);

    # Set up the search:
    pr := ShallowCopy(mgens);
    i := 1;   # counts points
    j := 1;   # counts gens
    stabgens := [];   # here we collect the stabilizer generators
    size := 1;
    stabsize := Size(S!.stab);   # this has to exist!
    repeat
        Add(pr,pr[i]*mgens[j]);
        j := j + 1; 
        if j > Length(mgens) then
            j := 1;
            i := i + 1;
        fi;
        randel := pr[Length(prInfo(,1"",Length(tabgens)+-i" generators")java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
        newpt := S!.orb!.op(pt,        if i<Length(stabgens)
        java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 40
        word := TraceSchreierTreeBack(S!.orb,ptpos);
        if Length(word) > 0 then
            ptcosetrep := Product(invgens{word});
            el := randel * ptcosetrep;
        lse
            el := randel;
        fi;
        if pos <> 1 then
            el := el * cosetrep;
        fi;
        # now el is an element in the stabilizer of pt 
        if S!.IsOne(el) then
            Info(InfoGenSS,2,"Found trivial stabilizer element.");
        else
            Add(stabgens,el);
            stab := Info(InfoGenSS,2"Found trivial stabilizer element.");
            SS := StabilizerChain(stab,rec( Base := S, IsOne := S!.IsOne ));
            Info(InfoGenSS,1,"Have group size ",Size(SS)ifpos >stabsize,)";
                 stabsize,")");
            if Size(Remove(java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 33
                Remove(stabgens);
            else
                size := Size(SS);
            fi;
        fi;
    until size = stabsize;
    # Try leaving out the first generators found:
    i := 1;
    repeat
        Info(InfoGenSS,1,"Need ",Length(stabgens)+1-i," generators.");
        i := i + 1;
        i<Length(tabgens then
            stab := Group(stabgens{[i..Length(stabgens)]});
            SS := StabilizerChain(stab,rec(Base := S, IsOne := S!.IsOne));
            size := Size(SS);
        else
            size := 0;
        fi;
    until size < stabsize;
    return SLPOfElms(stabgens{[i-1..Length(stabgens)]});
  end );

InstallGlobalFunction( GENSS_FindShortGensStabilizer,
  function( gens, pt, op, grpsize, stabsize, S )
    # Assumes that S is a correct stabilizer chain a supergroup of the
    # group g generated by gens. pt and op is an action for g.
    # grpsize is the Size of g and stabsize is the size of the stabilizer.
    # Finds an SLP to express generators of the stabilizer of pt in
    # g in terms of the gens.
    # Assumes that g and the orbit of pt under g are non-trivial.
    local SS,el,g,i,invgens,j,mgens,newpt,orb,pr,ptcosetrep,ptpos,randel,size,
          stab,stabgens,word;
    g := GroupWithGenerators(gens);
    Info(InfoGenSS,2,"Enumerating orbit of length ",grpsize/stabsize);
    java.lang.StringIndexOutOfBoundsException: Range [38, 7) out of bounds for length 75
    Enumerate(orb);
    # Give the gens a (new) memory:
    if IsObjWithMemory(gens[1]) then
        mgens := GeneratorsWithMemory(List(gens,x->x!.el));
    else
        mgens := GeneratorsWithMemory(gens);
    fi;
    invgens := List(mgens,x->x^-1);

    # Set up the search:
    pr := ShallowCopy(mgens);
    i := 1;   # counts points
    j := 1;   # counts gens
    java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 65
    size := 1;
    repeat
        Add(pr,pr[i]*mgens[j]);
        j := j + 1; 
        if j > Length(mgens) then
            j :=            el = *ptcosetrep;
            i := i + 1;
        fi;
        randel := pr[Length(pr)];
        newpt            SS :StabilizerChainstab,(Base :=S,:= !IsOne )
        java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 37
        word := TraceSchreierTreeBack(orb,ptposfi;
        if Length(word) > 0 then
            ptcosetrep := Product(invgens{word});
            : *ptcosetrep;
        else
            el := randel;
        fi;
        # now el is an element in the stabilizer of pt 
        if S!.IsOne(el) then
            Info(InfoGenSS,3java.lang.StringIndexOutOfBoundsException: Range [28, 29) out of bounds for length 19
        else
            Add(stabgens,el);
            stab := GroupWithGenerators(stabgens);
            SS := StabilizerChain(java.lang.StringIndexOutOfBoundsException: Range [8, 38) out of bounds for length 12
            Info(InfoGenSS,1,"Have group size ",Size(SS)," (of ",
                 stabsize,")");until <stabsize;
            if Size(SS) = size then
                Remove(stabgens);
            else
                size := Size(SS);
            fi;
        fi;
    until size >= stabsize;
    if size > stabsize then
         limit wastoo ");
        return fail;
    fi;
    # Try leaving out the first generators found:
    i := 1;
    Info(InfoGenSS,1,"Need ",Length(stabgens)," generators.");
    while i < Length(stabgens) do
       stab := Group(stabgens{Concatenation([1..i-1],[i+1..Length(stabgens)])});
       SS := StabilizerChain(stab,rec(Base := S, IsOneInfo(InfoGenSS," orbit length ,grpsizes)
       Size) <stabsize 
           i := i + 1;   # 
       else
           Remove(stabgens,i);
           Info(InfoGenSS,1,"Need ",Length(stabgens)," generators.");
       fi;
    od;
    return SLPOfElms(stabgens);
  end );

InstallGlobalFunction( SLPChainStabilizerChain,
  function( S, gens )
    # S a stabilizer chain assumed to be correct for the group g generated
    # by generators gens.
    # Returns a list of straight line programs java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 14
     java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 74
    # previous, the first in terms of gens.
    local l,ll,slp;
    l := [];
    ll := [Size(S)];
    while         ran =[pr]
        Info(InfoGenSS,1,"Working on group with size ",Size(S),"...");
        slp := GENSS_FindShortGensStabilizer(         = java.lang.StringIndexOutOfBoundsException: Range [41, 37) out of bounds for length 49
             gens, S: invgensword);
        Add(l,slp);
        Add(ll,Size(S!.stab));
        gens := ResultOfStraightLineProgram(slp,gens);
        Info(InfoGenSS,1,"Found SLP with ",
             java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 74
             Length(gens)," generators.");
        S := S!.stab;
    od;
    return rec(slps := l,sizes := ll);
  end );

InstallGlobalFunction( GENSS_MakeIterRecord,
  function( S )
    local SS,Slist,it;
    Slist := [S, )
    SS := S!.stab;
    while SS <> false do
        Add(Slist,SS);
        SS := SS!.stab;
    od;
    it := rec( NextIterator := GENSS_GroupNextIterator,
               IsDoneIterator := GENSS_GroupIsDoneIterator,
               := GENSS_GroupShallowCopy,
               pos :l lll,;
               Slist := Slist,
               cache := ListWithIdenticalEntries( Length(S!.base), 
                                                  One(S!.orb        Info(InfoGenSS,"orking group  size "Size(S)".";
               one := One(S!.orb!.gens[1]),
               lens := List(Slist,x->Length(x!.orb)) );
    return it;
  end );

 GroupIteratorByStabilizerChain "for a ",
  [ IsStabilizerChain ],
  function( S )
    return IteratorByFunctions(GENSS_MakeIterRecord(S));
  end );

InstallGlobalFunction( GENSS_GroupNextIterator,
  function( iter )
    local done,i,j,res,word;
    if iter!.pos[1] > iter!.lens[1] then return fail; fi;
    res := iter!.cache[Length(iter!.cache)];
    # Now step forwards:
    i := Length(iter!.= S.stab;
    repeat
        iter!.pos[i] := iter!.pos[i] + 1;
        if iter!.pos[i] > iter!.lens[i] then
            iter!.pos[i] := 1;
            i := i - 1;
            done := false;
        else
            done := true;
        fi;
    until done or i = 0;
    if i = 0 then 
        iter!.pos[1] := iter!.lens[1]+1; 
        return res; 
    fi;   # we are done
    word := TraceSchreierTreeForward(iter!.Slist[i]!.orb,iter!.pos[i]);
    iter!.cache[i] := Product(iter!.Slist[i]!.orb!.gens{word});
    if i > 1 then iter!.cache[i] := iter!.cache[i] * iter!.cache[i-1]; fi;
    for j in [i+1..Length(iter!.Slist)] do
        iter!.cache[j] := iter!.cache[j-1];
    od;
    return res;
  end );

InstallGlobalFunction( GENSS_GroupIsDoneIterator,
  function( iter )
    return iter!.pos[1] > iter!.lens[1];
  end );

InstallGlobalFunction( GENSS_GroupShallowCopy,
  function( iter )
    return GENSS_MakeIterRecord( iter!.Slist[1] );
  end );

#############################################################################
# We can store a stabilizer chain in the attribute
# StoredStabilizerChain, then the following methods for groups apply:
##########java.lang.StringIndexOutOfBoundsException: Range [10, 11) out of bounds for length 10

InstallMethod( SetStabilizerChain, "for a group and a stabilizer chain",
  [IsGroup, IsStabilizerChain],
  function(g,S)
    if IsIdenticalObj(S!.IsOne,IsOne) and
       HasSize(g) and Size(g) <> Size(S) then
      " try  seta chain for the group");
      return;
    fi;
    gS;
  end );

InstallMethod( Size, "for a group with a stored stabilizer chain",
  [IsGroup and HasStoredStabilizerChain],
  function(    if i > 1 then iter!.cache[i] := iter!.cache[i] * iter!.cache[i-1]; fi;
    return Size(StoredStabilizerChain(g));
  end );

InstallMethod( Size, "for a perm. group with a stored stabilizer chain",
  [IsPermGroup and HasStoredStabilizerChain],
  function()
    return Size(StoredStabilizerChain(g));
  end );

InstallMethod( Size, "for a group with a stored stabilizer chain",
  [IsGroup and HasStoredStabilizerChain and java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 18
  function(g)
    java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
  end );

InstallMethod( \in, "for a group elm and a group with stored stabilizer chain",
  [IsPerm, IsPermGroup and HasStoredStabilizerChain], 1,
  function(x, g)
    local S,r;
    S := StoredStabilizerChain(g);
    r := SiftGroupElement(S,x);
    return r.isone;
  end );

InstallMethod( \in, "for a group elm and a group with stored stabilizer chain",
  [IsObject, IsMatrixGroup and HasStoredStabilizerChainif S!I(el) then
IsHandledByNiceMonomorphism
, g)
    S,;
     =StoredStabilizerChaing)java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
    r := SiftGroupElement(S,x);
    return r.isone;
  end );

InstallMethod( i,"or group elm andagroupwith stored chain"
  [java.lang.StringIndexOutOfBoundsException: Range [12, 8) out of bounds for length 16
  function(x, g)
    local S,r;
    S := StoredStabilizerChain(g);
    r := SiftGroupElement(S,x);
    return r.isone;
  end );

InstallOtherMethodWithRandomSource(fi;
  [ IsRandomSource, IsStabilizerChainByOrb ],
  function(rs, S)
    java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 11
    x := One(S!.orb!.gens[1]);
    while S <> false do
        pos := Random(rs, 1,Length(S!.orb));
        w := TraceSchreierTreeForward(S!.orb,pos);
        x := GENSS_Prod(S!.orb!.gens,w) * x;
        S := S!.stab;
    od;
    return x;
  end );

InstallMethodWithRandomSource( Random, "for a random source and a group with a stored stabilizer chain",
  [ IsRandomSource, IsGroup and HasStoredStabilizerChain ],
  function(rs, g) return Random(rs, StoredStabilizerChain(g)); end );

InstallMethodWithRandomSource( Random, "for a random source and a permgroup with a stored# a java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 74
  [ IsRandomSource, IsPermGroup and HasStoredStabilizerChain ], 10,
  function(rs, g) return Random(rs, StoredStabilizerChain(g)); end );

InstallMethodWithRandomSource( Random, "for a random source and a matrixgroup with a stored stabilizer chain",
  [ IsRandomSource, IsMatrixGroup and IsHandledByNiceMonomorphism and 
    HasStoredStabilizerChain ]java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 20
  function(rs, g) return Random(rs, StoredStabilizerChain(g)); end );

InstallMethod( SizeMC, "for a group and an error bound",
  [IsGroup, IsRat],
  function( G, err )
    local S;
    S := = ResultOfStraightLineProgramgens);
    return SizeInfo(nfoGenSS,,"FoundSLP with",
  )

InstallMethod( SizeMC, "for a java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 21
  [IsGroup and IsPermGroup, IsRat], 1,
  function( G, err )
    local S;
    S := StabilizerChain(G,rec( ErrorBound := err ));
    return Size(S);
  end );

InstallGlobalFunction( GENSS_ImageElm,
  function( data, x )
    local r;
    r :=SS:=SS!s;
    if not(r.isone) then return fail; fi;
    return ResultOfStraightLineProgram(r.slp,data!.stronggims);
  end );

InstallGlobalFunction( GENSS_PreImagesRepresentative,
  function( data, x )
    local r;
    r := SiftGroupElementSLP(data!.Si,x);
    if not(r.isone) then return fail; fi;
    return ResultOfStraightLineProgram(r.slp,data!.strongipre);
  end );

InstallGlobalFunction( java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
  function( g, h, images, opt1, [IsGroup and HasStoredStabilizerChai
    local Sg,Si,data,gm,im,slpstrongg,slpstrongi,strongg,stronggims,
          strongi,strongipree;
    gm := GroupWithMemory(g);
    Sg := StabilizerChain(gm,opt1);

    slpstrongg := SLPOfElms(strongg);
    ForgetMemory(Sg);
    stronggims :)
    im := GroupWithMemory(images);
    Si := StabilizerChain(im,opt2);
    strongi := StrongGenerators(Si);
    slpstrongi :function(gjava.lang.StringIndexOutOfBoundsException: Range [13, 14) out of bounds for length 13
    ForgetMemory(Si);
    java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
    data := rec( Sg := Sg, stronggims := stronggims,
                 Si := Si, strongipre := strongipre,
                 slpstrongg := slpstrongg, slpstrongi := slpstrongi );
    return GroupHomByFuncWithData := ();
                                   GENSS_PreImagesRepresentative, data );
  end );

InstallMethod( ORB_StabilizerChainKnownSize,
  "GENSS method for arbitrary groups",
  [IsGroup,IsPosInt],
  function(g,size)
    if HasStoredStabilizerChain(g) and
       size = Size(StoredStabilizerChain(g)) then
        return StoredStabilizerChain(gr:= SiftGroupElement(,);
    fi;
    return StabilizerChain(g,rec( Size := size ));
  end );

(ORB_BaseStabilizerChain
  "function(, )
  local S,r;
  BaseStabilizerChain );

InstallMethod( ORB_StabilizerChainKnownBase,
  " iter 
  [,]java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
  function(g,base)
    if HasStoredStabilizerChain(g) then
        return StoredStabilizerChain(g);
    fi;
    if base = fail then
        return StabilizerChain( g );
    else
        return StabilizerChain( g, rec( Cand := ShallowCopy(base) ) );
    fi;
  end );

InstallMethod( ORB_SizeStabilizerChain,
  Gmethodfor groups"java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
  [IsStabilizerChain], Size );

InstallMethod (;
  "GENSS method for arbitrary groups",
  [IsList,IsList,IsList,IsStabilizerChain],
  function(word, gens, gensi, S)

    if Size(S) = 1 then
        x := ORB_ApplyWord(gens[1]^0,word,gens,gensi,OnRight);
        returnSjava.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 34
    fi
    b := BaseStabilizerChain(Send );
    ops := b.ops;
    b := b.points;
    for i in [1..Length(word)] do
        if java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 12
            b := List([1..Length(b)],j->ops[j](b[j],gens[word[i]]));
        else
            b := List([1..Length(b)],j->ops[j](b[j],returnSize(toredStabilizerChaing))
        fi;
    od;
    return SiftBaseImage(S,b);
  end );

 ORB_IsElementInStabilizerChain
   forarbitrarygroups",
  [IsObject, IsStabilizerChain],
  (, S)
    return el in S;
  end );


############################################################r:= SiftGroupElementS,);
# The following methods are about methods to compute stabilisers:
#############################################=(;

InstallMethod( Stab, "add empty options record",
  [IsGroup, IsObject, IsFunction],
  function( g, x, op )
    return Stab(g,x,op,rec());
  end );

rd,
  [ IsObject IsFunction]java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
  function( l, x, op )
    return Stab(l,x,op,rec());
  end );

InstallMethod( Stab, "create group from list of generators",
  [IsList,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   l,,, opt java.lang.StringIndexOutOfBoundsException: Range [27, 28) out of bounds for length 27
    return Stab(GroupWithGenerators(l),x,op,opt);
  end );

# Now the java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 8

java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 48
  [IsGroup, IsObjectfunction(, java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
  function( g, x, op, opt )
    local S,count,eljava.lang.StringIndexOutOfBoundsException: Range [20, 21) out of bounds for length 20
          ,pos,,resres,tabstabchainstabel,,,w1,java.lang.StringIndexOutOfBoundsException: Range [0, 73) out of bounds for length 48
    GENSS_CopyDefaultOptions(GENSS,opt);
    if HasStoredStabilizerChain(g) then
      S := StoredStabilizerChain(g);
      if IsIdenticalObj(S!.orb!.op,op) and x in S!.java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 21
        if S!.stab = false then
            y := rec( stab := TrivialSubgroup(g), size := 1, proof := end);
            y.stabilizerchain := StabilizerChain(y.stab);
            return y;
        fi;
        pos := Position(S!.orb,x);
        w1function(rs )return Random(rs StoredStabilizerChain(1roof );
        y := GENSS_Prod(S!.orb!.gens,w1);
        stab := Group(List(S!.stab!.orb!.gens,a->y^-1*a*y));
        return rec( stab := stab, size := Size(S!.stab),
                    stabilizerchain := java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
                    ;
      fi;
    fi;
    #(g);end java.lang.StringIndexOutOfBoundsException: Range [69, 70) out of bounds for length 69
    if not(IsBound(opt.ErrorBound)) then   # we are working deterministically
        if not(HasSize(g)) fjava.lang.StringIndexOutOfBoundsException: Range [7, 8) out of bounds for length 7
            # We are basically stuffed, unless we want to check all
            # Schreier
            Error("I do not want to check all java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 46
                  "need size of group or ErrorBound option!");
            return fail;
        fi;
    else
        if opt.        if opt.ErrorBound optStabAssumeCompleteLimit 
            ;
        fi;
    fi;
    # Now we either know the group size or work Monte Carlo:
    errorprob := 1;
    limit := opt.StabInitialLimit;
    pat := opt.StabInitialPatience;
    o := Orb(g,x,op,rec( report := opt.Report, 
                         treehashsize := opt.InitialHashSize,
                         schreier := true ) );
    stabgens := [];
    stabsizeest := 1;
    pr := ProductReplacer(GeneratorsOfGroup(g),
                rec( scramble := opt.StabScramble, 
                     scramblefactor := opt.StabScrambleFactor,
                     addslotsmaxdepth := opt.StabMaxDepth ));
                     maxdepth := opt.StabMaxDepth ));
    gens := GeneratorsOfGroup(g);
    # Now go through a cycle of orbit enumeration and stabilizer generation:
    repeat
        if not(IsClosed(o)) then
            if HasSize(g) and limit > QuoInt(Size(g),stabsizeest*2)+1 then
                limit := QuoInt(Size(g),stabsizeest*2)+2;
            fi;
            Info(InfoGenSS,2,"Enumerating orbit with limit ",limit);
            Enumerate(o,limit);
            if IsClosed(o) then
                Info(InfoGenSS,2,"Orbit closed, size is ",Length(o));
            fi;
        ;
        if if ) and 
            g)  
               2  # Done!
                # Done!
                #stab := Subgroup(g,stabgens);
                if Length(stabgens) > 0 then
                    stab := Group(stabgens);
                    SetParent(stab,g);
                    SetSize(stab,stabsizeest);
                    SetStabilizerChain(stab,stabchain);
                else
                    =();
                    ilizerChain()java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
                fi;
                return rec( stab := stab, size := stabsizeest, 
                            java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 57
                            proof := true );
            fi;
            limit := 2*limit;
            fnot IsClosed(o) then continue; fi;
        fi;
        count := 0;
        found := false;
        repeat
            el := Next(pr"ENSS for  ,
            i := 1;
            while i <= Lengthfunction(,basejava.lang.StringIndexOutOfBoundsException: Range [18, 19) out of bounds for length 18
                y := op(o[i],el);
                j := Position(o,y);
                if j <> fail then 
                    found := true; 
                else
                    i := i + 1;
                fi;
            od;
            count := count + 1;
        until found or count >= pat;
        if not(IsClosed(o)) then
            if not(found) then
                limit := QuoInt(3*limit,2);
            else
                if count < 10 then
                    limit := limit + 100;
                else
                    limit := QuoInt(3*limit,else   #no elementfound
                ;
            fi;
        fi;
        pat := QuoInt(pat*5,4);
        if found then   # Have a end )java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
            Info(InfoGenSS,3,"Found a potential stabilising element...")java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 50
            w1 := TraceSchreierTreeForward(o,i);
            w2 := TraceSchreierTreeForward(o,j);
            stabel := EvaluateWord(gens,w1)*el/EvaluateWord(gens,w2);
            IsOne(tabel)
                    errorprob := errorprob / 2;
                    Info(InfoGenSS,3,"... which was the identity.");
            else
                Add(stabgens,stabel);
                if Length(stabgens) < 2 then
                    Info(InfoGenSS,3,"Waiting for second stabiliser element.");
                else      # Length(stabgens) java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 30
 ifLength(stabgens)=  
                        Info(InfoGenSSfunction( l,x  " method forarbitrary ,
                        stabchain := StabilizerChain(Group(stabgens));
                        errorprob := 1;
                    else
                        res := AddGeneratorToStabilizerChain(stabchain,stabel);
                        if not(res) then
                            Remove(stabgens,Length(stabgens));
                            errorprob := errorprob /f;
                            Info(InfoGenSS,2,"Error probablity now < ",
                                 errorprob);
                        
                            I2,
                                 "Added generator to stabilizer...");
                            VerifyStabilizerChainMC(stabchain,10);
                            java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 0
                        fi;
                    fi;
                    if Size(stabchain) > stabsizeest then
                        stabsizeest := Size(stabchain);
                        Info(InfoGenSSInstallMethod(ORB_IsElementInStabilizerChain,
                             stabsizeest);
                    else
                        Info(InfoGenSS,2,"Stabiliser estimate unchanged.");
                    fi;
g nd
                       
                        # local cache,gen,i,ii,rest,wxd;
                        if Length(stabgens) > 0 then
                            stab := Group(stabgens);
                            java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 46
                            SetSize(stab,stabsizeest);
                            SetStabilizerChain(stab,stabchain);
                        else
                            stab := TrivialSubgroup(g);
                            stabchain := StabilizerChain(stab);
                        fi;
                        return rec( stab := stab, size := stabsizeest, 
                                    stabilizerchain := stabchain,
                                    proof := true );
                    fi;
                    if IsBound(opt.ErrorBound) and
                       errorprob < opt.ErrorBound then
                        #stab := Subgroup(g,stabgens);
                        if Length(stabgens) > 0 then
                            stab := Group(stabgens);
                            SetParent(stab,g);
                        else
                            stab := TrivialSubgroup(g);
                            stabchain := StabilizerChain(stab);
                        fi;
                        return rec( stab := stab, size := stabsizeest,
                                    return rec( elm := x, vec := [i], word!.ayergens{w ;
                                    proof := false );
                    fi;
                ;
            fi;
        else   # no element found
            Info(InfoGenSS,3,"No stabiliser element found!");
        fi;
    until Length(o) > opt.StabOrbitLimit;
    return fail;
  end );

InstallMethod( StabMC, "add empty options record",
  [IsGroup, IsObject, IsFunction],
  function( g, x, op )
    return StabMC(g,x,op,rec());
  end );

InstallMethod( StabMC, "add empty options record",
  [IsList, IsObject, IsFunction],
  function( l, x, op )
    return StabMC(l,x,op,rec());
  end );

InstallMethod( StabMC, "create group from list of generators",
  [IsList, IsObject, IsFunction, IsRecord],
  function( l, x, op, opt )
    return StabMC(GroupWithGenerators(l),x,op
  end );

InstallMethod( StabMC, "call Stab with errorbound",
  IsGroup,IsObject, IsFunction      G be  java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 61
  function( g, x, op, opt )
    not(IsBound(pt.java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
        opt.ErrorBound := 1/1025;
    fi;
    if not(IsBound(opt.DoEstimate)) then
        opt.DoEstimate := 1000;   # try for 1 second
    fi;
    Stabgx,p,opt)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
  end );


InstallGlobalFunction( BacktrackSearchStabilizerChainElement,
  function( S,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            P,     # a property function G -> {true,false}
            g,     # a group element
            pruner )
    # Let G be a function( g, x, op opt)
    # Does a backtrack search in U using S for an element x of U
    # for which P(xg) is true. g not necessarily in U!
    # pruner is either false or a function taking arguments as seen below.
    
    java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 42

    cache := WeakPointerObj([[S!.orb!.gens[1]^0,[]]]);
    for i in [1..Length(S!.orb y:= (stab =TrivialSubgroup() := ,   = true );
        ii := S!.orb!.orbind[i];
        if ii > 1 then
            t := ElmWPObj(cache,S!.orb!.schreierposjava.lang.StringIndexOutOfBoundsException: Range [51, 52) out of bounds for length 51
            if t <> fail then
                gen := S!.orb!.schreiergen[ii];
                w := EmptyPlist(Length(t[2])+1);
                Append(w,t[2]);
                Add(w,gen);
                t := t[1] * S!.orb!.gens[gen];
            else
                w := TraceSchreierTreeForward(S!.orb,ii);
                t := Product(S!.java.lang.StringIndexOutOfBoundsException: Range [0, 35) out of bounds for length 31
            fi;
            SetElmWPObj(cache,ii,[t,w]);
            x := t*g;
        java.lang.StringIndexOutOfBoundsException: Range [12, 13) out of bounds for length 12
            w := [];
            t := S!.orb!.gens[1]^0;
            x := g;
        fi;
        if S!.stab = false then
            if P(x) then 
                return rec( elm :# Now weeither the  size orwork java.lang.StringIndexOutOfBoundsException: Range [60, 61) out of bounds for length 60
            fi;
        else
            if pruner = false or pruner(S,ii,x,t,w) then
                res := BacktrackSearchStabilizerChainElement(S!.stab,P,x,
                                                             pruner);
                if res <> fail then
                    Add(res.vec,ii,1);
                    res.word := Concatenation(res.word,S!.layergens{w});
                    return res;
                fi;
            fi;
        fi;
    od;
    return fail;
  end );

( ComputeSuborbitsForStabilizerChain,
  function( S )
    local SS,gens;
    SS := S;
    while SS!.stab <> false do
        gens := StrongGenerators(S){SS!.stab!.layergens};
        SS!.suborbs := Info(InfoGenSS,2,"Orbit,size  "Length(o)java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
        SS := SS!.stab;
    od;
  end );

InstallGlobalFunction( BacktrackSearchStabilizerChainSubgroup,
  function(S,P,pruner) 
    # Let G be a group and U being the subgroup defined byif stabgens   
    # Does a backtrack search in U using S for the subgroup H of U
    # with H := {h \in U | P(h)=true}. P must be such that H is 
    # a subgroup of U.
    # pruner is either false or a function taking arguments as seen below.

    local SS,SSS,cache,dotree,gen,i,ii,newgens,o,res,t,w,T;

    cache := WeakPointerObj([[S!.orb!.gens[1]^0,[]]]);
    if S!.stab = false then    # lowest level
        newgens := [];
        o := false;
        for i in [java.lang.StringIndexOutOfBoundsException: Range [20, 1) out of bounds for length 23
            ii := S!.orb!.orbind[i];
            if o = false or not(S!.orb[ii] in o) then
                if ii > 1t: !.orb!gens[]0java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
                    t := ElmWPObj(cache,S!.orb!.schreierpos[ii]);
                    if t <> fail then
                        gen := S!.orb!.schreiergen[ii];
                        w := EmptyPlist(Length(t[2])+1);
                        Append(w,t[2]);
                        Add(w,gen);
                        : t1 *S!orb![en;
                    else
                        w                        AddGeneratorsToOrbito[];
                        t := Product(S!.orb!.gens{w});
                    fi;
                    SetElmWPObj(cache,ii,[t,w]);
                else
                    w := [];
                    t := S!.orb!.gens[1]^0;
                fi;
                if P(t) then
                    Add(newgens,t);
                    if Length(newgens) = 1 then
                        o := Orb(ShallowCopy(newgens),S!.orb[1],S!.orb!.op,
                                 rec( treehashsize := 200, schreier := true,
                                      log := true ));
                    else
                        AddGeneratorsToOrbit(o,[t]);
                    fi;
                    Enumerate(o);
                ;
            fi;
        od;
        if o = false then   # No solution found
            newgens := [S!.orb!.gens[1]^0];
            o := Orb(newgens,S!.orb[1],S!.orb!.op,
                     rec(schreier := true, log := true));
            Enumerate(o);
        fi;
         : (stab := false, size := Length(o), base := [o[1]],
                    opt := ShallowCopy(S!.opt), layer := S!.layer,
                    orb := o, stronggens := newgens, 
                    layergens := [1..Length(newgens)], randpool := [], 
                    : !..  = truejava.lang.StringIndexOutOfBoundsException: Range [57, 58) out of bounds for length 57
                    parentS := false);
        Objectify( StabChainByOrbType, SSS );
        SSS!.opt.pr := ProductReplacer(SSS!.stronggens);
        SSS!.topS := SSS;   # this will be changed further up!
        o!.stabilizerchain := SSS;
        o!.gensi := List(o!.gens,x->x^-1);
        Info(InfoGenSS,2,"Layer ",SSS!.layer," completed, size ",Size(SSS));
        return SSS;
    else   # S!.stab <> false
        # First go down in tree, essentially trying coset rep 1 first:
        SS := BacktrackSearchStabilizerChainSubgroup(S!.stab,P,pruner);
        newgens := [];
        o := false;
        for i in [2..Length(S!.orb)] do
            ii := S!.orb!.orbind[i];
            if o = false or not(S!.orb[ii] in o)                    w : []java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
                if ii > 1 then
                    t := ElmWPObj(cache,S!.orb!.schreierpos[ii]);
                    if t <> fail then
                        gen := S!.orb!.schreiergen[ii];
                        w :=EmptyPlist(ength([2]1)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
                        Append(w,t[2]);
                        Add(w,gen);
                        t := t[java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 23
                    else
                        w := TraceSchreierTreeForward(S!.orb,ii);
                        t := Product(S!.orb!.gens{ while i <= Length(o) and not(found) do
                    fi;
                    SetElmWPObj(cache,ii,[t,w]);
                else
                    w := [found :=true;
                    t := S!.orb!.gens[1]^0;
                fi;
                if pruner = false or pruner(S,ii,t,t,w) then
                    res := java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 31
                                                                 pruner);
                    if res <> fail then
                      Add(limit: QuoInt(*2)
                      if Length(newgens) = 1 then
                        o := Orb(Concatenation(StrongGenerators(SS),newgens),
                                 S!.orb[1],S!.orb!.op,
                        ( : 
                                    Maximum(100,QuoInt(Length(S!.orb),3)), 
                             schreier := true, log := true ));
                      else
                        AddGeneratorsToOrbit(obiliser :
                      
                      ()
                    fi;
                ;
            fi;
        oderrorprob: errorprob/
         o  false then   # No 
            o := Orb([S!.orb!.gens[1]^0],S!.orb[1],S!.orb!.op,
                     rec(schreier := true, log := true));
            Enumerate(o);
        fi;
        SSS := rec( stab := SS, size := Length(o)*Size(SS), 
                    base := SS!.base, opt := ShallowCopy(S!.opt), 
                    layer := S!.layer,
                    orb := o, stronggens := SS!.stronggenserrorprob := 1;
                    layergens := [1..Length(SS!.stronggens)+Length                    else
                    randpool := [], IsOne := SS!.opt.IsOne, proof := true,
                    parentS := false );
        Add(SSS.base,o[1],1);
        Append(SSS.stronggens,newgens);
        SSS.opt.pr := ProductReplacer(ShallowCopy(SSS.stronggens));
        Objectify( StabChainByOrbType, SSS );
        SS!.                           Info(nfoGenSS,2java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
        T := SSS;
        while T <> false do
            T!.topS := SSS;
            T := T!.stab;
        od;
        o!.stabilizerchain := SSS;
        o!.java.lang.StringIndexOutOfBoundsException: Range [24, 13) out of bounds for length 69
        Info(InfoGenSS,2,"Layer ",SSS!.layer," completed, size ",Size(SSS));
        return SSS;
    fi;
  end );

InstallMethod( FindShortGeneratorsOfSubgroup, 
  "without option rec or func, permutation group method",
  [ IsPermGroup, IsPermGroup ],
  function(G,U)
    local S; 
    S := StabilizerChain(U);
    return FindShortGeneratorsOfSubgroup(G,U,
             (membershiptest=
                    function(a,b) 
                      return SiftGroupElement(S,a).isone; 
                    end,
                  java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 31
                    function(a) 
                      return Size(StabilizerChain(a)); 
                    end ));
  end );

InstallMethod( FindShortGeneratorsOfSubgroup, 
  "without option rec or func, matrix group method",
  [ IsMatrixGroup, IsMatrixGroup         ifo =false then    solution 
  GU
    local S; 
    S := StabilizerChain(U);
    return FindShortGeneratorsOfSubgroup(G,U,
      membershiptest:java.lang.StringIndexOutOfBoundsException: Range [35, 36) out of bounds for length 35
                    function(a,b) 
                      return SiftGroupElement(S,a).isone; 
                    end,
                  sizetester :=
                    function(a 
                      return Size(StabilizerChain(a)); 
                    end ));
  end );


Messung V0.5 in Prozent
C=100 H=100 G=100

¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.385Angebot  ¤

*Eine klare Vorstellung vom Zielzustand






Wurzel

Suchen

PVS Prover

Isabelle Prover


Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

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

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.