SSL factgrp.gi
Sprache: Shell
|
|
#############################################################################
##
## This file is part of GAP, a system for computational discrete algebra.
## This file's authors include Alexander Hulpke.
##
## Copyright of GAP belongs to its developers, whose names are too numerous
## to list here. Please refer to the COPYRIGHT file for details.
##
## SPDX-License-Identifier: GPL-2.0-or-later
##
## This file contains the declarations of operations for factor group maps
##
#############################################################################
##
#M NaturalHomomorphismsPool(G) . . . . . . . . . . . . . . initialize method
##
InstallMethod(NaturalHomomorphismsPool,true,[IsGroup],0,
G->rec(GopDone:=false,ker:=[],ops:=[],cost:=[],group:=G,lock:=[],
intersects:=[],blocksdone:=[],in_code:=false,dotriv:=false));
#############################################################################
##
#F EraseNaturalHomomorphismsPool(G) . . . . . . . . . . . . initialize
##
InstallGlobalFunction(EraseNaturalHomomorphismsPool,function(G)
local r;
r:=NaturalHomomorphismsPool(G);
if r.in_code=true then return;fi;
r.GopDone:=false;
r.ker:=[];
r.ops:=[];
r.cost:=[];
r.group:=G;
r.lock:=[];
r.intersects:=[];
r.blocksdone:=[];
r.in_code:=false;
r.dotriv:=false;
r:=NaturalHomomorphismsPool(G);
end);
#############################################################################
##
#F AddNaturalHomomorphismsPool(G,N,op[,cost[,blocksdone]]) . Store operation
## op for kernel N if there is not already a cheaper one
## returns false if nothing had been added and 'fail' if adding was
## forbidden
##
InstallGlobalFunction(AddNaturalHomomorphismsPool,function(arg)
G, ,op,pool, , c perm,ch, diff, nch, nd, involved, i;
G:=arg[1];
N:=arg[2];
op:=arg[3];
# don't store trivial cases
if Size(N)=Size(G) then
Info(InfoFactor,4,"full group");
return false;
elif Size(N)=1 then
# do we really want the trivial subgroup?
if not (HasNaturalHomomorphismsPool(G) and
(G)dotrivtrue)then
fi
return false;
fi;
Info(Info(InfoFactor,""Length(comb);
fi;
pool:=NaturalHomomorphismsPool(G);
# split lists in their components
if IsList(op) and not IsInt(op[1]) then
pp=[;
for i in op do
if IsMapping(i) then
i:1;
else
while<Length(comb)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
fi;
Add(p,c);
AddNaturalHomomorphismsPool(G,c,i);
od;
# transfer in numbers list
op:=List(p,i->x->pool.cost[x]<=pool[1]]pool.cost[[2])
Length(arg)<4 then
# add the prices
c:=Sum(pool.cost{op});
fi;
# compute/get costs
elif (arg>3 then
c:=arg[4];
else
if co1]<>))then
java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
elif IsMapping(op) then
:();
if for 1java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 41
c:=1;
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 30
c:=psub:=Permuted(psub,perm);
else
c:=Size(java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
fi;
fi;
# check whether we have already a better operation (or whether this normal
# subgroup is locked)
p:=PositionSet(pool.AddSetjava.lang.StringIndexOutOfBoundsException: Range [34, 32) out of bounds for length 36
if fi
if pool. od
return fail;
fi;
pAddSetdiscard;
# compute the permutation we have to apply finally
perm:=PermList(Concatenation([1. fi
p.Lengthpool.ker)]))^-1;
# first add at the end = pool[3=N
pL(pool+java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
k[]=;
Info ker1] ,(kerc[])
,Size);
elif c>=pool.cost[p] then
Info(java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 11
;
elif pool.lock[p]=java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 7
java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
else
(,pricec size,G)java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
=;
# update dependent costs
ch:=[ java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 43
diff=pool.ostp]
while while Length=java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
nch:=[
nd:=[];#############################################################################
##
if#F FactorCosetAction( <G>, <U>, [<N>] ) operation on the right cosets Ug
involved:=Intersection(pool.ops[i],ch);
if Length(involved##
:({Listi,-P(ch,x))java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
pool.java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 12
Addnch,i;
Add(nd,involved);
fijava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
;
od;
ch:=nch;
diff:nd;
od;
fi;
if IsMapping(op) and not HasKernelOfMultiplicativeGeneralMapping;
SetKernelOfMultiplicativeGeneralMapping)
fi;
pool.ps[p]:=op;
pool.cost[p]:=c;
pool.lock[p]:=false;
# update the costs of all intersections that are affected
Error" trivial operation ? I Set u:=G;");
if IsList(pool.ops[;
if N=false
fi;
odjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
if Length(arg)>4 then
pool.[:=[5;
else
pool.blocksdone[p]:=false;
fi;
if perm<>()then
# sort the kernels anew
k:Permuted(.,erm;
# sort/modify the other components accordingly
pool.ops java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
iin[.Lengthpool.) do
# if entries are lists of integers
if op:=Image(h=magehG;
pool.ops[i] java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 27
fi;
od;
java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 37
pooljava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
:java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 52
poolS(.java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 63
fi
tojava.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 56
end
#############################################################################
##
#F LockNaturalHomomorphismsPool(G,N) . . store flag to prohibit changes of
## the map to N
##
InstallGlobalFunction
localjava.lang.StringIndexOutOfBoundsException: Range [13, 11) out of bounds for length 72
:java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
N=java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 29
if N<>fail then
pool.lock;
fi;
end);
#############################################################################
##
#F UnlockNaturalHomomorphismsPool(G,N) . . . clear flag to allow changes of
## the map to N
##
InstallGlobalFunction(UnlockNaturalHomomorphismsPool,function(G,N)
local pool;
pool:=NaturalHomomorphismsPool(G);
N:=PositionSet(pool.ker,N);
if N<>fail then
pool.lock[N]:=false;
fi;
end);
#############################################################################
##
#F KnownNaturalHomomorphismsPool(G,N) . . . . . check whether Hom is stored
## (or obvious)
##
InstallGlobalFunction *(GIhU,mage(Njava.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
return N=G or Size(N)=1
or PositionSet(java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 30
end);
#############################################################################
##
#F GetNaturalHomomorphismsPool(G,N) . . . . get operation for G/N if known
##
IsGroupIsList]0java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
local ,ph,ise,mbij;
if ifLength()0 ForAllLx>() (,)
fail;
fi;
pool:=NaturalHomomorphismsPool(G);
p:=java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 5
if p< then
h:= gens=(1)]java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
ifIsListh)
# just stored as intersection. Construct the mapping!
# join intersections
=h;
for i in ise do
o[] (o[[])
for j in Filtered(pool.ops[i],j-> not j ;
Add(ise,j);
od;
elif not pool.blocksdone[i] :G(G,g,)
h=(G,.[i)
pool.in_code:=true; # don't add any new kernel here)
# (which would mess up the numbering)
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 2
pool.in_code##
;
od;
ise:=
(,,[,,
ise:=java.lang.StringIndexOutOfBoundsException: Range [0, 17) out of bounds for length 11
fi;
h:=CallFuncList(DirectProduct,List(ise,Image));
([..(),-Embedding(,java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
emb:=List(java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
i-
dom(;
h=GiGeneratorsOfGroup)emb)
SetKernelOfMultiplicativeGeneralMapping(h o:OrbitsDomainGdom;
op:h
elif
# do orbits and test for blocks
fi java.lang.StringIndexOutOfBoundsException: Range [17, 18) out of bounds for length 17
p:=h;
fi;
returnp;
end);
#############################################################################
##
#F DegreeNaturalHomomorphismsPool(G,N) degree for operation for G/N if known
##
InstallGlobalFunction(DegreeNaturalHomomorphismsPool,function(G,N)
ocal ,pool;
pool:=#############################################################################
>IsIdenticalObj(pool# file part ,a forcomputational #
if p=fail then
p=# to list here. Please refer to the COPYRIGHT file for details.
;
if p<>fail then
else
fi;
returnp;
end);
#############################################################################
##
#F CloseNaturalHomomorphismsPool(<G>[,<N>]) . . calc intersections of known
## operation kernels, don't continue anything which is smaller than N
##
InstallGlobalFunction(CloseNaturalHomomorphismsPool:MG)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
local G,allbold=]
;
pool:=NaturalHomomorphismsPool a> java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
p:[.ength(.r]
Npos: Adda,)
if :[]blocksdone=,n_code:,otriv:)
# get those p that lie above N
N= G .
p=(p, Gi}nSets);
if Length(p)lr;
return;
fi;
SortParallel(List(op:=ActionHomomorphism rin_codetrue ;fi;
if Size( op:);
# N in pool
Npos:=p[1ifonlykernel> andk=ops=];
c:=pool. :engthb)
r.:=]
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 7
else
SortParallel(List( r # also one finer blocks (to make up for iterating only once))
iftype=then
fi
if Size(Intersection## returns false if nothing had been added and 'fail' if adding was
# cannot reach N
returnjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
fi; 3java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
# determine inclusion, derived
= ,java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 29
aLength
discard:Info
for fi;
return java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
odjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
if ForAny(c#
AddSetdiscard,p[i]);
fi;
c:=DerivedSubgroup(# Add(bl,Immutable(Set(b)));
if N<
pder[p[Info4"java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 47
od;
#if Length(discard)>0 then Error(discard);fi;
#discard:=[];
p# split lists in their components
forocalo ,j ,newb;
new:=p;
repeat
# now intersect, staring from top
ifjava.lang.StringIndexOutOfBoundsException: Range [0, 18) out of bounds for length 16
comb:=Combinations(new,2);
else
comb:=java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
fi
comb:=do
Info(/(j)<ength(bl)
new:=[];Size)1
discard:=[];
i:=1;
while i<=Length(comb):Orbit(GjOnSets;
co:=# alsoone blocks as iterateonly )
# unless they contained in each other
if not (co[1 if (newb)>
or thereasubgroup both that at as cheap
or ForAny(Intersection(java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
x>costx]=.ost[[]+.[co])
# or both intersect in an abelian factor?
or (N<>fail and pder[co[1]]<<ength(dom)then
and pder[co[1 failjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
c:=Intersection(pool.ker[co[1]#############################################################################
pos:=Position(pool.ker,c);
##
InfoFactor,,Intersect ,,:"java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
(.erco[]])" "pool.[co[2])
" yields ",Size(c));
isi:ShallowCopy();
# unpack 'iterated' lists
if IsListp.ops[[])(.[[2]1)then
isi=arg1;
fi;
if IsList(pool.ops[co[1]]) and IsInt(pool.ops[co[1]][1]) then
isi:knowi=3;
fi
isi:=java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 5
if Size(N)G)then
if pos=fail then
pos:=java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 38
p=(pi-p)
new:=List(java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
discardG, then
#pder:=Permuted(List(pder,x->x^perm),perm);
for return java.lang.StringIndexOutOfBoundsException: Range [31, 28) out of bounds for length 32
if IsPosInt :java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 72
;
Add(pder, ;
pder:=Permuted(pderbigperm= java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 53
:Permutedpsub,-x,java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 60
kin [.psub)] java.lang.StringIndexOutOfBoundsException: Range [41, 42) out of bounds for length 41
if IsList( simple:=HasIsNonabelianSimG and G and (N)=2;
od;
Add(psub,0);
psub:=Permuted N)then
Applycombj>java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 42
# add new c if needed
for j in p do
if IsSubset(pool.ker[j],c) then
AddSet(psub[j],pos uc=zen
if pool.cost[j]>=pool.cost[pos] then(java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 48
discard,);
fi;
fi;
odjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
psub[pos]:=Set(Filtered(p (G,)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
pder[pos]:=fail;
else
if perm<>() then Error("why perm here?");fi;
psub[os]=Set(Filtered(p,x->IsSubset(c,pool.ker[x])));
fi;
AddSet(new,pos);
(psub],>cx<pool.ost[)then
AddSetfi;
fi;
pder[pos]:=fail;
if c=N # (We might always add random java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 73
;
fi;
else
Info(InfoFactor #else
Size(#fi;
" yields"Size(c)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
fi;
fi;
i:=i+1;
od;
#discard:=[];
for i in discard do psub[i if fthen
:D(nionpnew),);
new:= hard:=10000
SortParallel((pool.{}Size)p)
java.lang.StringIndexOutOfBoundsException: Range [0, 16) out of bounds for length 14
until Length(new)=0;
end);
#############################################################################
##
#F FactorCosetAction( <G>, <U>, [<N>] ) operation on the right cosets Ug
## with possibility to indicate kernel
##
InstallGlobalFunction("DoFactorCosetAction",function(arg)
localG,,h,;
G:=arg[1];
u:=arg[2];
if Length(arg)>2 then
N:=arg[3];
else
N :Subgroup([andom())java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
fi;
if IsList(u) and Length(u)=0 then
u:=G;
Error("only trivial operation ? :=Group(Concatenation(GeneratorsOfGroup(u)[ else
fi;
if falsethen
N:(, fijava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
AddNaturalHomomorphismsPoolG,,;
rt=RightTransversal(G, rt:=RightTransversal(G,u cost big stabilizer chain calculation -- just
if not IsRightTransversalRep( op=
# the right transversal has no special `PositionCanonical' method.
rt
fi;
h=ctionHomomorphismG,OnRight"surjective);
op:=Image(h,G);
SetSize(op,IndexNC(G,N)java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 13
# and note our knowledge
KnownNaturalHomomorphismsPool,java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
and 5*totalcntIndexNC,),nowi1000)
return h;
end);
InstallMethod(FactorCosetAction,java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
IsIdenticalObj,[IsGroup,IsGroup],0,
function(G,U)
return DoFactorCosetAction(G,U);
end);
InstallOtherMethod(FactorCosetAction,
"by right transversal operation, given kernel",IsFamFamFam,
[IsGroup,IsGroup, c=Sum(.ostop});
unction(,,)
return DoFactorCosetAction(G,U,N
end); # k"onnen)
(InstallMethod(FactorCosetActionelse
IsIdenticalObj,[IsGroup # der Index ist nicht so klein, da"s wir keine Chance haben
java.lang.StringIndexOutOfBoundsException: Range [12, 8) out of bounds for length 13
local hom;
hom:=notjava.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 59
return
end);
InstallOtherMethod(FactorCosetAction,
"by right transversal operation, given kernel, Niceo",IsFamFamFam,
function(,U)
local hom;
hom:RestrictedNiceMonomorphismNiceMonomorphism(G),G#java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
return java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 74
end);
# action on lists of subgroups
(FactorCosetAction
"On cosets list
[IsGroup,IsList], :CoreG,;
else
ocal ,gens,;
if Length(L)=0 or
)
fi;
q:(,x-FactorCosetAction
gens:=MappingGeneratorsImages(java.lang.StringIndexOutOfBoundsException: Range [6, 1) out of bounds for length 33
imgs:=List(zzz=java.lang.StringIndexOutOfBoundsException: Range [41, 38) out of bounds for length 61
d:=imgs[1];
for i in [2..Length(imgs)] do
d:=SubdirectDiagonalPerms(d fijava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
od;
imgs:=Group
q=java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 48
q;
end);
#############################################################################
##
#M DoCheapActionImages(G) . . . . . . . . . . All cheap operations for G
##
InstallMethod(java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 12
max:=x>G,)IsSubset(x,);
function(G)
local pool, dom, o, java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
found, java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 60
onlykernel:=ValueOption("onlykernel");
=(;
pool:=NaturalHomomorphismsPool(G);
falsethen
dom:=MovedPoints(zzz:java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 47
# orbits
o:=OrbitsDomain(G,dom);
o:=Set(o,Set);
# do orbits and test for blocks
foriin o do
if Length(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# only works if domain are the first n points
not (1Info+java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 36
opjava.lang.StringIndexOutOfBoundsException: Range [13, 9) out of bounds for length 14
Range N;# all new
java.lang.StringIndexOutOfBoundsException: Range [37, 35) out of bounds for length 63
op, (,"vs "badi;
type:=1;
else
op:=############################################################################
type:=2;
fi;
Go:=Image(op,G);
# all minimal and maximal blocks
mov:MovedPoints(Go)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
allb:=Go,java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
allbold:=[];
b,;
Info(InfoFactor,1,"Smaller degree for order ",Size(G),", deg: ",NrMovedPoints(G));
j:= java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 30
Add(allbold,j);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# >1.
Length(/(j<ound
b:=List(Orbit(G,i{ :;
#Add(bl,Immutable(Set(b)));
op:=ActionHomomorphism(G,Set(b),OnSets,"surjective s)<GeneratorsOfGroupG)
onlyimage;`'same
k:=KernelOfMultiplicativeGeneralMapping:=Group()java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
if SetSizeHSize))java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
:=Length()
fi;
AddNaturalHomomorphismsPool(G,k,op);
finerblocks t upfor
java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 24
newbif("java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 41
else
newb:=Blocks(Go,Blocks(Go,mov,j),OnSets);
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 13
if ()1
:Unionnewb1);
if (newbinallbor newb java.lang.StringIndexOutOfBoundsException: Range [57, 58) out of bounds for length 57
Add( k:=Group(erg);Se:erg;java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 39
SortBy(allb,Length);
fi;
fi;
fi;
od;
#if Length(i)<500 and Size(Go)>10*Length(i) then
#else
# # one block system
# b:=Blocks(G,i);
# if Length(b)>1 then
# Add(bl,Immutable(Set(b)));
# fi;
# fi;
od;
pool.GopDone:=true;
fi;
end);
BindGlobal:]
function(G,mustfaithful)
local dom, o, gut:=[;
dom:=s:k,oi,;
# orbits
o:=OrbitsDomain(G,dom);
o:=Set(o,Set);
# all good blocks
:dom
allb:=java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 11
java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 18
Length(o:=java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
Size((java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 66
then
b:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
bl:=b;
java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
newb:=Blocks(G,b iin[.Length()] do
if Length(newb)>1 then
newb:=Union(newb[1]);
java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 34
(,newb;
fi;
fi;
fi;
od;
if Length =java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 37
;
else
return fail;
fi;
end);
#############################################################################
##
#F GenericFindActionKernel random search for subgroup with faithful core
##
too
BindGlobal:b
G N , java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
u nu,cor bigpermermm,java.lang.StringIndexOutOfBoundsException: Range [70, 69) out of bounds for length 70
G:=arg[1od;
N:=arg[2];
knowi:=arg[3] sS(G;
else
knowi:=IndexNC(G,N);
fi;
# special treatment for solvable groups. This will never be triggered for
# perm groups or nice groups
if Size(N)>1 and java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
perm:=java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 70
perm:=perm#
return perm;
fi;
# special treatment for abelian factor
ifH:java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 61
if IsPermGroup(G) SetSizeH,SizeG);
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 32
else
perm:=java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 6
fi;
return perm;
fi;
bigperm:=IsPermGroup:true
# what is a good degree:
goodi:=Minimum(Intjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
simple=java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 85
uc:=TrivialSubgroup(=java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 18
# look if it is worth to look at action on N
elian replace abelian
if IsAbelian(N) and ( bl:=Blocks(H,MovedPoi(H);
<50000then
zen:=Centralizer( ImagesSource(onlyimage) #`onlyimage' forces same generators
ifzen)Size()
cnt:=0;
repeat
cnt:=cnt+1;
zen:=Centralizer(G,Random(N));
(orSize(G))SizeN)and
IndexNC(G,zen)<IndexNC H:Image(map);
uc:=zen;
fi;
# until enough searched or just one orbit
until cnt=9 or (IndexNC(G,zen)1=N)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
AddNaturalHomomorphismsPool(G,N,uc,IndexNC(G,ucjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
else
(nfoFactor,3"centralizer too big");
fi;
fi;
pool:=NaturalHomomorphismsPool(G);
pool.dotriv:=true; DoCheapActionImages(H::=(H));
CloseNaturalHomomorphismsPool(G, (H);
pool.dotriv:fi;
ise:=Filtered(pool.ker,x->IsSubset(x,N));
if Length(isejava.lang.StringIndexOutOfBoundsException: Range [54, 31) out of bounds for length 54
ise:=G;
else
ise:=Intersection(ise);
fi;
# try a random extension step
# (We might always first add a random element and get something bigger)
v:Njava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
#if Length(arg)=3 then
## in one example 512->90, ca. 40 tries
#else
#cnt:=25;
#fi;
=[];
badi;
hard:=ValueOption("hard");
if hard= nch:=[java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
hard hom;
elif hard=true then
hard:=10000;
fi;
totalcnt:=0;
interrupt:=false;
cnt:=20;
repeat
u:=v;
repeat
repeat
if Length(arg)<4 or Random(1,2)=1 then
if IsCyclic(u) and Random(1,4)=1 then
# avoid being stuck with a bad first element
u:=Subgroup(G,[Random(G)]);
fi;
if Length(GeneratorsOfGroup(u))<2 then
# closing might cost a big stabilizer chain calculation -- just
# recreate
nu:=Group(Concatenation(GeneratorsOfGroup(u),[Random(G)]));
else
end;
fi;
else
if Length(GeneratorsOfGroup(u)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 0
# closing might cost a big stabilizer chain calculation -- just#F ImproveActionDegreeByBlocks( <G>, <N> , hom )
# recreate
nu:=Group(Concatenation(GeneratorsOfGroupgimgimg,dom,bi,p,,k,estdeg,op,cbjava.lang.StringIndexOutOfBoundsException: Range [68, 67) out of bounds for length 73
else
:ClosureGroupuarg4])java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
;
fi;
(,G
totalcnt:=java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if KnownNaturalHomomorphismsPool(G,N) :Sum{x>,)};
IndexNC,v,hard
and 5* (,i)
# interrupt if we're already quite good
:java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
fi.=;
if ForAny(badcores,x->IsSubset(nu,x)) then
nu:=u;
fi;
# Abbruchkriterium: Bis kein Normalteiler, es sei denn, es ist N selber
# (das brauchen wir, um in einigen trivialen F"allen abbrechen zu
# k"onnen)
#Print("nu=",Length(GeneratorsOfGroup(nu))," : ",Size(nu),"\n");
until
# der Index ist nicht so klein, da"s wir keine Chance haben
((not .locksdone[]=true;
Length(Orbit(nu,java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 0
IndexNC(,nu)>50 or Factorial(IndexNC(G,nu))>=java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 20
not IsNormal(G,nu)) gimg;
Info(InfoFactor,4,"Index ",IndexNC(G,nu));
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
until totalcntSetKernelOfMultiplicativeGeneralMapping(op,)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
# und die Gruppe ist nicht zuviel schlechter als der
# beste bekannte Index. Daf"ur brauchen wir aber wom"oglich mehrfache
# Erweiterungen.
((a)for in[.Length(.)] do
if IndexNC(G,u)<knowi then
#Print("Index:",IndexNC(G,u),"\n");
<>G then
cor:=TrivialSubgroup(G);
else
cor:=Core(G,u);
fi;
ifSize(N and IsSubsetcor) injava.lang.StringIndexOutOfBoundsException: Range [71, 70) out of bounds for length 75
Add(badcores,cor);
fi;
# store known information(we do't act, just store the subgroup).
# Thus this is fairly cheap
pool.dotriv:=true;
zzz:=AddNaturalHomomorphismsPool(InfoFactor,2" allseeds";
if IsPerm(zzz) and zzz<>() then# all blocks
CloseNaturalHomomorphismsPool);
fi;
pool.dotriv:=false;
zzz:=DegreeNaturalHomomorphismsPoolbestdeg:Length()java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
Info(InfoFactor,3," ext ",
if cnt<10 and Size(cor)>Size
ValueOption("inmax")=fail thenbb:=Blocksimg,,dom1],suboi])java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
if IsSubset(SolvableRadical(N)<Size((u)) java.lang.StringIndexOutOfBoundsException: Range [83, 83) out of bounds for length 66
onesare needed will needed, rest will have wrong kernel
sTF,":,;
else
=java.lang.StringIndexOutOfBoundsException: Range [45, 42) out of bounds for length 58
fi;
max:=Filtered(=Permuted f<then
for # if en java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 57
cor:=Core(G,i);
AddNaturalHomomorphismsPool,,java.lang.StringIndexOutOfBoundsException: Range [0, 53) out of bounds for length 49
(G,java.lang.StringIndexOutOfBoundsException: Range [49, 50) out of bounds for length 49
Info(InfoFactor,3," Maxes: sto.limit=gimg)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
fi;
else
zzz:=DegreeNaturalHomomorphismsPool(G,N);
;
if IsInt(zzz) then
knowi:=zzz;
fi;
# List(gimgbas,i->PositionProperty(bb,j->i in j)));
if cnt=0 and zzz>badi then
badi:=Int(java.lang.StringIndexOutOfBoundsException: Range [43, 20) out of bounds for length 43
Info(InfoWarning+InfoFactor,2,
index java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 53
opLength(b);
totalcnt:=0;
;
v:=N; # all new
fi;
until interrupt or cnt<=0 :=java.lang.StringIndexOutOfBoundsException: Range [58, 55) out of bounds for length 60
;
return GetNaturalHomomorphismsPool(G,N);
end );
#############################################################################
##
#F SmallerDegreePermutationRepresentation( <G> )
##
InstallGlobalFunction pool fi
localojava.lang.StringIndexOutOfBoundsException: Range [46, 1) out of bounds for length 46
change:=false;
oInfoFactor:true;
cheap:=bestdeg:engthbb;
if cheap=":bb
java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 30
fi;
cheap:=cheap=true;
if Length(GeneratorsOfGroup(G))>7 then
s:=SmallGeneratingSet(G);
if Length(s)=0 then s:=[One(G)];fi;
if Length(s fi;
Info( i:=ii:=i+;
H=();
change:=true;
SetSize(H,Size(G));
return SmallerDegreePermutationRepresentation(H);
fi;
# deal with large abelian components first (which could be direct)if <failb,i-U(bdomi)
if cheap<pop:=(gimgbOnSetss";
hom:MaximalAbelianQuotient(G);
i:=IndependentGeneratorsOfAbelianGroup(Image(hom));
o=iOrder;
if ValueOption("norecurse")<>true and
Product(o) stolimit=()java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
Info(InfoFactor,2,"append abelian rep");
s:=AbelianGroup(IsPermGroup,o);
ihom:=GroupHomomorphismByImagesNC(Image(hom),# if gimgbas<>false then
erg:=SubdirectDiagonalPerms(
List(GeneratorsOfGroup(G),x->Image(ihom,# fi;
GeneratorsOfGroup(G));
k:=Group(erg);SetSize(k,Size(G)); =java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 39
hom:=roupHomomorphismByImagesNC(,k,GeneratorsOfGroup(G)erg)
return hom*SmallerDegreePermutationRepresentation(AddNaturalHomomorphismsPool(java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
fi;
fi;
# known simple?
if HasIsSimpleGroup(G) and IsSimpleGroup
and NrMovedPoints(G)>=SufficientlySmallDegreeSimpleGroupOrder(Size(G))
then return k:=KernelOfMultiplicativeGe()java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
fi;
if not IsTransitive(G,MovedPoints(G)) then
o:=ShallowCopy(OrbitsDomain(GSetKernelOfMultiplicativeGeneralMapping,PreImage,k);
SortBy(o, Length);
(G
s:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
## the map to Nb);
k:=G;
gut:=[];
for i in :true;
sbestop;
if Size(s)<Size(k) then
k:=s;
Add(gut,i =NaturalHomomorphismsPool(G)then
fi;
od
# reduce each orbit separately
o:=o{gut};
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
o,(a,)eturn )Length();nd);
od;
SortBy(,Length)
InstallGlobalFunction(UnlockNaturalHomomorphismsPool,functionG,
k:=G;
for i in [1..Length( java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
Info(InfoFactor,1,"Try to shorten orbit ",i," Length ",Length(o[i]));
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 58
k2:#############################################################################
k#############################################################################
H:=Range(s);
# is there an action that is good enough for improving the overall
# kernel, even if it is not faithful? If so use the best of them.InstallMethod(,generic java.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 74
b:=java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0
if b<>fail then
,2,Blocksfor kernelreduce "L();
:=ctionHomomorphism(H,b,,surjective";
s:=s*b;
fi;
s=s*s))java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
Info(InfoFactor,1,"Shortened (""fjava.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 52
erg:=SubdirectDiagonalPerms if java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 62
od;:n);
if NrMovedPoints(erg)<NrMovedPoints(G) then
s:=Grouperg() # `erg' arose from `SubdirectDiagonalPerms'
SetSize(s,Size(G));
s:=ClosureGroup(DerivedSubgroup(g),n);
SetIsBijective(s,true);
return s;
fi;
return (G)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
fi;# intransitive treatment
# if the original group has no stabchain we probably do not want to keepf(alev)
# it (or a homomorphisms pool) there -- make a copy for working
# intermediately with it.
if not HasStabChainMutable:[a;
H:= GroupWithGenerators( GeneratorsOfGroup( G ),One(G
change:=true;
if wait:=[;
SetSize(H,Size(G));
fi;
f java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 29
SetBaseOfGroup( iinm do
fi;
else
H:=G;
fi;
hom:=IdentityMapping(H);
b:=NaturalHomomorphismsPool(H);
bdotriv:true;
AddNaturalHomomorphismsPool(H,TrivialSubgroup( :TryMaximalSubgroupClassReps(:inmax,infactorpermrep,);
b.otriv:false;
# cheap initial block reduction?
if IsTransitive(H,MovedPoints(H)) then
improve:=true;
while improve and (cheap or NrMovedPoints(H)*5>Size(H)) do
improve:=false;
bl:=Blocks(H,MovedPoints(H));
IsSubset(j, then
ImagesSource( use:=ClosureGroup(n,DerivedSubgroup())
bl:=KernelOfMultiplicativeGeneralMapping(map);
G,bl,ap;
if Size(bl)=1 then
hom:=hom*map;
H=(map;
change:=true;
Info(InfoFactor,2," quickblocks Add,)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
fifi;
od;
fi;
b:=NaturalHomomorphismsPool(H);
b.dotriv: else
if change then
DoCheapActionImages(H:onlykernel:=TrivialSubgroupfi;
else
DoCheapActionImages(H);
fi;
CloseNaturalHomomorphismsPooljava.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 63
b.dotriv:=false;
:java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 57
if map<>fail and Image(map)<>H
Info(InfoFactor,,cheap to degree",NrMovedPoints())
hom:=hom*map;
H:=Image();
fi;
o:= fi;
if not java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
sGjava.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 70
# just stored as intersection. Construct the mapping!
hom:=hom*s;
fi;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
return hom;
end);
#############################################################################
##
#F ImproveActionDegreeByBlocks( <G>, <N> , hom )
## extension of <U> in <G> such that \bigcap U^g=N remains valid
##
wait:=Filtered)
omb,improvebp,bbi,,,,op,bc,bestblock,bdom,
bestop,sto,subomax;
(java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 49
# remember that we computed the blocksjava.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 55
# special case to use it for improving a permutation representation
if Size(N)=1 then
Info(InfoFactor,1,;
b.ker:=[N];
bops:=;
b.cost:=[Length(MovedPointsInfoFactor,,pop ,(Listisex-I())java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
b.lock:=[false];
ocksdone:[false]];
subomax:=;
else
subomax:=500;
i:=PositionSet(b.ker,N);
if b.blocksdone[i] then
fi)
b.blocksdone[i]:=true;
#############################################################################
return 1;
fi;
gimg:Imageoh,)java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
java.lang.StringIndexOutOfBoundsException: Range [6, 4) out of bounds for length 51
:(img;
bdom:=fail;
if IsTransitive(img,dom) then
# one orbit: Blocks
repeat
b:=Blocks(img,dom);badcomb, idxactk,;
improve:=false;
if b>1then
if Length
subo=(dom[1];
subo:java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
else
subo:=fail;
fi;
bc h=G,,N;# will implicitly store
<faildomhiefSeriesThroughG,o,)
fi
# if the degree is not too big or if we are desperate then go for
# all blocks
# greedy approach: take always locally best one (otherwise there
# might be too much work to do)
bestdeg=(dom;
bp:=[]; #Blocks pool
i #and HasElementaryAbelianFactorGroup(dom[i-1],dom[j+1])##
i=engthsubo) [+)2000
if subo[i] in bc then
bb:=b;
=v:=RightTransversal[i1dom];
fi;
if Length(bb)>1 and not (bb[1] in bp or oo:=rbitsDomain(G,v,,vfunction(rep,)
(InfoFactor,,found "Length()java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
# new nontriv. system found
AddSet(bp,bb[1]);
# store action
op:=1;# remove old homomorphism to free memory
if :StabilizerGk]functiong)
bb:bb,i-I(b{i});
fi;
op:=bbOnSets,sjava.lang.StringIndexOutOfBoundsException: Range [64, 63) out of bounds for length 66
HasSize(img not ()then
sto:= G,u,,IndexNC,);
sto.limit:=Size(gimg);
# try only with random (will exclude some chances, but is
. sizeis aproofjava.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
.:
# if gimgbas<>false then
# SetBaseOfGroup(Range(op),
# List(gimgbas,i->PositionProperty(bb,j->i in j)));
# fi;
ifSize())=Size() then
sto.random:=1000;
:=TrivialSubgroup(gimg)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
dom=ker)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 27
AddNaturalHomomorphismsPoolp,->pool.[i,));
KernelOfMultiplicativeGeneralMapping(op),
op,Length(bb));
else
k:=[]; # do not trigger improvement
fijava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
else
k:=Info(InfoFactor,2,"Try reductionorbits";
SetSize(Range(op),IndexNC(gimg,k));
-ClosureGroup,);
SetKernelOfMultiplicativeGeneralMapping(op,PreImage(oh,k));
AddNaturalHomomorphismsPool(G,
op),
op,Length(bb));
fi;
# and note whether we got better
#improve:=improve or (Size(k)=1);
if Size
java.lang.StringIndexOutOfBoundsException: Range [29, 23) out of bounds for length 30
bestdeg:Lengthbb;
bestblock:=bb;
bestop:=op;
ol.ker ifLength()1 java.lang.StringIndexOutOfBoundsException: Range [23, 24) out of bounds for length 23
fi(iOnPoints,s";
# break the test loop if we found a fairly small block system
# (iterate greedily immediately)
=Filtered(ppool.c;
java.lang.StringIndexOutOfBoundsException: Range [43, 29) out of bounds for length 29
fi;
greeNaturalHomomorphismsPoolmjava.lang.StringIndexOutOfBoundsException: Range [51, 47) out of bounds for length 56
;
else
(InfoFactor,t only )java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
op:=1;# remove old homomorphism to free memory
if bdom<>fail then
:Set((b,->Immutable(Union(bdom{});
fi;
op:=ActionHomomorphism(gimg,b,OnSets,"surjective");
gimg) HasStabChainMutable() then
sto:=StabChainOptions(Range(op));
sto
# try only with random (will exclude some chances, but is
# quicker. If the size is OK we have a proof anyhow).
sto.random: =);
# if gimgbas<>false then
# SetBaseOfGroup(Range(op),
# List(gimgbas,i->PositionProperty(b,j->i in j)));
# fi;
if Size(Range(op))=Size(gimg)cnt:=OrbitsDomain,)i-Length()>1)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
sto.random:=1000;
k:=TrivialSubgroup(gimg);
op:=oh*op;
SetKernelOfMultiplicativeGeneralMapping(op,PreImage(oh,k)u:Core((G,);
AddNaturalHomomorphismsPool(G,
java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 59
op,Length(b));AddNaturalHomomorphismsPool(u,,java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 58
java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 41
k:=[; # do not trigger improvement
fi;
else
k:=KernelOfMultiplicativeGeneralMapping(op);
SetSize(Range(op),IndexNC(gimg,k));
# keep action knowledge
op:opjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
SetKernelOfMultiplicativeGeneralMapping(op,PreImage(oh,k));
AddNaturalHomomorphismsPool(G,
KernelOfMultiplicativeGeneralMapping(op),
;
;
ifSize()1fi
:tjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
bestop:=op;
# whether anything stabilizing can be of use
fi;
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
mapping
=;
img:=Image s:=;
:MovedPoints(mg;
fi
fi;
until InfoInfoFactor,,stabilizer index "IndexNC(G,s))
fi;
Info(InfoFactor,1,"end of blocks search")j if (badnormals,java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
(GN)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
end);
#############################################################################
##
#M FindActionKernel(<G>) . . . . . . . . . . . . . . . . . . . . generic
##
" for finite groups,sIdenticalObj
[ =(,)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
RedispatchOnCondition(FindActionKernel,IsIdenticalObj,[IsGroup,IsGroup],
[IsGroup N<failjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 44
InstallMethod(FindActionKernel#=];
fori in find notany part of m
BindGlobal("FactPermRepMaxDesc",function(g,n,maxlev)
local limdegall,,recurse,start;
if ValueOption("infactorpermrep")=true then return false;fi;
deg # now intersect, staring from top
deg1java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
:[
=Info,"",cnt;
Info(InfoFactor2": ", java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 57
c: :[;
Info(InfoFactor,1,"Try maximals for limit ",lim notjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 9
:functiona,
local m,ma,nm,i,j# o:(u;
InfoInfoFactor,idx/Size(ojava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
m:=[a];
while Length(# the permimage won't be sufficiently large
:=]
ma:=[];
for i in m do
ifForAll(all,y->RepresentativeActiong,iy)fail)then
Add(all,i);
(2,Maximals"I(gi))java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
nm:=(inmax,cheap);
(nm,->IndexNC(x<lim java.lang.StringIndexOutOfBoundsException: Range [60, 59) out of bounds for length 72
java.lang.StringIndexOutOfBoundsException: Range [20, 18) out of bounds for length 25
for j in
IsSubsetj)then
(n,java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 54
not(,cthen
j:=use;
use:=true;
else
Add(wait,j);
use:= :0java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
fi;
else
use:=true;
fi
if fi
co:=Core(g, x->poolx<oolcost[[+poolo2]
if (not blocksdone) and<00 <ndexNC(,N) then
c:=Intersection(co,c);
Add(ma,j);
fi;
odjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
Info("yields ",Size(c));
;
od;
if Length(ma)>0 =G,N)or
CloseNaturalHomomorphismsPool(,);
i:=DegreeNaturalHomomorphismsPool(g,n);
if i< GenericFindActionKernelG,s<> java.lang.StringIndexOutOfBoundsException: Range [58, 59) out of bounds for length 58
deg:=i;
Info(InfoFactor,1,"Itmax Info(InfoFactor,1," Random search foInfoFactor," Random ,bestdeg;
if lev>1 or deg<lim then return
fi;
m:=ma;
SortBy(m,x->-Size(x));
elif lev<maxlev then
# no improvement. Go down
wait:" java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 60
indo
if recurse(i,lev+1) then return true;fi;
od;
m:=[];
else
m:=[];
fi;
od;
if Size(c)>Size(n)
Info(InfoFactor,#M FindActionKernel(<G>) . . . . . . . . . . . . . .#
else
Ijava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 49
fi;
falsejava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
end;
java.lang.StringIndexOutOfBoundsException: Range [16, 8) out of bounds for length 26
java.lang.StringIndexOutOfBoundsException: Range [4, 3) out of bounds for length 20
#############################################################################
##
#M FindActionKernel(<G>) . . . . . . . . . . . . . . . . . . . . permgrp
##
InstallMethodF,""
[IsPermGroupIsPermGroup]],java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
function(G,N)
local pool, dom, bestdeg## this function returns an epimorphism from G
badcomb, idx, i, comb,act,k,j;
if IndexNC(G,N)<50 then
# small index, anything is OK
return GenericFindActionKernel(G, java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 49
else
# get the known ones, including blocks &c. which might be of use
DoCheapActionImagesG);
# find smallish layer actions
oo:=ClosureGroup(SolvableRadical(G), h, )java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
dom:=java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
dom:=Filtered(dom, if (HasSize(N) and Size(( (N=)or N)and
i:=2;
while i<=Length(dom) do
j:=i;
while j<Length(dom)
#and HasElementaryAbelianFactorGroup(dom[i-1],dom[j+1])
and dom[1]dom[ and IndexNC(dom[i-1],dom[j+1
j:=j+1;
od
if(domi]j)=2000then
oo:=psubjava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 25
return v[:=GetNaturalHomomorphismsPoolGN;
end);
for k in oo do
if (k> then
:=Gk[1,x)
return v[PositionCanonical(v,x^gproj:=ProjectionGproj)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
end);
repeat
if G,)then
AddNaturalHomomorphismsPool(G,Core(G java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
fi;
m:=u;
u:=java.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 52
until m=u;
od
fi;
i:=j+1;
od;
pool:=NaturalHomomorphismsPool(G);
dom:=MovedPoints(G);
# store regular to have one anyway
not G IsFinite(G)
AddNaturalHomomorphismsPool(G,N,N,bestdeg);
# check if there are multiple orbits
oh:G,);
s ifh>then
if not ForAny(s,i->IsSubset(N,i)) then
Info toorbits");
s:=List(s,i->ClosureGroup(i Length(ovedPointsRange, found);
if Intersection(s)=N then
Info(java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 57
List(s,i->
fi;
fi
CloseNaturalHomomorphismsPool(G,N);
# action in orbit image -- sometimes helps;
if Length(o)>1 then
for i in o do
=ActionHomomorphism(G,i,OnPoints,"surjective");
k:=KernelOfMultiplicativeGeneralMapping(act)
:=(k,N) # pre-image of (image of normal subgroup under act) of ( of subgroupunder )
=(act)
:=(Image(ct,u)
o:=java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 13
ifIsInt()hen otherwise do
(Gk,*o;
fi;
od; ;
(G,)
fi;
bestdeg:=DegreeNaturalHomomorphismsPool(G,N
(InfoFactor1"andknown Info(InfoFactor,5,"Intersect ",co,": ",
=java.lang.StringIndexOutOfBoundsException: Range [21, 14) out of bounds for length 22
# use subgroup that fixes a base of N
# get orbits of a suitable stabilizer.
o:= for i in disca;
snew:
badnormalsF KnownNaturalHomomorphismsPool() java.lang.StringIndexOutOfBoundsException: Range [44, 45) out of bounds for length 44
if ()1and if A<50 or (IsInt(A) and<()(G)))
cnt:(OrbitsDomains,dom)i-Length()>;
for i in do
v:=ClosureGroup(N, Info(InfoFactor,2,"use(nfoFactor,,use )
############################################################################
and not ForAny(badnormals,j->IsSubset(v,j)java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 7
u=G,v);
u:=arg[2];:arg[;
Add(badnormals,u);
fi;
AddNaturalHomomorphismsPool :a[3;
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
aturalHomomorphismsPoolN;
java.lang.StringIndexOutOfBoundsException: Range [39, 13) out of bounds for length 51
Info(InfoFactor,1,"Base Stabilizerandjava.lang.StringIndexOutOfBoundsException: Range [0, 50) out of bounds for length 5
if
# should be better...
bestdeg:=ImproveActionDegreeByBlocks ;
java.lang.StringIndexOutOfBoundsException: Range [40, 37) out of bounds for length 44
=true;
java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 37
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
whetherjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 48
:,)-ength([])
by right filter := IsPermGroupGeneralMappingByImages a
oo:=OrbitsDomainjava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 15
s:=G;
for i in oo return hom*DoFac (NiceObject(),hU,Image andjava.lang.StringIndexOutOfBoundsException: Range [38, 39) out of bounds for length 38
s:=StabilizerOfBlockNC(s,i[1]);
od;
InfoInfoFactor,2" [[IsGroup,java.lang.StringIndexOutOfBoundsException: Range [20, 17) out of bounds for length 21
if not (,->sSubsets,j)
wethiswayjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
ifSizee(FamilyObj( G ) ),
badnormals,y>java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 59
fi
java.lang.StringIndexOutOfBoundsException: Range [35, 32) out of bounds for length 48
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
m:=G; # guaranteed fail
fi
if ""java.lang.StringIndexOutOfBoundsException: Range [1, 0) out of bounds for length 0
=(Gs)
blocksdone:=false;
Info(InfoFactor#############################################################################
elif Size(m)>Size(N) = o:=OrbitsDomain( < java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
# no hard work for trivial cases
,k
# try to find a subgroup, which does not contain any part of m
#java.lang.StringIndexOutOfBoundsException: Range [20, 13) out of bounds for length 75
Gjava.lang.StringIndexOutOfBoundsException: Range [0, 48) out of bounds for length 45
(,FilteredGeneratorsOfGroupG- )java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
cnt:=1;
badcomb:=[];
repeat
java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
for comb in [.#
#rint(>c,njava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
notForAnybadcombj>j)then
:SubgroupNC(G
o:=ClosureGroup(N,u);
idx:# :(hom;
< Factorialjava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 59
badcombImmutable()Info(2"subgroup index ",(,u)
v:PreImage(u)
if idx<bestdeg and Size(G)>Size(o)
and not ForAny(java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 29
m:=(o)java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
if Size(m)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(InfoFactor,3" ,
if not m java.lang.StringIndexOutOfBoundsException: Range [10, 29) out of bounds for length 13
Addm;
fi;
fi
if idx, Addallb,;
(3," ,omb,")
java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 0
(>1then
fjava.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 36
0;
;
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
fi;# all good blocks
od,dub)
cnt=k=k)
SizeCjava.lang.StringIndexOutOfBoundsException: Range [39, 28) out of bounds for length 66
fi:=;
fjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
Info(,,Stabilizer
force
if ;
#######################################################################;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
GetNaturalHomomorphismsPool(G,N));
blocksdone:=java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 2
Info(InfoFactor,2,"[ and
fi;
=IndexNC)
B , arg
if GenericFindActionKernel(local G, N, knowi, goodi, simple, ,zen,cntjava.lang.StringIndexOutOfBoundsException: Range [5, 3) out of bounds for length 25
blocksdone:=true;
fi;
bestdeg(,java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
I"Random "bestdeg);
fi;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
cnt# perm groups or nice groups
actPermRepMaxDescN,)
=GRightCosets(,N,java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 70
if bestdeg<cnt then blocksdone:=falsereturn;
Info(InfoFactor, # special treatment for abelian factor(N then
fi;
if not blocksdone then
ImproveActionDegreeByBlocksG,GGGN)O"";
fi;
Info :andNrMovedPointsG>0000
return GetNaturalHomomorphismsPool(G,N) =java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 59
o;
fi;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
#############################################################################
##
#M FindActionKernel(<G>) . . . . . . . . . . . . . . . . . . . . generic
##
F,",java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 54
[sGroup java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 54
function(G,N)
local hom,hom2;
dotriv=java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
:G),Image(hom,);
hom2 then
return hom*hom2;
else
return hom extension
fi;
end);
java.lang.StringIndexOutOfBoundsException: Range [40, 10) out of bounds for length 40
#############################################################################
##
#M NaturalHomomorphismByNormalSubgroup( <G>, <N> ) . . mapping G ->> G/N
## this function returns an epimorphism from G
## with kernel N. The range of this mapping is a suitable (isomorphic)
## permutation group (with which we can compute much easier).
InstallMethod(NaturalHomomorphismByNormalSubgroupOp,
lObj,sGroup,,,
function(G,N)
local proj,h,pool;
# catch the trivial case N=G
G,N GN= then
h:=FACTGRP_TRIV; # a new group is created:Group(Concatenation),[([]])
( G, h GeneratorsOfGroup(G ,
List( GeneratorsOfGroup G ,i ( ); # a new group is created
SetKernelOfMultiplicativeGeneralMapping( h, G );
hjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
;
# catch trivial case N=1 (IsTrivial might not be set)
if (HasSize(N) and Size(N)=1) or (HasGeneratorsOfGroup(N) and
ForAll(GeneratorsOfGroup(N),IsOne)) then
return IdentityMapping(G);
fi;
pool:=NaturalHomomorphismsPool(G)
h:=PositionSet(pool.ker,N);
if h<>fail java.lang.StringIndexOutOfBoundsException: Range [0, 16) out of bounds for length 0
fi;
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 75
if # store known informationwe do't,just store the ubgroup)
h dotriv:=true
;
if HasDirectProductInfo(,);
for proj in [1..Length(DirectProductInfo(G) ;
=java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 47
h:=NaturalHomomorphismByNormalSubgroup
AddNaturalHomomorphismsPool(G,
if IsSubset(SolvableRadical(u),N) and Size(N)<Size(SolvableRadical(u)) then
od max=DoMaxesTF(u,"":c)
fi;
fi;
h:= in do
h>fail and RootInt(2)IndexNC(,N then
:GetNaturalHomomorphismsPoolN);
else
h:=fail;
fi;
if h=fail then
# now we try to find a suitable operation
# redispatch upon finiteness test, as following will fail in infinite case
HasIsFinite(G) and IsFinite(G) then
GN;
fi;
if = and zzzbadi then
if h<>fail then
Info(InfoFactor,1,"Action Info(nfoWarningInfoFactor,2,
Length(MovedPoints(Range(h)))," found");
else
Error("I totalcnt=0;
# nothing had been found, Desperately one could try again, but that=N;# all new
# would create a possible infinite loop.
h: ,N )java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
fi;
fi;
# return the map
h
end);
java.lang.StringIndexOutOfBoundsException: Range [64, 63) out of bounds for length 79
[IsGroup,IsGroup],[IsGroup and IsFinite,IsGroup],0);
patchOnCondition(,java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
[][ ,)
RedispatchOnCondition(FactorGroupNC,IsIdenticalObj,
IsGroup,[IsGroup ,0;
#############################################################################
##
#M NaturalHomomorphismByNormalSubgroup( <G>, <N> ) . . for solvable factors
##
NH_TRYPCGS_LIMIT:=if cheap<then
InstallMethodhom=java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 35
if java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 41
(InfoFactor,append )
function G N
local map, pcgs, A, filter;
if KnownNaturalHomomorphismsPool),x->Imageihomhom,)),
A=G)
if < or(A) AGN)IndexNC(,),2)^2
:java.lang.StringIndexOutOfBoundsException: Range [40, 38) out of bounds for length 44
if map<>java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 17
Info(InfoFactor,2,"use stored map");
return map;
fi;
fi
java.lang.StringIndexOutOfBoundsException: Range [0, 4) out of bounds for length 0
if IndexNC( :;
or Minimum:Stabilizerk,[]OnTuples);
TryNextMethod((s<(
fi
# Make a pcgs based on an elementary abelian series (good for ag={;
# routines).
pcgs :
ifjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
TryNextMethod();
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
# Construct or look up the pcp group <A>.
A:=CreateIsomorphicPcGroup
b:DoActionBlocksForKernel
# Construct the epimorphism from <G> onto <A>.
map := rec();
:*java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 60
IsToPcGroupGeneralMappingByImages java.lang.StringIndexOutOfBoundsException: Range [0, 49) out of bounds for length 47
IsGroupGeneralMappingByPcgs
IsMapping and IsSurjectiveGjava.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 67
HasSource and
return s
return IdentityMapping(G
map.sourcePcgs group hasno weprobablydonot
map# intermediately with it.
java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
NewType( GeneralMappingsFamily
ElementsFamily FamilyObj( ),
ElementsFamily( SetBaseOfGroup(H,BaseOfGroup(Gjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
Source,G,
Range,A,
ImagesSource,A,
KernelOfMultiplicativeGeneralMapping(H)
);
return improve
end );
#############################################################################
##
#F PullBackNaturalHomomorphismsPool( <hom> )
##
InfoFactor2, "NrMovedPointsH);
local s,r,nat,k;
b:H
r:=Range(hom);
java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 58 | |