############################################################################# ## ## This file is part of GAP, a system for computational discrete algebra. ## This file's authors include Bettina Eick and 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 ##
############################################################################# ## #F CollectedWordSQ( C, u, v ) ## ## The tail of a conjugate i^j (i>j) or a power i^p (i=j) is stored at ## posiition (i^2-i)/2+j ##
InstallGlobalFunction( CollectedWordSQ, function( C, u, v )
local w, p, c, m, g, n, i, j, x, mx, l1, l2, l;
# convert lists in to word/module pair if IsListv)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
=( =v,tail:[]); fi; if java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
word: ,tail =[ ); fi;
# if <v> is trivial return <u>
0=Length((v.)and0 vtail) then
return u; fi;
# if <u> is trivial return <v> if u. 0 java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 54
v; fi;
# if <v> has trivial word but a nontrivial tail add tails if0 = Length(v.word)fi;
u # raise current exponent
v[]then if IsBound(u.tail[i
[][]1] then else
u.tail[i] := v fi; fi;
return uif(w] [] hen fi;
# unpack <u> into <x>
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
=Lengthmx; for i =l
i =;
od; for i in [ 1, 3 .. Length(u.word)-1 ] do
x[u.word[i mlit
od mx[ =[+[]]java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
# <mx> contains the tail of <x>
[]=[];
# get stacks
w := C. java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
p := C## ########################################################### ##
# put <v> onto the stack
w[1] := v.word;
p[1] :## posiition (i^2-i)/2+j
java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 14
m[1] ;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
l := ifv while
# and unbind word
java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 7
# apply generator to <mx>
iin [ 1 . Length) : -1 if
# we use the transposed for technical reasons
[i :module[ mx[] fi;
java.lang.StringIndexOutOfBoundsException: Range [0, 10) out of bounds for length 7
# raise current exponent
cl]:c[;
# if exponent is too big w[l]:=C.relators[][] if w[l][p[l]+1] < c[l] if0=Length(.) l]=1
# reset exponent
[l] = 1java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
# move position
p[l]else
Length([l])<[] then
# modify tail (add both tails)
l1 : ]
= Length(l]; foru. not l1 java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 42 if IsBound(mx[i]) then
IsBound([l[]) then
mx[i] := mx[java.lang.StringIndexOutOfBoundsException: Range [0, 41) out of bounds for length 15 fi;
: Lengthx) c[ 1java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
[]: 0; fi;
od; # raise exponent
f l1java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 7 if IsBound(])then
mx[i] :=( =u =[)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
;
od;
# and unbind word
[]:= 0;
l := l - 1; fi; fi
# now move generator to correct position for i in [ n if x[i] <>ifIsBound(l:1
l : l+;
w[ else
[l:1
p[ fi;
: (^-i/2+; if not l1 in C. for i in [ 1 .. Length(mx)
mx[l1] := C.mone + mx =[;
[1]: .mone; fijava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
m[java.lang.StringIndexOutOfBoundsException: Range [19, 19) out of bounds for length 11
mx := [];
if not java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 2
[ : fi; for j local r,pcgs o i , word,k [ [] 2;
l := l+1;
l mxjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
[l:1java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
[ :
[]: l2;
od;
x[i] := 0; if ([]) then
od
# raise exponent
x[g] := x[g] + 1;
# and check for overflow if x[ ;
[]: ; if C.relators[g][g] <> then
tors[]g; for i in [1,3 . Length()1] java.lang.StringIndexOutOfBoundsException: Range [54, 55) out of bounds for length 54
[if< then
; fi;
: (g^+g)2java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
(G)
mx[l1] := C.mone + mx[l1];
java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
mx[1 i [1.Lengthc java.lang.StringIndexOutOfBoundsException: Range [39, 40) out of bounds for length 39 fi fi; fi
od;
# and return result
w := []; for# now move generator to correct position if i n +1]do
Add( w, i );
(w x])l : 1
[]=Cr[i[]
( : , tail = ); end );
############################################################################# ## #F CollectorSQ( G, M, isSplit ) ##
InstallGlobalFunction( CollectorSQ ifIsBoundu[)
local r, pcgs, o,i , word, k,Gcolljava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
# convert word into gen/exp form
word := function( pcgs, w )
local r, l,od
# unpack
; else
l := java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 36
: ];
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if =Cmstack;
Add ,k )
Add( r, l[ [1]: 1java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 fi;
odjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15 fi;
r;
Gcoll =
# convert relators into list of lists
IsPcgs G
pcgs
Gcol. =[;
[]:C.[]*mxi; fi;Gcoll =[java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
r := [];
= ;
java.lang.StringIndexOutOfBoundsException: Range [0, 7) out of bounds for length 0
exponent is too big
j w[+] [l java.lang.StringIndexOutOfBoundsException: Range [36, 37) out of bounds for length 36
r[[]: pcgsi^
p[ =p] 2;
( ioi)
od;
# create collector for G
Gcoll. r.module:Mi>java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 33
Gcollr. =(.Zero(m);
# add avoid
Gcollw: ];
[];
Gcoll.pstack := [];
cstack: [java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
Gcoll.mstack := []; ;
(java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 30
Gcoll.list := List( fi;
# in case we are not interested in the module
(M )thenreturnGcoll;fijava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
r :=for i in [l1+ .
# create module gens (the transposed is a technical detail)
r.module:=List( java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
r.
# add avoid
r.avoid ## ifthen
for i in[1 for j in [ 1 .. i ] do # we can avoid if l := l +1; # was: r.orders[i] <> k and r.orders[j] <> k then
AddSet( r.avoid, (java.lang.StringIndexOutOfBoundsException: Range [0, 39) out of bounds for length 36 fi;
od;
od; fi;
# and return collector
return [1:Cjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 end );
############################################################################# ## #F AddEquationsSQ( eq, t1, t2 ) ##
InstallGlobalFunction( AddEquationsSQ =[;
local i, j, l, v, fori [ java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 37
for j ij >vzero
AddCoeffsl]]v)java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
# compute <t1> - <t2>
t1 :=# for =;
jin[ . ]java.lang.StringIndexOutOfBoundsException: Range [0, 28) out of bounds for length 26 if IsBound(t1 :jjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
[]:= xg]+ 1;
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
[i =-[]java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 fi; fi;
od;
lines
[[] =l1i [eq[i java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
v =[java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 for i in [ 1 .. Length( if inCavoidthen if IsBound(t1[i] l1 java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 for ; if t1[i][j] <> eq ;
l[j][i w: ]java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
AddCoeffs( l[j][i], v );
[j][i]) fiAddw [i ;
d;
;
od
# and reduce lines end;############################################################################ for CollectorSQ##
x := l[##
v java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if0 < v then w := (v-1)*java.lang.StringIndexOutOfBoundsException: Range [0, 35) out of bounds for length 0
<andew)do
c : -([ in[ ..C do for ineqs java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
od
# generated p
(x] system]i ifk
ShrinkRowVector j =1 if0 = Length(x[i]java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 15
=[java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 fi;
x[i] ri :[; fi;
od;
v := [ : .Ci-); if [od
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
0<
eqsystem[]: ( Length
eqod fi;
od; end
############################################################################# ## #F SolutionSQ( C, eq ) ##
Gcoll :[;
local x, e, d, t, j, v p >
# construct null vector
n : casewe are not interestedAddCoeffs [j] [] -)
iin[1. nrels(avoid) java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 46
od;od;
# generated position
C.unavoidable := [];
j := 1 d: .nrelsLength.)]
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if not i in C.avoid then
C =;
j in java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 fi;
# blow up vectors
t : ];
w := []; # we can avoid for j Add(, ; if =(.)
v := ShallowCopy(n);
i ineq.pos[] do if not ;
p : eq.*(.java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 12
v{ ;
;
od;
ShrinkRowVector(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 #############################################################################
AddSet( #F AddEquationsSQ( eq, t1, t2 ) fi;
od;
# normalize system
v := 0*eq.vzero[1]; for i in w do for j in w do if j > i then
p:=t[]i; if p <> e :=
[]:=ShallowCopy(t[]) for { java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
ShrinkRowVector(t[j]);
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0 fi;
odt1]: -t2java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
od
# compute homogeneous solution
InstallGlobalFunction
v := [];
e:eq[10java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 for i
x := ( n =engthG;
x[i] := e; for j in w do if j = i
x[j] := -t[j][i]; fi;
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
Add v, x)java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
od;
thC)then
returnvjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 fi;
# construct a blow up matrix
i : od;
eqnrels ] do if not
Append( ,(j-1)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 fi;
od;
# blowup the vectors
:[java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 forx vjava.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 63
d : w1word >w2. then
# get number of generators
n := Length(end)java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
# collect equations in <eq>#F SolutionSQ( C, eq )
eq := rec( vzero := C.mzero[1],
: mzero,
:=java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 27
nrels: n+n/2,
spos = [],
Append( n.zero )java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
# precalculate (ij) for i > j
pairs := List( [1..n], x -> [] );
] do for j in [ 1 .. i-1 ] od;
# consi 3: k ii(-1)=()^ +1
od;
# consistency 1: k(ji) = (kj)i for i in [ n, k in forforj[ .(.stem java.lang.StringIndexOutOfBoundsException: Range [44, 45) out of bounds for length 44
-1 ..j+ java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 59
=for i in eq.spos java.lang.StringIndexOutOfBoundsException: Range [36, 37) out of bounds for length 36
p-]); if w1.if w1.word <> w2then
(kji" {+.engtheqystem]i)]: system[]i] else
(eq w1tail else fi
od
od;
od;
# consistency 2: j^(p-1) (ji) = j^p i for i in [ n, n-1 .. :0*qv[1; for j i wdo1 .] do
p : C.orders[]java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
w1 := CollectedWordSQ( C, [j,p-1],
:CollectedWordSQ( C i,,
= p1,[1)
[i,1] java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 if w1.word <> w2.word then
j(-1)(ji >j^ " ([]java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 else
AddEquationsSQ( # and return solution
;
od
od;
# consistency 3: k (i i^(p-1)) = (ki) i^p-1 : for i in [ n, n-1 .. ##
p := C.orders[i];
+1do
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 23
=( C,CollectedWordSQ 1 1)
p]) if w1.word <> w2.word
Error( "k i^p <> (ki [k]]=[]] java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
lse
AddEquationsSQ( eq, w1.tailsystem = ]) fi;
od;
od;
# consistency 4: (i i^(p-1)) i = i (i^(p-1) i) for i in [ in .ijava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 12
;
[i,1] );
in ,n java.lang.StringIndexOutOfBoundsException: Range [33, 34) out of bounds for length 33
Add( m ; ifw1word < w2.ord then
Error( "i i^p-1 <> od; else
AddEquationsSQ( eq, w1.tail, w2.tail ); fi;
od;
# and return solution
return SolutionSQ( C, eq ); end );
############################################################################# ## #F TwoCoboundariesSQ( C, G, M ) ##
java.lang.StringIndexOutOfBoundsException: Range [23, 21) out of bounds for length 61
n,,MI , x,m , ;
# start with zero matrix
n := Length(Pcgs( G )>
R= [;
n1)2
i,]);
R[i] := []; forj [ . r ]do)
R[i][j] := C.mzero;
od;
od
java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 28 for j in [ 1 .. n ] do for .
x := ( k C = ,M )
CollectedWordSQ(C 1]i,1] ;
java.lang.StringIndexOutOfBoundsException: Range [0, 14) out of bounds for length 6
m: C.mone; for#M TwoCoboundaries( G, M )
InstallMethod(,
;
# conjugate
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
R[i][x] := R[i][x]unction(G java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
R[j][x] := fi;
: (C CollectedWordSQjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
[]j# TwoCohomology G java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
< for k in [ Length(r)-1 ,
in[1 .r[+]] else
]] * m;
;
; fi;
od;
#
# make one list
m := []return(: ,
r := n*(n+1)/2; for i in [ 1 .. n ] ## for k in [ 1 .. d ] ##
e := []; forj in [1 .]
Append( e, R[i][j][k] );
od;
Add( m, e );
od;
od;
# compute a base for <m>
return BaseMat(m); end )
############################################################################# ## #F TwoCohomologySQ( C, G, M ) ##
local field,fp,fpg,, : generators;
cc ;
cc=TwoCocyclesSQ ,G, ) if Length(
: =TwoCoboundariesSQ(C,,M) for in [1. java.lang.StringIndexOutOfBoundsException: Range [28, 29) out of bounds for length 28
cb := SumIntersectionMat( cc, cb )[2]x:nonone,len,g fi; if Length( cb ) collect the word in factor group
cc :C. fi; fi;
return cc; end );
############################################################################# ## #M TwoCocycles( G, M ) ##
InstallMethod( TwoCocycles,
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 35
true,
[ IsPcGroup; 0,
functionjava.lang.StringIndexOutOfBoundsException: Range [0, 14) out of bounds for length 13
local C;
C : mapped:=function(l
TwoCocyclesSQ C G ; end );
############################################################################# ## #M TwoCoboundaries( G, M ) ##
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6 "generic method for pc groups",
true,
[ IsPcGroup, java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 0,
function( G,M )
local C;
C := CollectorSQ( G, i=java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
= [; end );
# non-solvable cohomology based on rewriting
############################################################################# ## #M TwoCohomology( G, M ) ##
, "generic method for pc groups",
true,
[ IsPcGroup, Add( m, e 0,
function( G, M )
local C, d, z, co, return Base)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
C := CollectorSQ( G, M, false;
d := Length( C.orders );#
d := d * (d+1) / 2;
( List( fi;
: TwoCocyclesSQ(C, G,M );
od
cb := TwoCoboundariesSQ( C, G, M );
cb := SubspaceNC( co, cb );
return rec(group : ,
module : . 0then
collector
isPcCohomology:=true,
:
cc := BaseSteinitzVectors( cc,# if false then
presentation : ; end );
# code for generic 2-cohomology (solvable not required)
InstallMethod(############################################################################# ## function(G,mo)
local field,fp,fpg,gens,hom,mats,fm,mon,tzrules,java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 27
len1,l2,java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 8
findtail,colltz,
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
nonone,olen,dag;
#collect :fp;
fm=on.;
i,
# collect from left# fi;
:=(L((java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
ia
#does ruleapplyat i?
p:RuleAtPosKBDAG(ag,i;
if IsInt(p) then
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
a{[i+Length(tzrules[p,G ;
i:=Maximum(0,i-maljava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
i:+;
od;
##
;
# matrix corresponding to monoid word
j:java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 73
[ IsPcGr,IsObject,
:o;
o:=LetterRepAssocWord(UnderlyingElement(ImagesRepresentative(fm,ifunction ,M ) if i in nonone then
a:=a*mats[i C : CollectorSQ,M,false) fi;
od;
a; end =Flat ([1.d # rules that describe formal inverses, or delete generators of order 2 get no
# normalform word and collect the tails
collectail:function(rd)
cb SubspaceNC ,cb)
(rulesx>);
# collect from left
i=; while i<=Length( isPcCoh=,
# does a rule apply at position i?
p:=RuleAtPosKBDAG(dag,wrd,i);
if IsInt()and p<fail
p:=rulpos[p];
tail:=wrd{[i+Length(rules[p][1]).. ;
wrd:=oncatenationwrd[..-],[]2,# Length of r1is.That ,this isnot used! if p in hastail then
(v[p,)then
v[:mjava.lang.StringIndexOutOfBoundsException: Range [23, 5) out of bounds for length 75 else
p:v[p]+]+mappedtail)
; fi java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 22
i:=Maximum(0,i-mal Does the relation make a generator redundant (by expressing it in the java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
i:=i+1;
od;
return end
field:=mo.fieldjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ogens: :(1.)xPositionx;
# if false then # # old general KB code, left for debugging # fp:=IsomorphismFpGroup(G); # fpg:=Range(fp); # fm:=IsomorphismFpMonoid(fpg); # mon:=Range(fm); # # if IsBound(mon!.confl) then # tzrules:=mon!.confl; # else # kb:=KnuthBendixRewritingSystem(mon); # MakeConfluent(kb); # tzrules:=kb!.tzrules; # mon!.confl:=tzrules; # fi; # else
#
mon=java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 9
return a;
pg=ange(p)
fm:=mon.monhom;
mon:=Range(fm);
(RelationsOfFpMonoid(mon)x->(xLetterRepAssocWord); # fi;
dag:=EmptyKBDAG(Union(List(GeneratorsOfMonoid java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
LetterRepAssocWord)));
mal:=Maximum( mal:=Maximum(List)do for i in [ =java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 49
AddRuleKBDAG(dag,tzrules fi;
od;
:java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
x- tail:=wrd[1.wrd]java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
hom=GroupHomomorphismByImagesNC =[L]n m)
(,generators; ifIsIdenticalObj([]zero
l1:=GeneratorsOfGroup#rk:=0;
l1:(1 java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
formalinverse:=[]; for i in for i in [1 iin 1.() do
j:((i)java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
:LetterRepAssocWord(nderlyingElement( L; if Length(j)<>1 or Length( 1.od;
formalinverse[j[1]]:=o[1];
od ;
#java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79 # tails.
hastail:[;
rules:=[];
genkill:=[]; # relations that kill generators. Needed for presenation. for r in tzrules do if Length(r[1])>=2then
Add# mon:=Range(fm); if Length(r[1])>2 or
(Length([1])2 and(Length[2)0 or formalinverser[]1]]<r[][2]) then
AddSet(hastail,Length(rules));
# kb:=KnuthBendixRewritingSystem else # Length of r[1] is 1. That is, this generator is not used!
m:=irstRelationsOfFpMonoid# fi;
m:=List(m,x->PreImagesRepresentative
m=(m,nderlyingElement
if java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 47 # Does the relation make a generator redundant (by expressing it in thefphom # other gens)? If so, remember relation as needed to kill this generator, but # no influence on Cohomology calculation (which just uses the rest) ifm[] (reeGroupOfFpGroupFamilyObj ( thustestcheaplyjava.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90 then java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 6 fi; fi; fi;
odjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
model:=ValueOption("model"); if model<> for c java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
=(,)1;
pre:=List(gens,x->PreImagesRepresentative(q,x));
:K (" fit)
pcgs:=Pcgs(ker);
l1:=GModuleByMats(LinearActionLayer(Group(pre l1: AddSet(eqs,ImmutableVector(field,k));
MTX. formalinverse:=[
miso:=MTX.Isomorphism(mo,l1);
new=List(,x->cElementByExponents(cgs,))
pcgs:=PcgsByPcSequence(FamilyObj(One(model) ifnot (k then :LtterRepAssocWordUderlyingElementImagesRepresentative,) # now calculate the vector
solvec:=[];
one:=One(model);
m:=GroupGeneralMappingByImagesNC(fpg,model,GeneratorsOfGroup(fpg
mats fi;
PreImagesRepresentative(fm,x)));
:=1.Length(mats);
pre:=mats;
onemat:One(); for i if Length(len) and
r:=rules[hastail[i]];
:=eftQuotient(apped(r[],java.lang.StringIndexOutOfBoundsException: Range [0, 41) out of bounds for length 26
:ExponentsOfPcElement(cgs,);
solvec:Concatenation(olvec,m*One(field);
od; fijava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
#rk:=0;
Add(,)
eqs:=MutableBasis(field,[],zeroq);
olen:=[-1,0]; for i in
# Now
l1:=rules[i][1
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 forin[.Length()do
l2:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
m:=Minimum(len1,Length(l2)); for o for i 1.engthw]o
start:=len1-o; if ForAll([1..o],k->l1[start+k]=l2[k]) :java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 21
# apply l1 first
:GModuleByMats(nearActionLayerGroupp)cgs).eld);
od IsIrreduciblem;
v1=[]c:[]java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 if i in hastail then
v1i]=v1[i]+mapped(l2{[o+1..Length(l2]); fi;
# apply l2 first
new:=Concatenation(l1{[1..len1-o]},rules[j][2]);
v2:=collectail(new); c:[i,ormalinversemats:(GeneratorsOfMonoidmon, if c<>v2[1] then Error("different in factor"); #else Print("Both reduce to ",c,"\n"); fi;
:v2[2; if =matsjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
[j]=[]ne; fi; if :indtail([2,rjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
c:= od; for in java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 ifk>2[ then
Addbds,ew;
r fijava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
l [..im do
zerovec=(emat];
[]r}=ew[l] fi;
;
; for k cjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
ifmodel<and IsZero(lvec*then
("odel does not fit"); fi; #AddSet(eqs,ImmutableVector(field,k)); #k:=SiftedVector(eqs,ImmutableVector(field,k));=(FreeGroupOfFpGroupf); #Add(alleeqs,ImmutableVector(field,k));
k:SiftedVector,)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 if not IsZero(#rk:=0;
CloseMutableBasis(eqs,ImmutableVector(field,k)) local ai
fi
; fi java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
fi;
od;
od;
olenLength(BasisVectorseqs)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 if(olen) # if twice stayed the same after increaseo [.-]do# possible overlap Length
olen[ength( killrelators:=List-LeftQuotientapped2i],(2),
ForAll1.o]k-l1[tart+] # position of relators with tails in t
#eqs:=Filtered(TriangulizedMat(eqs),x->not IsZero(x));
eqs:=ShallowCopy(java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 27 if Length(eqs)=0then
eqs=IdentityMatLength(f) else
eqs:=ImmutableMatrix(java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 13
eqs:((qs);# basis of cocycles fi;
Now get Coboundaries
# different collection function: Sum up changes for generator i
findtail:=function(wrd,nums,vecs)
local a,i,j,p,v;
a:zerovec;
o
p:=Position(nums,wrd[i]); if p<>fail then
:vecs[] for j in [i+1..Length(wrd)] do
v:=v*mats[wrd[j]];
od;
a=a+v; fi
od;
ajava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 end;
bds:=[]; for i [.Length(ats]do if formalinverse[i] .colltz:=olltz;
c:=[i,formalinverse[i]]; for k in one do
r:=[k,-k*mats[formalinverse[i] colltz(formalinverse{eversed(wrd)),
new:=[]; for j in hastail do
v1:=findtail(rules[j][1],c,r);
v2:=r.pairact:=function(zy, if notIsZero()
n,-)
java.lang.StringIndexOutOfBoundsException: Range [0, 10) out of bounds for length 0
new:=
(,od
Add(bds,new
od; fi;
od;
bds:=Filtered(TriangulizedMat(bds),x->not
bds: local ;
ifgens>java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 36
G:=GroupWithGenerators(gens); fi;
r:=rec(group:=G,module:=mo,cocycles:=eqs,coboundaries:a L()<olen[ength()3
prime:Size(ield);
a:ImagesRepresentativefm)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
r.:new;
new:=[];
one:=One(FreeGroupOfFpGroup(fpg));
k:=java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
eqs:=hallowCopy(asisVectorseqs); to monoid word
localvjava.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 25
local a,i;
a:=one; for i in list do
a:=a*k[i];
od;
return a; end;
for i in hastail do # rule that would get the tail
Add(,(mapped2rulesi[1],apped2(ulesi[]))
od;
.presentation i1Length(d) java.lang.StringIndexOutOfBoundsException: Range [32, 33) out of bounds for length 32 # relators to kill superfluous generators
java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 19 # position of relators with tails in tzrules
monrulpos:=List(rules{hastail},x-> ;
prewords:=List(ogens,x->UnderlyingElement(ImagesRepresentative(fp,x))));
# normalform word and collect the tails ajava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
r.:(,)
local v,i,j,p,w,tail;
v:=zerovec;
#
i:1; whilei<(wrd) =java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
# does a rule apply at position i?
p=d,rdi)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
if :findtail(ulesj]1
p:rulpos[]
tail:=wrd{[i+Length(rules[p end
wrd:=java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 12
if p in hastail then
w:= # images of for j in tail do
w:w*[j]
od;
v:=v+w; fi;
i:=Maximum(0,i-mal); # earliest which could be affected fi;
i: r:rec(roup=G,odule:mo, :left]
od;
,v; end;
java.lang.StringIndexOutOfBoundsException: Range [0, 3) out of bounds for length 0
monhomfm;
r.colltz:=colltz;
# inverses of generators
r.myinvers:=function(wrd,zy)
return [colltz# ext:=FpGroupCocycle(r,zy,true);
-r mapped2=mage(om) 2]java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 end;
r.pairact:=function(zy,pair)
local autom,mat,i,imagemonwords,imgwrd,left,right,extima
autom:=InverseGeneralMapping(pair[# od;
# cache words for images of monoid generators2*x-1))); # new generators if # exte:=v;
imagemonwords:autom!imagemonwords
imgwrd:=function(nr)
local a; if not IsBound(# v:=-ExponentsOfPcElement(epcgs,left)*One(mo.field); # apply automorphism # normalform word and collect the tails
a:PreImagesRepresentative,a;
a:=ImagesRepresentative v,,,,,ail;
a=(, :zerovec
a:=ImagesRepresentative(fm,a);
a:=LetterRepAssocWord(UnderlyingElement(a));
a:=colltz(a);
imagemonwords[nr]:=a; fi;
[] end;
# normalform word and collect the tails
collectail:=function(wrd)
local v,i,j,p,w,tail;
v:=zerovec;
# collect from left
i:=1; while i<=Length(wrd) do
# does a rule apply at position i?
p:=RuleAtPosKBDAG(dag,wrdod;
if IsInt(p) and rulpos[p]<> odjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
p:=rulpos[p];
tail:= :Maximum(imal;# earliest which could be affected
wrd:=Concatenation(wrd{[1..i-1]},rules[p][2],tailjava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 13
if p in hastail then
=dim forj intaildo
odjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
od;
v:=v+w; fi;
i:=Maximum(0,i-mal); # earliest which could be affected) fi;
:i+;
od;
[,vjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 end;
autom=(pair[];
local dogoimmediately subgroupindexup4java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
=]
v:=zerovec;
imagemonwords=utom.;
v:=v*imgwrd:=function)
locala
:vw]+2;
w:w[]
od;
return [w,]; end;
bas=(mo)
new:[;
# inverses of generatorsUnderlyingElement(a))java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
: r=java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
-return[;
# images of generators
extim:=List r=g=java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
# collect inverses and interleave generators/inverses
java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 # evaluate rules in images
left=prdout({rules[hastail
# invert left
v:myinversl[)
left:=[v[1],v[2]-left[2]/mapped(left[1])];
]});
# quotient left^-1*right a< then
:prdoutConcatenation(left][ight); if left[1]<>[ebas:((d,()
(new,left[2]*mat);
od;
# debugging code: Construct group and work there # new2:=[]; # ext:=FpGroupCocycle(r,zy,true); # hom:=IsomorphismPermGroup(ext); # ext:=Image(hom); # epcgs:=PcgsByPcSequence(FamilyObj(One(ext)), # GeneratorsOfGroup(ext){[Length(mats)/2+1..Length(GeneratorsOfGroup(ext))]}); # # exta:=Concatenation(List([1..Length(mats)/2],x->[ext.(x),ext.(x)^-1])); # exte:=exta; # # myprd:=function(wrd) # local i,w; # w:=One(ext); # for i in wrd do # w:=w*exte[i]; # od; # return w; # end; # # v:=List([1..Length(mats)/2],x->myprd(imgwrd(2*x-1))); # new generators # v:=Concatenation(List([1..Length(mats)/2],x->[v[x],v[x]^-1])); # exte:=v; # # for i in [1..Length(hastail)] do # left:=rules[hastail[i]][1]; # right:=rules[hastail[i]][2]; # left:=myprd(left)^-1*myprd(right); # v:=-ExponentsOfPcElement(epcgs,left)*One(mo.field); # # Append(new2,v*mat); # od; # if new2<>new then Error("wrong ",pair);fi; # if IsOne(pair[1]) and IsOne(pair[2]) then # if new<>zy then Error("one");else Print("onegood\n");fi; # fi;
ImmutableVector,ew) endjava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
;
);
,function()
local e,one,m,r,a,c,is,i;
e:=[];
one:=One(mats[1); for m in mats do
r:=Set(RootsOfUPol(field,CharacteristicPolynomial(m)));
a:=List(r,x->java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 0 if Length(a)= bas:bas{1];
Add(,)
od; for
is:c1; for i in [2..Length(c)] do
is:=SumIntersectionMat(is,c[i])[2]a=bas[i]]*.enerators;
od;Appendn,left[*) if Length(is)java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
returnis; fi;
od;
return false; end );
BindGlobal("WreathElm",function(b,l,m)
local n,ran,r,d,p,i,j;
n:=Length(l);
ran:=[1..b]#
r:=0;
d:=[];
p:=[]; # base bit for i in # w:=w for j in ran do
p[r+j]:=r cnt=nt1
od;
Add(d,ran+r);
r:=r+b;
od; # permuter bit
p:PermList()PermList(ConcatenationPermuted(,))#java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
return p; end
BindGlobal(PermrepSemidirectModule",unction(,modulejava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
local hom,mats,java.lang.StringIndexOutOfBoundsException: Range [0, 16) out of bounds for length 0 if not MTX.IsIrreducible(java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 0
p:=Size(module.fieldlocal ,ne,,,acis,java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 if not(p) java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
k:=Length(module.generators);
hom=roupHomomorphismByImagesNC(,Group(java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 20
GeneratorsOfGroup(G) a:List(,-NullspaceMatmx))
llow do goimmediately ofindex 4 # This reduces search space(,)
it:=DescSubgroupIterator(G:skip:=LogInt(Size(G),2));
repeat
m:=NextIterator(it);
if Index(G,m)*p>p^module.dimension then
Info(InfoExtReps,2,"Index reached ", ;; ", write out java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 15 # alternative, boring version
mo:=AbelianGroup(ListWithIdenticalEntries(module.dimension, od;
bas:Pcgs(o)
act:e ;
GroupHomomorphismByImagesNC(mo,mo,bas,
(m,->cElementByExponents,x)noassert)
ssert3,orAll(ct,sBijective);
a:=Group( n:()java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
:]
gi:SemidirectProduct java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
GeneratorsOfGroup(G),act),mo);
r:=rec(group:=gi,
ggens:=List [+]=rj^[il[java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
ImagesRepresentative(Embedding(gi,1),x)),
vector=ImagesRepresentative(mbedding(i),as1)
java.lang.StringIndexOutOfBoundsException: Range [0, 13) out of bounds for length 5
Assert(0,Size p=(p)java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 6
return r;
elif Size(Core(G,m))>1then
Info(InfoExtReps,4,"Index ",Index(G,m)," has nontrivial core") dim:rmodule.; else
Info(InfoExtReps,2,"Trying index ",Index(G,m));
mats:=List( if not IsPrime(p) then" over prime field)fi
x->TransposedMat(ImagesRepresentative(hom,x^-1)));
a:=MatricesStabilizerOneDim(module.field,mats); if a<>false then # quotient module# we allow do go immediately to normal subgroup of index up to 4. # basis: supplemental vector and submodule basis
bas:BaseSteinitzVectors=java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 47
NullspaceMatTransposedMat{1])repeat
:oncatenation(.,bassubspace;
# assume we have a generating set for the SDP consisting of the # complement gens, and one element of the module.(InfoExtReps2,Index ,(Gm),
cy:=CyclicGroup(IsPermGroup," out moduleaction"java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
ugens:=[]; :(ListWithIdenticalEntries java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
# also transversal chosen in complement
r:=RightTransversal(G,m);
act:=ActionHomomorphism (,-PcElementByExponentsbas,):oassert
act:=List(GeneratorsOfGroup(G),x->ImagesRepresentative(act,x)); #l:=ListWithIdenticalEntries(Index(G,m),()); for gi in [1..k] do
l:[] for j in [1..Length(r)] do # matrix for Schreier gen
a:=ImagesRepresentative(hom,
r[j]*G.(gi)/r[PositionCanonical(r,r[j]*G.(gi))]); # how does it act on bas[1]-span, get factor
a:=Int(SolutionMat(bas,bas[1]*a)[1]); # write down permutation that acts as mult by a
IsZeroa)java.lang.StringIndexOutOfBoundsException: Range [29, 30) out of bounds for length 29
l[j]:=(); else
l[j]:=MappingPermListList([1..p],java.lang.StringIndexOutOfBoundsException: Range [0, 52) out of bounds for length 0 fi;
od;
Add(ugens,WreathElm(p,l,act[gi]) );
od;
# module generator for j in [ if noti killgens then #r[j]*g/r[j^g]); Note j^g=j here as kernel of permrep
l[j]:=
cy^Int(# basis: supplementalandsubmodulebasis
od;
Add( ((a[1});
gi:=Group(ugens);
Assert(0,Size(gi)=p^module.dimension*Size(God;
(cheap"<java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 7
##
((<NrMovedPoints # convert word into gen/exp form
ugens java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26 fi;
;
for [ 1 .Length()]do
java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
bas
gi:=ugens{[1..k]};
ugens: pstack=[;
=( ) while Length(bas) :{1k}
basdimension
:[i*generatorsj; if SolutionMat(bas,a)=fail then
Add(bas
(,ugens[i]g[];
(1i) then
od;
i:=i+1;
# convert back to standard basis
r.;
returnr; fi;
x :=l[j;
until false; end);
("RandomSubgroupNotIncluding",function(g,n,time)
local ,u,runtimejava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
runtime:=java.lang.StringIndexOutOfBoundsException: Range [20, 15) out of bounds for length 48
start:=runtime();
=(g)
cnt:=0; while runtime()-java.lang.StringIndexOutOfBoundsException: Range [0, 23) out of bounds for length 20
cnt:=cnt+1;
u:=od;
repeat
v=u;
u:=ClosureGroup new:=RelationsOfFpMonoid(mon)[r.presentation.monrulpos od;
until eq.sys[]: x (/Lastx[]); ifIndexNC(eqsposw Filtered1.eq.], t- sBound([t] )
od;
return best new[:new[*{)dim.*]}; end);
InstallGlobalFunctionxe d
local r,z,# construct null vector
it,hom,trysy,prime,mindeg,fps,ei,mgens,mwrd,nn,newfree,mfpi,mmats,sub,
tab,gensmrep,invsmrep,zerob,step,imisimiqwasbold,
mon,ord,mn,melmvec,killgens,java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 30
# function to evaluate product (as integer list) in gens (and their # inverses invs) with corresponding action mats
evalprod:=function(w,gens,invs,java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 34
local new,i;
new:=[[],zerob]; for i in t: ] if i>0then w: [;
:=r.tailforwordConcatenation([1],ensi[1],z);
new:=[collect[1],collect[2]+new[2]*mats[i]+gens[i][2]]; else
collect:=r.tailforword(Concatenation(new[1],invs[-i][ .* od
new:=[collect[1],collect[2]+new[2]/mats[-i]+invs[-i][2]]; fijava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
od;
return new ; end;
melmvec=functionvjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
local i,a,w;
w:=One(fif >v then for i in [1..Length(v) (t]i,-)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
a:=Int(v[i]); if prime=fi
w:=wjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 else
a:=prime-a;
fi;
od;
return else end;
# formal inverse of module element
formalinverse:=function(w)
i;
l:=[]; for i in Reversed(LetterRepAssocWord(w)) do if IsEvenInt(i) then Add(l,i-1); else Add(l,i+1);fi;
od;
return java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 12
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 6
r:=arg[1];
z=2]java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
ogens:=GeneratorsOfGroup
dim:=r di =x;
prime:=Size(r.module.field);
if ValueOption(#############################################################################if IsOddInt( then
on:fail; else local , i, j k , ,eq p,njava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 # Construct the monoid and rewriting system, as this is cheap to do but # will allow for reduced multiplication. Do so before the group, so there is no # issue about overwriting variables that might be needed later
mon:=Image(r.monhom);
ofgens:=FreeGeneratorsOfFpMonoid(mon);
:nuthBendixRewritingSystemFamilyObjOmon)r);
frew:=ReducedConfluentRewritingSystem(mon); # generators that get killed. Do not use in RHS
killgens:=Filtered(GeneratorsOfMonoid(mon pairs :List [.n], x ->[)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 46
trGeneratorsOfMonoid))java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
mn:=Length(str); for i in [1..dim] do
Add(str,Concatenation("m",String(i)));
Addstr,Concatenation(mString"1)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
od;
f:=FreeMonoid(strjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
gensfi
rels:=[];
#java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 for jin[n,n-..i1] do
Addrelsgens]gensi1, .[]
Add(rels,[gens[i+1]*gens[i],One(f)]);
od;
# module is elementary abelian for i in [mn+1,mn+3..Length(str)-1] do if prime=2then
Add else
Add(rels,[gens[i+1],gens[i]]);
se
j:=QuoInt(prime+1,2); od;
Add(rels,[gens[i]^j,gens[i+1] # consistency 3: k (i i^(p-1)) = (ki) i^p-1
Add(rels,[gens[i+1]^j,gens[i]^(j-1)]); fi; for j in [ # function to evaluate product (as integer list) in gens (and their
[i],gens] invs)with correspondingactionmats
(rels[[]gens[+]gens[+]gens[]])java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
;
od;
# module rules for1.mn java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
not killgens for in [mn+1..Length(str)] do
new :=collect[,2+ew[][]gensi :[1] ifIsEvenInti :new^-1;fi
:=tailforwordC(ew1,-]1),; if IsEvenInt(j) then new:=-new; AddEquationsSQ( eq, w1.tail, w2[i]]java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
returnSolutionSQ( C, eq );
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 6 fi;
odjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
# rules with tails
in[.r.
new:=RelationsOfFpMonoid(mon)[r.presentation.monrulpos[i]];
new:=List(new,x->java.lang.StringIndexOutOfBoundsException: Range [0, 33) out of bounds for length 0
new[2]:=new[2]*melmvec(z{[(i-1)*dim+1..i*dim]});
Add(rels,w=all
od;
# Any killed generators -- use just the same word expression ifrpresentation.killrelators<>[] then for i in Filtered(killgens,IsOddInt) do
new:=AssocWordByLetterRep(fffam,[i]);
new:=[new,ReducedForm(frew,new)];
new:=istn,x-MappedWordx
ofgens,gens{[1..mn]}));
Add(rels,new);
RemoveSet(killgens,i);
od;;
;
=java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 24
ord=rderingOfRewritingSystemReducedConfluentRewritingSystem)java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 40
ord:=WreathProductOrdering(f,
Concatenationm=[[]*; 2dim,1))); else
ord:=WreathProductOrdering(f,
Concatenation list
ListWithIdenticalEntries(2*r: n*+1/; fi; elsefor in . r ] do
ord:=WreathProductOrdering(f,
Concatenation(ListWithIdenticalEntries(mn,2),
ListWithIdenticalEntriesjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 fi;
# if there is any [x^2,1] relation, this means the inverse needs to be## # mapped to the generator. (This will have been skipped in the( TwoCohomologySQ(,G,M) # monrulpos.) for i in rels do if Length(i[2])=0 and =TwoCoboundariesSQ ,M ;
and Length(Set(LetterRepAssocWord(i[1])))=1then
new:=LetterRepAssocWord(i[1])[ f:=reeGroup(str)java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 if IsOddInt(new) then
Add(rels,[gens[new+1],returncc fi; fi;
od;
#java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
mon:=FactorFreeMonoidByRelations(f,rels);
m(FamilyObjm)o)
# handle inverses that get killed
for i .Lengthr..killrelators) java.lang.StringIndexOutOfBoundsException: Range [54, 55) out of bounds for length 54
new: generic methodforgroups"
new:=ReducedForm(frew,new);
new:=MappedWord(new,ofgens,gens{[1..mn local C; # now left multiply with non-inverse generator
j:=ReducedForm(rws
=ReducedForm
Add(rels,[##
od;
mon:=FactorFreeMonoidByRelationsjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 6
rels]j;
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 21
:java.lang.StringIndexOutOfBoundsException: Range [25, 23) out of bounds for length 35
SetReducedConfluentRewritingSystemcb=java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 39
;
# now construct the group
str=(ogens
zerob:presentation = G ;
ListWithIdenticalEntries(dim,Zero(r.module.# code for generic 2-cohomology (solvable not required)
n ;
:(eneratorsOfGroup:;
x[(((r.,
ElementOfFpGroup(FamilyObj(One(Range(r.fphom))),x)) java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
enerators
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
x->[[],x]));
invsmrepList(,>r.myinvers(x[1],))java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
:RuleAtPosKBDAGa;
Add(str,Concatenation("m",String(i)));
od;
f:=FreeGroup(str);
gens:=GeneratorsOfGroup(f);
rels:=[]; for [. {iLength(rules]1;
new:=MappedWord(r.presentation.relators[i],ogens,gens{[1..n]}); for j in [1..dim] do
new:=new*gens[n+j]^ # matrix corresponding to monoid word
od;
Add(rels, for in java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
od; for i java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
new:(rpresentation[i],,ens[. #sim:=IsomorphismSimplifiedFpGroup(fp);
Add(rels,new);
od;
for i in [n+1..Length(gens)] # does a rule apply at position i?
Add(rels,gens[i] IsIntp)andrulposp<
[+.() o
Add(rels,Comm(ens[i],gens]);
od;
od; for i in [1..n] do for j in [1..dim] do
fijava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
..Lengthgens)}.module.generators[]) fi;
od;
od;
fp:=f/rels;
SetSize(fp,Size(r.group)*prime^r.java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Range [8, 6) out of bounds for length 13
wasbold:=false# # old general KB code, left for debugging
if mon<>fail then
rels:=MakeFpGroupToMonoidHomType1# tzrules:=mon!.confl;
SetReducedMultiplication(fp); fi;
if Length(arg)>2 :fail; ifIsZero( =nfluentMonoidPresentationForGroupjava.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 48 # make SDP directly
m:=PermrepSemidirectModule(r.group,r.module:cheap);
p # This reduces search space test is cheap here, thus no NC
new:=GroupHomomorphismByImages(fp,p
Concatenation(m.ggens,m.basis)); else
g: -(fpx)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
quot:= mo:=GModuleByMats(List,x-(,x)mo);# new gens
*GroupHomomorphismByImages(fp,g,GeneratorsOfGroup(fp),
Concatenation(java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 16
(r.odule.,ne(g))java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
hom:=GroupHomomorphismByImages(r.group,java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 30
GeneratorsOfGroup
p:=Image(quot);
trysy:=Maximum(1000,50* =;
rcejava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 38 if (rules)
=; if IsPermGroup(p) then
mindeg:=Minimum(List(Orbits(p, # Length of r[1] is 1. That is, this! fi;
it:=fail; while Size(p)<Size(fp) do
#:m,;# # This reduces search space
repeat
fail # re-use the first quotient, helps with repeated subgroups iterator
m:=r.group; else
m=; fi; # avoid working hard for outer automorphisms
=(() # roughly 5 for 1000, 30 for 10^6, 170 for 10^9
x->IndexNC(m,x)^4<=Size(m));
=()
it:=DescSubgroupIterator(m:skip:=LogInt(Size(p),2))MTX.(mo;
;
wasbold:= # now calculate the
m:=NextIterator(it); # catch case of large permdegree, try naive first if Index(p,m)=1 and IsPermGroup(p)
and NrMovedPoints(p)^2>Size(p) then # take set stabilizer of orbit points.
e:=Set(List(Orbits(p,MovedPoints(p)),x->x[1]));
mifhom= (nfoExtReps,2,"java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 14 if
m:IntersectionMjava.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 59 fijava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15 if =Concatenation(m*ne(ield)java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
m:=p; # after all..
wasbold:=false; else
wasbold:true; fi; fi;
Info(InfoExtReps,3,"Found nonone:=Filtered([1..Length(mats)],x x)java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
e:=fail; if Index(p,m)>=mindeg and (hom=false or Size(m)=1 or
false<>MatricesStabilizerOneDim(r.module.field,
List(GeneratorsOfGroup(m),
x#rk:=0;
Info(InfoExtReps,2,"Attempt index ",Index(p,m)); ifhom=alsethenInfo(InfoExtReps2" false";;
if hom<>false and Index(p,m)> # up to index 50 # the rewriting seems to be sufficiently spiffy that we don't jin 1.rules]do # need to worry about this more involved process.
# this might fail if generators are killed by rewriting
and Length(r.presentation =*; then
# Rewriting produces a bad presentation. Rather rebuild a new # fp group using rewriting rules, finds its abelianization, # and then lift that quotient
sub:i=java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
tab0=AugmentedCosetTableInWholeGroup;
# primary generators
mwrd:=List(tab0!.primaryGeneratorWords,
x->ElementOfFpGroup(FamilyObj(One(fps)),x));
(InfoExtReps=unction()
mgens:Listm,-ImagesRepresentative(uotx)java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
List[.dim,->ShallowCopy(); iffor
e:=SmallerDegreePermutationRepresentation(m);
mfpi:=IsomorphismFpGroupByGenerators(java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 23
Listmgens,->(ex)cheap);
mfpi:=e*mfpi; else
mfpi:=IsomorphismFpGroupByGenerators(m,mgens:cheap); fi;
# module
i:=Concatenation(r.module.generators,
(.odule.,
r.odule.dimension,r.odule.ield);
e:=List(mwrd,
x->evalprod java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
gensmrep,invsmrep,i j 1.Lengthm] IsZero(k
:e,()
local i;
i:= fi;
return [i[1],i[2]-java.lang.StringIndexOutOfBoundsException: Range [0, 39) out of bounds for length 19 end ;
newfree:=FreeGroup(nnjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
gens:=GeneratorsOfGroup(newfree);
rels:Listkx->ImmutableVector(ieldx),);
# module relations for i in [1..dim] do
Add(rels,gens[ Assert(2java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 for j in [1..i-1] do
Add(rels,Comm(gens[nn+i],gens[nn+j]));
; for j in [1..Length(java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 0
Add(rels,gens[nn+i]^gens[j different collection function: Sum up changes for generator i
LinearCombinationPcgs(gens{[nn+1..nn+java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 15
od;
od;
for i in RelatorsOfFpGroup(Range(mfpi)) do
i=etterRepAssocWordi)
str:=java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
(str1]>0then (inconsistent)fi
Addtab.:=(
/gens[nn1.+dim}str[2]));
od;
newfree=/rels;# new extension
Assert(2,
AbelianInvariants(newfree)=AbelianInvariants(PreImage
jin hastail
GeneratorsOfGroup(newfree),Concatenation(mgens,
ListWithIdenticalEntries(dim,One(m))));
# first just try a bit, and see whether this gets all (e.g. if # module is irreducible).
e:=LargerQuotientBySubgroupAbelianization( ; if e<>fail then # this check is very cheap, in comparison. So just be safe=(ds)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 while step<=1do # Now write down the combined representation in wreath
:=(e); # define map on subgroup.
tab:=CopiedAugmentedCosetTable(tab0);
tab.primaryImages:Immutable(
ListGeneratorsOfGroupnewfree =(istjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
x->ImagesRepresentative(e,x)));
TrySecondaryImages(tab);
i:=GroupHomomorphismByImagesNC(java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 21
List(GeneratorsOfGroup(newfree){[1..nn]},
);
SetCosetTableFpHomtab)java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
e:=PreImage(i,TrivialSubgroup killrelators= java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
e:=Intersection(e,
java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 31
# this check is very cheap, in comparison. So just be safe
Assert(0,ForAll :1java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
x->IsOne(MappedWord(x,FreeGeneratorsOfFpGroup(fps),
GeneratorsOfGroup(e!.quot)))));
if step=0then
i: :=({1.i-}rulesp[2,)
GeneratorsOfGroup :L(simiqm)
GeneratorsOfGroup();
j:=PreImage(i,m); if AbelianInvariants(j)= :=mageDefiningQuotientHomomorphism;
step:=2;
Info(InfoExtReps,2,"Small bit did good"); else
Info(InfoExtReps,,"Needexpensive);
e:LargerQuotientBySubgroupAbelianization,:
cheap:false)
e:=Intersection(e,
java.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 68
# This reduces
if it=fail
step:=step+1;
od;
fi;
:Laste;
simi=ail then
simi:=IsomorphismSimplifiedFpGroup(Source(quot));
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
>(r.odulefield if(magesRepresentative,)^-)
i:=simi*DefiningQuotientHomomorphism(e);
j:= if hom=false InfoExtReps2h ";;
j:=List(Orbits(j,MovedPoints(j)),x->Stabilizer(j,x[1])) if<>false Index(,)java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
:List,>(,java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
e:=Intersection
e:=Intersection(e,KernelOfMultiplicativeGeneralMapping(quot)); fi; fi;
if e<>fail then # can we do better degree -- greedy block reduction?
nn:=e!.quot sub=quot,)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 ifjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
repeat
ei:=ShallowCopyimaryGeneratorWords,
MovedPoints(n)))
SortBy(ei,x->-Length Info(InfoExtReps,m"m)java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
j:=false;
i:=1; while <Length(i and j=alse
str:=Stabilizer(nn,ei[i] :Length(gens) if Size(Core(nn,str))=1then
j:=ei[i]; fi;
i:=i+1;
od java.lang.StringIndexOutOfBoundsException: Range [18, 19) out of bounds for length 18 if j<>false then
Info(InfoExtReps,4,"deg. improved # action on blocks
i:= IdentityMatmodule.,modulefield);
j:=Size(nn);
->(LetterRepAssocWord(nderlyingElement(x),
nn:=Group(List(GeneratorsOfGroup(nn),
gensmrepinvsmrepi)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
SetSize(nn,j); fi;
until j=false;
fi; if not IsIdenticalObj(nn,e! end;
ree by ,
NrMovedPoints(e!.quot)/NrMovedPoints(java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 47
e:=SubgroupOfWholeGroupByQuotientSubgroup# module relations for iin [.dim do
; elif j [.i- do
trysy:=Size(fp); # never try again # can the Sylow subgroup get us something? jin[Lengthm)
=(p,);
e:=PreImage(quot, LinearCombi({nn.n+im]}mmatsj[])
Info(InfoExtReps,2,"Sylow ;
:(e:);# only one TzGo
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
e:=i*e; # map onto pgroup
j:=KernelOfMultiplicativeGeneralMapping(
InverseGeneralMapping(e)*quot);
i:=RandomSubgroupNotIncluding(Range(e),j,20000); # 20 seconds
Info(InfoExtReps,2if([]> (inconsistent)fijava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
IndexNC(Range(e),i)); if IndexNC(Range(e),i)*IndexNC(p,m)< # consider permdegree up to 100000 # as manageable
java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
e:=PreImage(e,i); #e:=KernelOfMultiplicativeGeneralMapping( # DefiningQuotientHomomorphism(i)); else# first just try a bit, and see whether this gets all (e.g. if
e=(mfpim:cheap fi; fi;
else Info(InfoExtReps,4,"Don't index ",Index(p,m)); fi;
until e<>fail;
i:=;
quot:=DefiningQuotientHomomorphism(Intersection(e,
KernelOfMultiplicativeGeneralMapping(quot)));
p:=Image(quot);
Info(InfoExtReps,1,"index ",Index(i,m)," ))java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
Size(p)/Size :(ubRangee,java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
hom:=false; # we don't have hom cheaply any longer as group changed. # this is not an issue if module is irreduciblejava.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 44
it:=fail; simi:=fail; # cleanout info for first factor
od;
quot:sim*;
new:=GroupHomomorphismByImages(fp,p,GeneratorsOfGroup
List((fp)x>ImagesRepresentativequot,));
; # if we used factor perm rep, be bolder if IsPermGroup(p) then
new=new*SmallerDegreePermutationRepresentationp:heap:wasbold<>rue;
SetIsomorphismPermGroup(fp,new); elif IsPcGroup(p) then
SetIsomorphismPcGroup(fp,new); fi; fi;
if HasIsSolvableGroup(r.group) then
SetIsSolvableGroupi,); fi;
return fp; end);
InstallGlobalFunction("CompatiblePairOrbitRepsGeneric",function(cp,coh)
local bas,ran,mats,o; if Length(coh.cohomology)=0then return [coh.zero];fi; if Length(coh.cohomology)=)=2then # 1-dim space over GF(2)
return [coh.zero,coh.cohomology[1]]; fi # make basis
bas:=Concatenation(coh.coboundaries,coh.cohomology);
ran=Length(coh.coboundaries)+.Length(bas)]
mats:=List(GeneratorsOfGroup(cp),g->List(coh.cohomology,
v->SolutionMat(bas,coh.pairact(v,g)){ran}));
o:=Orbits(Group(mats),coh.module.field^Length(coh.cohomology));
o:=List(o, else
return o; end;
############################################################################# ## #M Extensions( G, M ) ##
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
,sGroupIsFinite,
- ; function(G,M)
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 10
=
List((cohmodule.ieldcoh.ohomology,coh.zero),
x->FpGroupCocycle(coh,x,true:
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 5
InstallOtherMethod;
true,[IsGroup and IsFinite,IsObject,IsGroup],
-java.lang.StringIndexOutOfBoundsException: Range [0, 15) out of bounds for length 0 function=java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
coh:=TwoCohomologyGeneric(G,Modjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
a[1;
x>(,xtruee:=Intersection(e,KernelOfMult((uot); end);
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.60Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.