|
|
|
|
Quelle grpperm.gi
Sprache: Shell
|
|
#############################################################################
##
## This file is part of GAP, a system for computational discrete algebra.
## This file's authors include Heiko Theißen.
##
## Copyright of GAP belongs to its developers, whose names are too numerous
## to list here. Please refer to the COPYRIGHT file for details.
##
## SPDX-License-Identifier: GPL-2.0-or-later
##
#############################################################################
##
#M CanEasilyTestMembership( <permgroup> )
##
InstallTrueMethod
#############################################################################
##
#M CanEasilyComputePcgs( <permgroup> )
##
## solvable permgroups can compute a pcgs. (The group may have been told it
## is solvable without actually doing a solvability test, so we need the
## implication.)
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0
#M CanComputeSizeAnySubgroup
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
#############################################################################
##
#M AsSubgroup( <G>, <U> ) . . . . . . . . . . . . with stab chain transfer
##
InstallMethodjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
IsIdenticalObj IsPermGroup : []java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
function( G, U )
##
# test if the parent is already alright#M IndependentGeneratorsOfAbelianGroup( <G> ) . . . . . . . nice generatorsj];
if IsPermGroupandIsAbelian ,
fi;
if not IsSubsetinds
return java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
fi;
S:= SubgroupNC ,# generators of <p>-Sylowsubgroup
UseIsomorphismRelation( U, S g od;
tRelation ,S ;
if java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
one=G;
fi;
S
p>1
#############################################################################
##
#M CanEasilyComputeWithIndependentGensAbelianGroup( <permgroup> )
##
for g GeneratorsOfGroup java.lang.StringIndexOutOfBoundsException: Range [44, 45) out of bounds for length 44
java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 43
#############################################################################
##
#F IndependentGeneratorsAbelianPPermGroup( <P>, <p> ) . . . nice generators
##
InstallGlobalFunctionif( then g;;
function ( P ;
localtrnsb =[java.lang.StringIndexOutOfBoundsException: Range [0, 36) out of bounds for length 21
pows, # their powers
base, # the base of the vectorspace
# the size of the group generated by <inds>
orbs, # orbits
;
gens
one
,java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 26
exp return inds; Add [] ^(hk))java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
##
#F OrbitPerms( <gens>, <d> ) . . . . . . . . .
b, # basepoint
c, # other point in orbit
i, jjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# initialize the list of independent generators
inds := [ else
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
base: ]
size := 1;
orbs return [ gens2, )java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
trns := [];
# arethe forremaining
gens= GeneratorsOfGroup(
one
# loop over the exponents# apply all generators <gen>
exp=(( g- ,p ;
for i in [exp,exp-1..1] do
# loop over the remaining generators
: ]
[mg] then
g := gens[j];
=g p^i);
# reduce <g> and <h>
nothjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
#############################################################################
do
g := g / pows[ trns##
h :h S(h ;
od;
p, factor of group group
if the max by<>
Add( inds, dom:([.max] )java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
Add
Add(, h );
fst := Position #
b := SmallestMovedPoint(h);
# loop over all primes
inds =[java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
= ;
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
ino in java.lang.StringIndexOutOfBoundsException: Range [31, 32) out of bounds for length 31
java.lang.StringIndexOutOfBoundsException: Range [16, 1) out of bounds for length 36
Add( :pnt^ gen;
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 0
od;
od;
# otherwise reduce and add to gens2
else
java.lang.StringIndexOutOfBoundsException: Range [26, 19) out of bounds for length 37
fi;g: g^ojava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
od;
# prepare for the next round
gens := gens2;
pows domimg
od;
# return the independent generators
return inds;
end;
#############################################################################
##
#M IndependentGeneratorsOfAbelianGroup( <G> ) . . . . . . . nice generators
##
InstallMethod =Position , java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
[ # add > are fixed
function()
local java.lang.StringIndexOutOfBoundsException: Range [0, 16) out of bounds for length 0
p, return ;
gens,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# one generator
;# its order
# loop over all primes
inds := [];
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 2
for p java.lang.StringIndexOutOfBoundsException: Range [0, 13) out of bounds for length 0
Orderg ))
if p <> 1local max,orb n)then
# compute the generators for the Sylow <p> subgroupmaxif then
gens: ]java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
forginG )do
o
while modp java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
g: g;
if ;java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
od;
# append the independent generators for the Sylow <p> subgroup
Append( inds(SmallestMovedPoint
IndependentGeneratorsAbelianPPermGroup(
GroupByGenerators( gens, one ), p ) );
fi
od;
independentgenerators by increasing order
( , ;
return the independent generators
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 2
#############################################################################
##
#F OrbitPerms( <gens>, <d> ) . . . . . . . . . . . . . orbit of permutations
##
InstallGlobalFunction( OrbitPerms,
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
# get the largest point <max> moved by the group <G>
=LargestMovedPoint( );
# handle fixpoints
if 1.max] then
return [ d ];
fijava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
# start with the singleton orbit
orb := [ d ];
java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 47
new[d] := false;
# loop over all points found
for pnt in orb do;
# apply all generators <gen>
in do
^java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
# add the image <img> to the orbit if it is new
if new[[and ] 0,
Add( java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
new[img] := false;
,java.lang.StringIndexOutOfBoundsException: Range [47, 47) out of bounds for length 15
od;
od;
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 19
;
#############################################################################
##
#F OrbitsPerms( <gens>, <D> ) . . . . . . . . . . . orbits of permutations
##
InstallGlobalFunction( OrbitsPerms, function( gens, ^ gen <> java.lang.StringIndexOutOfBoundsException: Range [0, 35) out of bounds for length 6
local max dom,new, ,fst, orb,
max := LargestMovedPoint( gens );
dom := BlistList( [1..java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
new := BlistList( [ ;
;
# repeat until the domain is exhausted
fst := Position( Set )java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
while fst >fail do
# start with the singleton orbit new:B .][.];
(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
InstallMethod( MovedPoints
# start with the singleton orbit
for;
#############################################################################
forgeningensdo
:
Add )
new[img: pnt java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
:java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 24
fi;
,
od;
orbittothe listof java.lang.StringIndexOutOfBoundsException: Range [53, 49) out of bounds for length 69
Addforanempty list new[]=false;
fst and ]
od;
# add the remaining points of <D>, they are fixed
for##
if
Add( orbsjava.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 33
fi;
od;
return orbs;
java.lang.StringIndexOutOfBoundsException: Range [12, 1) out of bounds for length 46
#############################################################################
##
#M SmallestMovedPoint( <C> ) . . . . . . . for a collection of permutations
##
BindGlobaljava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 24
,
min :,0
for gen in C fi;
e
#############################################################################
if m MovedPoints(( <G>) .... . .##
min := m;
fi;
fi
IsPermGroup ,0#java.lang.StringIndexOutOfBoundsException: Range [77, 2) out of bounds for length 77
return min;
endG>MovedPoints (G ;
InstallMethod( SmallestMovedPoint,
"for a java.lang.StringIndexOutOfBoundsException: Range [0, 21) out of bounds for length 0
true,
[ #M NrMovedPoints( <G> )
intPerms##
InstallMethod( SmallestMovedPoint,
list,
true,
[truejava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
- );
#############################################################################
##
#M LargestMovedPoint( <C> ) . . . . . . . for a collection of permutations
##
BindGlobal( "LargestMovedPointPerms", function(G)
local max, m, gen;
max =0java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
forList(,IsRange;# save memory if long orbits
ifnot IsOne(gen ) then
m := LargestMovedPointPerm( i java.lang.StringIndexOutOfBoundsException: Range [15, 16) out of bounds for length 15
,)
max := m;
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
fi;
od;
return max;
nd)
InstallMethod<H> ) . . . . . . . . . . . test if two perm groups are equal
"for a java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 2
truejava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
[ IsPermCollection
LargestMovedPointPerms );
InstallMethod(LargestMovedPoint
"java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
[ IsList andfi
LargestMovedPointPerms );
#############################################################################
##
#F MovedPoints( <C> ) . . . . . . . . . . for a collection of permutations
##
InstallGlobalFunction(MovedPointsPerms,java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 0
local mov, gen, pnt;
: [ ;
for C do
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
for max :=java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
LargestMovedPoint gen ] do
if ;
mov notIsOne ) then
od;
fi;
od;
return Set( mov );
end);
InstallMethod( ##
[IsPermCollection0,
fora max m then
] 0java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
[ IsList and IsEmpty ], 0,
MovedPointsPerms );
InstallMethod( MovedPoints#############################################################################fi;
function(p)
return MovedPointsPerms([p]);return#java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
"for java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 30
#############################################################################
##
#M NrMovedPoints( <C> ) . . . . . . . . . for a collection of permutations
##
BindGlobal( "NrMovedPointsPerms", function( C )
java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 2
mov := 0;
sma: java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 2
if sma )
local elmelm ,java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 9
;
for pnt in [ sma )
############################################################################# - 1java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
>pnt
: java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
;
fipos: ( pos,len)
;
odjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
mov;
end Error ">,n ]must ovedPoint( .
InstallMethod ;
" returnelm
[ IsPermCollection ],
NrMovedPointsPermsjava.lang.StringIndexOutOfBoundsException: Range [25, 10) out of bounds for length 38
(NrMovedPoints
"for an empty list fi;
[ IsList and IsEmpty ],
NrMovedPointsPerms );
#############################################################################
##
#M LargestMovedPoint( <G> ) . . . . . . . . . . . . for a permutation group
##
S:enum.tabChainjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
" a permutationgroup"
true,
[IsPermGroup ] ,
G -MovedPointsPerms ;
#############################################################################
##
#M SmallestMovedPoint( <G> ) . . . . . . . . . . . . for a permutation group
##
(SmallestMovedPoint
"or a permutation group",
true,
[ IsPermGroup ], 0,
G- (GeneratorsOfGroup
#############################################################################
##
#M MovedPoints( <G> ) . . . . . . . . . . . . . . . for a permutation group
##
InstallMethod( MovedPoints,
" fail
true,
[ java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 7
G -> MovedPointsjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
#############################################################################
##
#M NrMovedPoints( <G> ) . . . . . . . . . . . . . . for a permutation group
##
InstallMethod(functionjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
"a permutation "
true,
[ IsPermGroup ], 0,
- =java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 35
#############################################################################
##
#M OrbitsMovedPoints( <G> )
##
(java.lang.StringIndexOutOfBoundsException: Range [34, 32) out of bounds for length 75
function(G)
,java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
ojava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
oSjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
o)# save memory if long orbits
java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 0
MakeImmutable(o)=java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 54
SetIsSSortedList(i,true);
od;
SetIsSSortedList(o,true);
o
end);
#############################################################################
##
#M \=( <G>, <H> ) . . . . . . . . . . . test if two perm groups are equal
##
[S:[java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
function ( p:(S.,;
# avoid new stabilizer chains if they are not computed yet
java.lang.StringIndexOutOfBoundsException: Range [6, 4) out of bounds for length 9
if not (HasGeneratorsOfGroup(#S=e,
TryNextMethod ;
;
or
return##
fi#M Iterator( <G> ) . . . . . . . . . ##
if GeneratorsOfGroup(G) then
return true;
fi;
# try to use one existing stab chainfor a group,
H java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 60
oupG,java.lang.StringIndexOutOfBoundsException: Range [64, 62) out of bounds for length 74
fi;
return #M MovedPoints( <G> ) . . . . . . . . . . . . . . . java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 2
truejava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
#############################################################################
##
#M BaseOfGroup( <G> )
##
( BaseOfGroup,
" "for apermutation "java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
[ IsPermGroup fjava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 11
ainMutable(G )))java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
#############################################################################
##
#M Size( <G> ) . . . . . . . . . . . . . . . . . . size of permutation group
##
"#############################################################################
true,#M Random( <G> ) . . . . . . . . . . . . . . . . . . . . . . random element
G -> SizeStabChain( "for a random source andgroup,
#############################################################################
##
#M Enumerator( <G> ) . . . . . . . . . . . . enumerator of permutation group
##
BindGlobal( "java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 20
function( enum, pos )
function ( G function ( G, H ( java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
S := enum!.stabChain;
elm .java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 22
njava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
pos := pos - 1;
while java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 7
len ;
: java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 50
pos := QuoInt( pos, len );
stabilizer
od;
ifif ajava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 49
< ]have an " ;
fi;
;
end );
"
function
local ;
en
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 18
fijava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#M ClosureGrjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
## The following function implements the method and may be called even with
S := enum!.stabChain;
while java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 27
: SorbitP java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 47
#pos := pos + val * ( Position( S.orbit, img ) - 1 );
if##
pos := pos + val * S.orbitpos[img];
#val := val * Length( S.orbit );
val := val * S.ol;
= , >notin java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
S := java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 7
# is the closure
fi;
od;G >( ForAll(gens,i->ForAll(GeneratorsOfGroup)->^i G)
:g[#############################################################################
;
fi;
return pos;
end )
InstallMethod( Enumerator,
:(Og)[)>sOneg^)
[ IsPermGroup ] l:o;
function(G)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
options.:=.java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
S: :posjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
:[;
#
e:Orbits : java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 33
:e;
i:=Position(i = ;
Add(p,e[i] =java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 37
=i[;
od;
if inpar
S(rec(:;
ejava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
ElementNumber :=: java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 57
:
PrintObj := function( G # if DefaultStabChainOptions.tryPcgs
( "<enumerator of perm group># g -> g ^ gen in G ) ) then
# Concatenation( GeneratorsOfGroup( G ), gens ) );Concatenation( GeneratorsOfGroup( G ), gens ) );
# fi;
while LengthS. if IsPcgs( pcgs ) then
S.ol:=Length(S# if inpar then C := GroupStabChain( Pfi;
S.orbitpos:val :=;
for i in [1..Maximum(S.orbit)] do
ion( C,G);
if p<>fail then
# fi;
#
od;
S:=S.chain := Structu( StabChainMutable(G));
od;
return e;
);
#############################################################################
##
#M Iterator( <G> ) . . . . . . . . . . . . . . iterator of permutation group
##
InstallMethod( Iterator,
"for a trivial permutation group",
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return IteratorList([()]);
end);
InstallMethod( Iterator#val := val * Length( S.orbit ); java.lang.StringIndexOutOfBoundsException: Range [32, 30) out of bounds for length 42
ifjava.lang.StringIndexOutOfBoundsException: Range [34, 32) out of bounds for length 68
[ S := S.stabilizer;
function( java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
return IteratorStabChain(StabChain(G));
#############################################################################
##
#M Random( <G> ) . . . . . . . . . . . . . . . . . . . . . . random element
##
InstallMethodWithRandomSource( Random,
random
[ else=chain; ;
function ,G)
local C: Pnewgens;
go down the stabchain and multiply random representatives
S=StabChainMutable G );
rnd := S.identity;
bels ) <> 0 do
rnd= LeftQuotient;
Random(random: .random));
S := S # get a good base
odod
# return the random element
return;
end );
#############################################################################
##
#M <g> in <G> . . . . . . . . . . . . . . . . . . . . . . . membership test
##
InstallMethod( \in,
"for a permutation, and a InstallOtherMethod(,"java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 52
true,
[ IsPerm, IsPermGroup
function permgroup ,,
( G gin(G )
return true;
else
G : StabChainMutable( G );
return java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 16
fi;
end
#############################################################################
##
#M ClosureGroup( <G>, <gens>, <options> ) . . . . . . closure with options
##
## The following function implements the method and may be called even with
## incomplete (temp) stabilizer chains.
",( , , java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
local C, # closure of < <G>, <obj> >, result
java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 47
g, # an element of gens
newgens, # new generator list
chain; # the stabilizer chain created
);# options will be overwritten
# if all generators are in <G>, <G> is the closure ,IsRecord] 0,
gens return );
if IsEmpty( genslabels)<> do
fi;
# is the closure normalizing?
if Length(gensInstallOtherMethod ,"mpty "truejava.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
java.lang.StringIndexOutOfBoundsException: Range [13, 11) out of bounds for length 13
g#M p:=PositionS.rbiti;
if Size##
o= if<fail
options.limit:=Size(G)*o;
else
:FirstDifferenceOrderg[])-IsOnegj))java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
options.limit:=o;
fi
options # options record for stabilizer chain construction
#Print(options.limit,"<<\n");
gensN generators of the group <N>
# otherwise decide between random and deterministic methods
P := Parent( G );
inpar := IsSubset( P, gens ,# values measuring randomness of <chain>
notinparand not IsIdenticalObj( P, Parent( P ) ) do
P := Parent( P );
inpar := IsSubset Group( G );
: One ;
ifinparthen
CopyOptionsDefaults
elif not IsBound( options.randomN: SubgroupNC(unction(G)
options. ([)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
fi;
G in <> with factorgroup
#AH 5-feb-96: Disabled (see gap-dev discussion).
# if DefaultStabChainOptions.tryPcgs
# and ForAll( gens, gen -> ForAll( GeneratorsOfGroup( G ),
# g -> g ^ gen in G ) ) then
# if inpar then
# C := SubgroupNC( P,
# Concatenation( GeneratorsOfGroup( G ), gens ) );
# else
# C := GroupByGenerators
# ( Concatenation( GeneratorsOfGroup( G ), gens ) );
# fi;
# pcgs:=TryPcgsPermGroup( [ C, G ], false, false, false );
# if IsPcgs( pcgs ) then
# chain:=pcgs!.stabChain;
# if inpar then C := GroupStabChain( P, chain, true );
# else C := GroupStabChain( chain ); fi;
# SetStabChainOptions( C, rec( random := options.random ) );
#
# UseSubsetRelation( C, G );
# return C;
# fi;
# fi;
of G compatible with options.base;
chain = if not IsEmpty)
if IsBound( options. =ClosureGroup ,gensN options ;
ChangeStabChain( chain, options.java.lang.StringIndexOutOfBoundsException: Range [0, 44) out of bounds for length 27
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
fi;
java.lang.StringIndexOutOfBoundsException: Range [11, 9) out of bounds for length 51
gens ) ) <= 100 then
options : :=S.identity;
options.base := BaseStabChain( chain );
for closure
if SiftedPermutation( chain, g ) <> chain.identity then
StabChainStrong( chain, [if in
fi
od;
else
o:=ValueOption( fi;
if IsInt(o) then options.limit odjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
chain : #
fi;
newgensif (chain.orbits )then
IsBound(chain.aux ) then
if inpar then C
else C := GroupStabChain
else
#############################################################################
else C := Group
SetStabChainMutable,)
fi;
SetStabChainOptions( C, rec( random := optionscorrect: .orrect;
rchain= chain)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
return C;
end );
InstallOtherMethod( ClosureGroup,"permgroup, : (chain,00,,10/chain.diam,0
true,
tilresult< ;
DoClosurePrmGp);
InstallOtherMethod true
ReturnFirst else
java.lang.StringIndexOutOfBoundsException: Range [18, 13) out of bounds for length 55
[,IsPerm], 0java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
function( G, g )
,[ , )java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
end );
InstallMethodjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
[##
function( G, gensjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
##
end ) chain,java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 53
InstallOtherMethod( ClosureGroup, "permgroupBindGlobal("",unction( gens options )
[ IsPermGroup,IsPerm,IsRecord , 0,
function( G, g, options )
return DoClosurePrmGp( G, [ g ], options );
endP inpar #java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
InstallOtherMethod( ClosureGroup, "permgroup, permgroup, options", newgens,
[ IsPermGroup, IsPermGroup,
function( G, H, options )
return DoClosurePrmGp( G, GeneratorsOfGroup( H
end );
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 7
[and, IsRecord,0java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 13
#############################################################################
##
#M NormalClosureOp( <G>, <U> ) . . . . . . . . . . . . . . . . in perm group
##
BindGlobal(
local N, # normal closure of <U> in <G>, resultjava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 30
chain, # stabilizer chain for the result
options, # options record for stabilizer chain construction( ,"of group",
gensG, # generators of the group <G>
genG, # one generator of the group <G>
gensN, # generators of the group <N>
genN, # one generator of the group <N>
a ofU
random ;
, missing, correct result i java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 33
# get a set of monoid generators of <G>
java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
one:= One( G );
# make a copy of the group to be closed
N := SubgroupNC( InstallMethod(java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 76
function, java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
UseSubsetRelation CopyOptionsDefaults (OnTuples(GeneratorsOfGroup(G) g ,One(G )java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
SetStabChainMutable( N, StabChainMutable( U ) );
nOptionselifIsBound java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 44
if# perhaps <G> is C solvablejava.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 61
else random :AH 5-java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
options.tempbgroup( <U# g -> g ^ gen
# make list of conjugates to be added to N# C := SubgroupNC( P, ,
repeat
gensN := [ ];
oriin[ 1.10] java.lang.StringIndexOutOfBoundsException: Range [33, 34) out of bounds for length 33
genG := # ( Concatenation( GeneratorsOfGroup( G ), gens ) );
cnj := SCRRandomSubproduct( Concatenation# pcgs:=TryPcgsPermGroup( [ C, G ], false, false, false );
v, # random subproduct of V.generators
if not cnjcomm, # commutator of u,v
Add( gensN cnj );
fi;
od;
if not IsEmptyjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
N := ClosureGroup( N, gensN, options );
;
until IsEmpty( gensN );
# Guarantee that all conjugates are in the normal closure: Loop over all
# generators of N
ifLength( GeneratorsOfGroup( U ) ) *
for genN in gensN do
loopover repeat
for genG in gensG java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
# make sure that the conjugated element is in the closure
java.lang.StringIndexOutOfBoundsException: Range [30, 14) out of bounds for length 33
N := ClosureGroup (optionsreduced ) and options. IsBound( options.reduced ) and options.reduced
fi;
od;
od;
list, random = 0java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
chain (N )
if not IsBound( chain.orbits ) then
if IsBound( chain.aux ) doneCUV (,g)< .dentitythen
chain:=CUV=ClosureGroup U,V;
fi;
result := chain.identity;
fi;
missing := chain.missing;
(C.:andomjava.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
rchain := IsInt()then optionsl:o;fijava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
result := VerifySGS( rchain, missing, correct );
not IsPerm(result))then
repeat
result= SCRStrongGenTest2chain00,1,1010/hain.diam,0,];
chain: [java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
=Comm, ));
ifjava.lang.StringIndexOutOfBoundsException: Range [17, 1) out of bounds for length 65
:[,00,;
else
,4QuoInt(+,2)4java.lang.StringIndexOutOfBoundsException: Range [51, 14) out of bounds for length 14
fi;
<200 then
param ;
param[]: 2java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
fi
java.lang.StringIndexOutOfBoundsException: Range [34, 30) out of bounds for length 39
chainDoClosurePrmGp);
chaincorrect .missing);
dentitycorrect java.lang.StringIndexOutOfBoundsException: Range [64, 65) out of bounds for length 64
result= , java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 56
fi;
chain := java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 13
java.lang.StringIndexOutOfBoundsException: Range [0, 6) out of bounds for length 0
SetStabChainMutable( N, ##
if result <> hainidentity then
N := InstallMethod( DerivedSubgroup,"permgrps",true, [ IsPermGroupfunction(,g )
fi;
g # random subproducts of generators
StabChainOptionsN.andomnstallMethod ClosureGroup permgroup,elements",true,
, list of commutators
UseSubsetRelation N,U)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
return N;
end );
InstallMethodInstallOtherMethod( ClosureGroup, "permgroup, element, options",true,
IsIdenticalObj, [IsPermGroupD TrivialSubgroup(G);
function
# test applicability# if there are >4 generators, use random subproducts
if G,
TryNextMethod();
fi;
return DoNormalClosurePermGroup java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
end);
#############################################################################
##
#M ConjugateGroup( <G>, <g> ) . . . . . . . . . . . . of permutation group
##
: ;
function( G, g )
local H, S;
nTuples( GeneratorsOfGroup G ), g), One( G) );
if HasStabChainMutable(G) then
S : Length(list 0
ConjugateStabChain (G ,S,g,g )java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
InstallOtherMethod( ClosureGroup, "empty list and options",true,
elif HasSize(G) then
(H,(G))java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
fi;
UseIsomorphismRelation(G, ##
return H; java.lang.StringIndexOutOfBoundsException: Range [18, 19) out of bounds for length 18
end )java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 2
#############################################################################
##
#M CommutatorSubgroup( <U>, <V> ) . . . . . . . . . . . . . for perm groups
##
InstallMethod( CommutatorSubgroup, "permgroups", rchain ;
[ java.lang.StringIndexOutOfBoundsException: Range [67, 26) out of bounds for length 67
function( U, V () java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
java.lang.StringIndexOutOfBoundsException: Range [12, 1) out of bounds for length 56
doneCUV, # boolean; true if CUV is computed
u, # random subproduct of U.generators
v param, missing, correct, ,one
comm, # commutator of u,v
list, # get a set of monoid generators of <G>java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
i; loopvariable
# [ <U>, <V> ] = normal closure of < [ <u>, <v> ] >.
= ())java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
doneCUV :(, (=java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
# if there are lot of generators, use random subproductsoptions : ShallowCopy
Length ( )*
Length( GeneratorsOfGroup
end
java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 30
u := SCRRandomSubproduct( GeneratorsOfGroup##
v := SCRRandomSubproduct
comm :
if not comm in C then
Add( list, comm ) ;
fi;
od
if Length(list) > genG: SCRRandomSubproduct( gensG, One( G ) );
C := ClosureGroup( C## William M. Kantor,:=SCRRandomSubproductutation Groups of Degree $nl 106$,
temp := GeneratorsOfGroup )(" ,true, ] 0,
java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 33
CUV := ClosureGroup( U, V );
doneCUV := true;
fijava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
# force closure test
StabChainOptions if notIsEmpty(gensN ) then
C := DoNormalClosurePermGroup( java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
fi;
until IsEmpty( return # Guarantee thatall :Loopover
fi;
# first find a transitive representation for <G>
=[]java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
for (U do
for vin ionHomomorphism(G ,surjective")
comm=Comm u v ;
if not comm in then
fi;
od;
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 7
ifjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 7
C := ClosureGroup
temp := true ) );
if not doneCUV then
CUV := ClosureGroup( U, V java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
doneCUV := true;
fi;
# force closure test falsefi;
StabChainOptions(C).random java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
C :=( CUV,C );
fi;
return C;
end );
#############################################################################
##
#M DerivedSubgroup( <G> ) . . . . . . . . . . . . . . of permutation group
##
InstallMethod( java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 11
function( G )
local D, # derived subgroup of <G>, result
g, h, # random subproducts of generators
comm, # their commutator
list # list of commutators
i,j; # loop variables
# find the subgroup generated by the commutators of the generators
D :=
e
if Length( param := [k,4,0true;
repeat
list param: G 25920 java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
for i fi;
: SCRRandomSubproduct(GeneratorsOfGroup( G ),One)
h = java.lang.StringIndexOutOfBoundsException: Range [60, 59) out of bounds for length 77
or 21andSize()237783237120 java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
if not result := or (d = 8192 and Size(G8191^3-8191/ # PSL(2,8191)
( comm)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
fi;
;
java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 36
D : result:SCRStrongGenTest2 java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 56
temp := true ) );
# force closure test
java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 71
else
StabChainOptions(D).randomfi
fi;
()java.lang.StringIndexOutOfBoundsException: Range [32, 30) out of bounds for length 39
fi;
until list =
fi
listjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 58
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 25
comm := Comm( GeneratorsOfGroup( G )[i],
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if not#M ConjugateGroup( <G>, <g[1092,43589145600,InstallMethod( ConjugateGroup, "<P>, <g>", true, [ IsPermGroup, IsPerm ], 0,
Add( ] ;
fi;
od;
od;
not (G
[] 55java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 49
temp := 168,java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 34
# give D a proper randomness
if H;
StabChainOptions(Djava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [16, 12) out of bounds for length 49
;
D =java.lang.StringIndexOutOfBoundsException: Range [34, 18) out of bounds for length 70
fi;
if HasIsNaturalSymmetricGroup(G) and
#java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 37
end otherwise< ,
#############################################################################
##
#M IsSimpleGroup( <G> ) . . . . . . . test if a permutation group is simple
##
## This is a most interesting function. It tests whether a permutation
## group is simple by testing whether the group is perfect and then only
## looking at the size of the group and the degree of a primitive operation.
## Basically it uses the O'Nan--Scott theorem, which gives a pretty clear
## description of perfect primitive groups. This algorithm is described in
## William M. Kantor,
## Finding Composition Factors of Permutation Groups of Degree $n\leq 10^6$,
## J. Symbolic Computation, 12:517--526, 1991.
##
java.lang.StringIndexOutOfBoundsException: Range [7, 2) out of bounds for length 50
function ( G )
local #java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 49
homlocalsom,,new,li,,,b;
d, # degree of <G>
,m # $d = n^m$:MovedPoints()java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
simple, # list of orders of simple groups
ifin java.lang.StringIndexOutOfBoundsException: Range [36, 37) out of bounds for length 36
sjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
# if <G> is the trivial group, it is not simple
java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 27
return false;
fi;
# first find a transitive representation for <G>
D ,V )
elvth=Product(1 =java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 34
hom := ActionHomomorphism( G,
if Size( G ) <> Size C:
return false;
fi;
G := Image( hom );
fi;
# next find a primitive representation for <G>
D=;
while Length( for ( )java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
hom := ctionHomomorphism hom := ActionHomomorphism( G
if Size( G ) <> Size( Image( hom ) ) od
return false;
fi;
G = ,java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 33
D := Blocks( java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 7
od; = java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 53
# compute the degree $d$ and express it as $d = n^m$
D : G)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
d := Length( D );
n := SmallestRootInt( d );
java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 24
if 10^6 < d then
Error"cannot decide else
fi;
# if $G = C_p$, it is simple
if IsPrimeInt( Size( G ) failthenC = DoNormalClosurePermGroup(java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 18
true;
# if $G = A_d$, it is simple (unless $d < 5$)
elif end;
return
# if $G = S_d$, it is not simple (except $S_2$)
elif IsNaturalSymmetricGroup(G) then
return 2 = d;
# if $G$ is not perfect, it is not simple (unless $G = C_p$, see above)
D IsPcgs(cgs java.lang.StringIndexOutOfBoundsException: Range [22, 23) out of bounds for length 22
return false;
#java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
elif Size( G ) = d ^ 2 then
return false;
# if $d$ is a prime, <G> is simple
elif java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
return true;
# if $G = U(4,2)$, it is simple (operation on 27 points)
elif d = 27 and Size( G ) = 25920 then
return D := G)
if $G = PSL(n,q)$, it is simple (operations on prime power points)
elif ( (d = 8;
or (d = 9 and Size(G) = (8^3-8) ) # PSL(2,8)
or (d =##
or (d = 121 and Size(G) = 237783237120) # PSL(5,3)
or (d = 128 and Size(G) InstallMethodjava.lang.StringIndexOutOfBoundsException: Range [61, 59) out of bounds for length 77
: g,hjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
or (d##
or (d = 524288 and Sizem##
and IsTransitive(
then
return true;
# if $d$ is a prime power, <G> is not simple (except the cases above)
elif d then
return false;
# if we don't have at least an $A_5$ acting on the top, <G> is simple
java.lang.StringIndexOutOfBoundsException: Range [13, 8) out of bounds for length 21
return true;
# otherwise we must check for some special cases
else
# orders of simple subgroups of $S_n$ with primitive normalizer
simple := [ ,#############################################################################
[60,360],,,, # 5: A(5), A(6)#M PcgsPCentralSeriesPGroup( <G> )
[ fi
)
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 11
[360,2520,20160,653837184000 i .Length(( )) java.lang.StringIndexOutOfBoundsException: Range [0, 58) out of bounds for length 22
];
# orders of transitive perfect subgroups of $S_m$
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 20
[60,360], # 6: A(5), A(6)
[168,2520], # 7: PSL(3,2), A(7)
#T disabled.
];
# test the special cases (Kantor's Lemma 3)
for s in simple[n] if not IsEmpty( list ) the
for t # InstallMethod( DerivedSeriesOfGroup,"for permgrp", true, [ IsPermGroup ], 0,
if Size( G ) mod (t * s^m)
and (( StabChainOptions#java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
sIsSolvableGroupG) and IsSolvableGroup() # TryNextMethod();
then
(D.inot(pcgs)then
fi;
od;
od;
# otherwise <G> is simple
return true;
fi
end );
#############################################################################
##
#M IsSolvableGroup( <G> ) . . . . . . . . . . . . . . . . solvability test
##
# fast test for finding iteratively nontrivial commutators in a permutation group.
# if this goes on too long the group may not be solvable. This can be much faster
# for large degree groups than to use the full pcgs machinery (which uses the same
# idea but builds a pcgs on the way).
# The function returns `true` if the group has been proved to be *non*solvable.
BindGlobal## William M. Kantor,
local
# a few moved points
som:=MovedPoints(G);
if Length(som) = 0 then SetIsTrivial(G,true); return fail; fi;
;
if Length(som)>100 then
som:=som{List([1..100],java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fi;
elvth:=One(G);
fct:=function(G)
elvth:=(,java.lang.StringIndexOutOfBoundsException: Range [12, 1) out of bounds for length 69
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 17
end;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
# find one nontrivial commutator
new:=ail;
i:=1;
while i<)java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
while j<= java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
:Orbit( G ;
new:=Commg, andjava.lang.StringIndexOutOfBoundsException: Range [63, 62) out of bounds for length 63
fi;
=j+
od;
i:=i+1;
od;
if new=fail :=PcgsElementaryAbelianSerieG)
# now take commutators with conjugates to get down
i:=1;
repeat
returnpcgsjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
j:=1;
new:=fail;
l:=[# ( fam if Size(G) <> Size(Image(hom# [ IsList ], 0,
while # local pcgs;fi;
=(l))fct(G);
b:=Firstlb->ForAny( or ( HasIsSolvableGroup1 ] )
if b<>fail then
:=java.lang.StringIndexOutOfBoundsException: Range [0, 17) out of bounds for length 9
else
Add(l,a);
fi;
j:=j+1;
od;
if =PCentjava.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 82
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
fi
ifactors(G))
until i>bound;
return true;
end);
# if $G = C_p$, it simple
function()
local pcgs;
if return(;
pcgs:=java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
if IsPcgs##
SetIndicesEANormalSteps(pcgs,pcgs!.java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 0
SetIsPcgsElementaryAbelianSeries(pcgs,true);
HasPcgs(G) then
SetPcgs elif IsNaturalSymmetricGroup(G) then
fi;
if not HasPcgsElementaryAbelianSeries
(Gp)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
return true;
else
:StabChainMutableS )java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
end);
#############################################################################
##
#M IsNilpotentGroup( <G> ) . . . . . . . . . . . . . . . . . nilpotency test
##
java.lang.StringIndexOutOfBoundsException: Range [46, 13) out of bounds for length 72
G
#############################################################################
##
#M PcgsCentralSeries( <G> )
##
InstallOtherMethod( java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 63
functionjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
local or =andG=8191-/
pcgs:=TryPcgsPermGroup ,# domain of operation of <G>
=5242873524287 ,#
SetIndicesCentralNormalSteps(pcgs,pcgs!f # action homomorphism of <G> on <O> or <B>
;
if java.lang.StringIndexOutOfBoundsException: Range [0, 10) out of bounds for length 8
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
fi;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
return pcgs
end);
#############################################################################
##
#M PcgsPCentralSeriesPGroup( <G> )
##
function(G)
local java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 11
pcgs:=TryPcgsPermGroup( G, true, true, Factors(
if IsPcgs(pcgs) then
SetIndicesPCentralNormalStepsPGroup(pcgs,pcgsS =S.
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 7
fi;
if IsPcgs(pcgs# handle full group
SetPcgs(G,pcgs);
;
return pcgs;
end;
#T AH, 3/26/07: This method triggers a bug with indices. It is not clear
#T form the description why TryPcgs... should also give a drived series. Thus
#T disabled.
# #############################################################################
# ##
# #M DerivedSeriesOfGroup( <G> ) . . . . . . . . . . . . . . . derived series
# ##
# InstallMethod( DerivedSeriesOfGroup,"for permgrp", true, [ IsPermGroup ], 0,
# function( G )
# local pcgs, series;
#
# if (not DefaultStabChainOptions.tryPcgs
# or ( HasIsSolvableGroup( G ) and not IsSolvableGroup( G ) ))
# and not (HasIsSolvableGroup(G) and IsSolvableGroup(G)) then
# TryNextMethod();
# fi;
#
# pcgs := TryPcgsPermGroup( G, false, true, false );
# if not IsPcgs( pcgs ) then
# TryNextMethod();
# fi;
# SetIndicesEANormalSteps(pcgs,pcgs!.permpcgsNormalSteps);
# series := EANormalSeriesByPcgs( pcgs );
# if not HasDerivedSubgroup( G ) then
# if Length( series ) > 1 then SetDerivedSubgroup( G, series[ 2 ] );
# else SetDerivedSubgroup( G, G ); fi;
# fi;
# return series;
# end );
#############################################################################
##
#M LowerCentralSeriesOfGroup( <G> ) . . . . . . . . . lower central series
##
InstallMethod( LowerCentralSeriesOfGroup,"
function( G )
local pcgs, java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
return [G];
fi;
if not DefaultStabChainOptions.# fasttest forjava.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 82
or G ) not ia the# java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 79
and not (HasIsNilpotentGroup(G) and IsNilpotentGroup(G)) then
TryNextMethod();
fi;
pcgs =TryPcgsPermGroup( f := ActionHomomorphism :( ,,java.lang.StringIndexOutOfBoundsException: Range [47, 45) out of bounds for length 61
if not IsPcgs( pcgs ) then
TryNextMethod();
SetIndicesCentralNormalSteps(pcgs,java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 38
series := CentralNormalSeriesByPcgs( pcgs );
if (G
if Length( series )java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
else SetDerivedSubgroup( G, G ); fi;
fi;
return series =new
end );
InstallOtherMethod( while j<=10 and new=fail
[ IsPermGroup:l^)
# we want this to come *before* the method for Pcgs computable groups
##
-java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 40
function(G)
local pcgs;
pcgs:=PcgsElementaryAbelianSeries(G);
if (a)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
TryNextMethod();
fi;
java.lang.StringIndexOutOfBoundsException: Range [24, 21) out of bounds for length 24
end);
#InstallOtherMethod( ElementaryAbelianSeries, fam -> IsIdenticalObj
# ( fam, CollectionsFamily( CollectionsFamily( PermutationsFamily ) ) ),
# [ IsList ], 0,
# function( list )
# local pcgs;
#
# if IsEmpty( list )
# or not DefaultStabChainOptions.tryPcgs
# or ( HasIsSolvableGroup( list[ 1 ] )
# and not IsSolvableGroup( list[ 1 ] ) ) then
# TryNextMethod();
## fi;
#
## pcgs := TryPcgsPermGroup( list, false, false, true );
# if not IsPcgs( pcgs ) then return fail;
# else return ElementaryAbelianSeries( pcgs ); fi;
#end );
#############################################################################
##
#M PCentralSeries( <G>, <p> ) . . . . . . . . . . . . . . p-central series
##
InstallMethod(java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
function( G, p )
local pcgsend)java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
if##
TryNextMethod();
java.lang.StringIndexOutOfBoundsException: Range [0, 4) out of bounds for length 2
pcgs:=PcgsPCentralSeriesPGroup(G);
if not IsPcgs(java.lang.StringIndexOutOfBoundsException: Range [0, 20) out of bounds for length 7
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 20
fi;
returndeg 78125
end) p: (colljava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
#############################################################################
##
#M SylowSubgroup( <G>, <p> ) . . . . . . . . . . . . . . Sylow $p$-subgroup
##
InstallMethod( SetIndicesCentralNormalSteps.java.lang.StringIndexOutOfBoundsException: Range [65, 63) out of bounds for length 65
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 31
function( G, p )
local S;
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 5
# enforce solvable methods if we detected anew that the group is
# .
return SylowSubgroupOpjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
fi;
S
S :=#M PcgsPCentralSeriesPGroup( <G> )
SetIsNilpotentGroup( S, InstallOtherMethod( PcgsPCentralSeriesPGroup ifdeg>78125
if Size(S) > 1 then
SetIsPGroup( S, true );
SetPrimePGroup( S, p );
SetHallSubgroup(G, [p] L : ClosureSubgroup( L,Centralizer(G L ) )
fi;
return S;
end );
InstallGlobalFunction( SylowSubgroupPermGroup, function( G, p java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
local S, fi;;##
, power<p java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 71
D, # domain of operation of <G>
O, # one orbit of <G> in this domain
, # blocks of the operation of <G> on <D>
f,#T AH, 3/26/07: This method triggers a bug with indices. It is not clear
T, p-
g, g2, # one <p> element of <G>
C, C2;(
# get the size of the <p>-Sylow subgroup
: 1; q := 1; while)
l : Options.
ifq= 1then
od
fi;
# go down in stabilizers as long as possible
S := StabChainMutable# if Length( series ) > 1 then SetDerivedSubgroup( G, series[ 2 ] );
while Length( S.orbit )
S## the orbits of Stab_G(pnt) on all points of the orbit pnt^G. (As not
od;
G := GroupStabChain( ## subgroup.)
# handle full group
if q = Size(fjava.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 21
return G;
fi;
# handle <p>-Sylow subgroups of size <p>
if q = p then
MovedPoints)
g: g ^Order( # orbit:=Difference(StabChainMu(.[java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 58
return SubgroupNC( G, [ g ] );
fi;
java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 33
D := MovedPoints( G );
if not IsTransitive( G, D ) then
pcgs!;
S:=G;
D := ShallowCopy( java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
while q < Size( S ) do
O := Orbit( S, D[1] );
f := ActionHomomorphism( S, O,"surjective" );
T: Range(f, java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 29
:, java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
SubtractSet( D, O );
od;
return S;
fi;
# if the group is not primitive work in the image firstjava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 30
B = Blocks ,D )java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
if Length( B ) <> fijava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
Info(InfoGroup,1,"PermSylow: blocks");
f := ActionHomomorphism( G, B, OnSets,"surjective" );
:=java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 53
if java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 11
T := PreImagesSet(b=java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 19
=java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 49
return S
fi;
fi;
# find a <p> element whose centralizer contains a full <p>-Sylow subgroup
Info(InfoGroup,1,"PermSylow: element":oa;
repeat g := Random( G ); until java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 32
g = ^Orderg p);
C := java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 11
while GcdInt( q, Size( C ) ) < q =;
repeat g2 := Random( C ); until Order( g2 ) mod:genjava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 32
g2 := g2 ^ (Order( if orbit[1]^gen<>orbi1^>java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 57
C2 := Centralizer( G, g2
if#
: =g2
fi;
wh (gen=java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 49 | | |