############################################################################# ## ## 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 IsList(v) then
v := rec( word := v, tail := [] ); fi; if IsList(u) then
u := rec( word := u, tail := [] ); fi;
# if <v> is trivial return <u> if0 = Length(v.word) and 0 = Length(v.tail) then
return u; fi;
# if <u> is trivial return <v> if0 = Length(u.word) and 0 = Length(u.tail) then
return v; fi;
# if <v> has trivial word but a nontrivial tail add tails if0 = Length(v.word) then
u := ShallowCopy(u); for i in [ 1 .. Length(v.tail) ] do if IsBound(v.tail[i]) then if IsBound(u.tail[i]) then
u.tail[i] := u.tail[i] + v.tail[i]; else
u.tail[i] := v.tail[i]; fi; fi;
od;
return u; fi;
# unpack <u> into <x>
x := C.list;
n := Length(x); for i in [ 1 .. n ] do
x[i] := 0;
od; for i in [ 1, 3 .. Length(u.word)-1 ] do
x[u.word[i]] := u.word[i+1];
od;
# <mx> contains the tail of <x>
mx := ShallowCopy(u.tail);
# get stacks
w :## This file's authors include Bettina Eick and Alexander Hulpke.
p := C.pstack;
c := C.cstack;
m := C.mstack;
# put <v> onto the stack
w[1] := v.word;
p[1] := 1;
c[1] := 1;
#F CollectedWordSQ(##
# run until the stack is empty
l :#### Copyright of GAP belongs to its developers, whose names are too numerous while0 < l #java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# remove next generator from stack
v:=rec word: v, tail : [];
# apply generator to <mx> for i u := rec( :=u, : ] ); ifif =Length.word) and 0 =Length(v.tail then
# we use the transposed for technical reasons0=Length(.word)and =Length(u.tail) then
mx[i] := C.module return java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 fi
od;
# raise current exponent
c ifIsBound(.taili) then
# if exponent is too big ifwl]pl+1] <c[l]
# reset exponent
c[l] := 1;
# move position
p[l] := p[l] + 2;
# if position is too big
Length[l]) <p[tjava.lang.StringIndexOutOfBoundsException: Range [40, 41) out of bounds for length 40
# modify tail (add both tails)
l1 : Length(mx);
l2: Length(m[]); for i x[i]:=0java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18 if IsBound(mx[i]) then if IsBound([l][]) hen
i]:= mx[]ml]i; fi;
java.lang.StringIndexOutOfBoundsException: Range [0, 24) out of bounds for length 2
mx[i : m[l[i]java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 fi;
od; if l1 < l2 then ###########################################################
InstallGlobalFunction(CollectedWordSQ fijava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
od;
(v) then
java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
mjava.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 7
l ; fi; fi;
# now for i in [ n, n-1 ..ifmx .] []
: l1java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
=relatorsi][] # if <v> has trivial word but a nontrivial tail add tails
p[]: ;
l1 := (i^2-i)/2+g; if not
cl]: ;
mx[l1] := C.mone + mx[l1];
[] :=C.; # if position is too big fi;
m[l] := mx;
[
l2 := [];l2: ([];
not avoidthen
l2[l1] := C. fi ifm]i) fi
w java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
]=1;
p[l] := 1;
m[l] := l2;
;
x[ = 0; fi;
od;
# raise exponent
x[g] := il1java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# and check for overflow [[)
.wstack;
l1 := C.relators[g][g ;
;
x
od;
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
l1 []: ; if not l1 in C.avoid then
;
=l+;
mxl;c :1
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
l1 =i2)2+java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
;
od;
# and return result
w: ]java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 formx[1]:Cmone
Add( w, i l =[]1;
Add( w, x[i] );
od;
return
);
############################################################################# ## #F CollectorSQ( G, M, isSplit ) ##
l2l1]=java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 0
local ,,, ,j ,java.lang.StringIndexOutOfBoundsException: Range [12, 1) out of bounds for length 29
# convert word into gen/exp form
word
local []() if OneOfPcgs [:1
r= java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 else
l :=for java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
r := [];
k
<>
Add( r, k );
Add( r, []]java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39 fi;
od; fi;
return r; endx then
# convert relators into list of lists ifl1=(g2g);
pcgs := G; else
Pcgs )
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
r := [else
o ; for .()]do
r[i] := []; for j andunbind
r[ ;
od;
r[i][i] :java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
od #
# create collector for Gif [n,-.java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 39
GcollAdd ,[i ) +java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
relatorsreturn r;
.orders: o;
# create stacks
java.lang.StringIndexOutOfBoundsException: Range [16, 9) out of bounds for length 23
lestack: []java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
Gcoll.pstack := [];
.cstack: [;
Gcoll.mstack := [];
# create collector list
Gcoll.list =List( pcgso: RelativeOrders(pcgs )
# in case we are not interested in the module[]: [l]+java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 forif w[][l1<c]then
# copy collector and add module generatorsi]j]=word(pcgs, pcgs[]java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
r #if r[i][i] := wordpcgs,cgs[^[])
# create module gens (the transposed is a technical detail)# create collector for G
=List(.generators,i-ImmutableMatrixl1 : Length(x;
r.l2 : Length([];
mzero :ImmutableMatrix(Mfield,Zero(.one);
# add avoid
r. Gcoll.stack =[];
isSplitjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 23
k:=CharacteristicGcoll.cstack : [; for i in [ 1 .. Length(r.ordersmx[i] : mx[]ml[i]; for j in [ 1 .. i ] do # we can avoid if mx[=[]i]; # was: r.orders[i] <> k and r.orders[j] <> k then
AddSetravoidjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 fi; if # copy collector and module generators
od; fi;
# and return collectormx[]:ml[]java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
return r; end );
############################################################################# ## #F AddEquationsSQ( eq, t1, t2 ) ##
isSplit
local i
# if <t1> = <t2> return iffor i in[n -1.g1
# compute <t1> - <t2>
t1 := ShallowCopyl] :=1java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26 for i in [ 1 .. notl1 avoidthen if IsBound(java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 11 if IsBound(t1[i]) then
[]]=mone; else
t1[i] := -t2[i]; fi; fi;
od;
l : ]java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
: ]java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
in 1.Length(t1)]do if IsBound(t1[i]) then forjin 1 . eq.imension]do if [i]< eq.vzero then
l: l+;
( []i, v);
ShrinkRowVector(l[j][i]); fi;
od;
od;
# and reduce lines
n: eq.dimension; for j in [1.. n] java.lang.StringIndexOutOfBoundsException: Range [0, 28) out of bounds for length 26
=l];
v := Length(x); if0 < java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 while0 < v and IsBound(eqjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
c := - t1]: t2[i];
ifrelatorsg]g] >0then if IsBound(x[i]) then
x# make lines
AddCoeffs((x[ .system[][,c)
ShrinkRowVector(x[i]); if = (x[i] then
Unbind( l1 = (g^2+/2java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 fi; else
x[i] := c * eq.system fi;
od
v := Length( ; if0 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
; if0 < v then
eq.system[w] := x * (1/ ShrinkRowVector(l;
eq.spos[w] := Filtered( [1..eq d; fi;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
)############################################################################
############################################################################# ## #F SolutionSQ( C, eq ) ##
InstallGlobalFunction( SolutionSQ, function( C, eq )
local x, e, d, t, j, v, i n p ;
# construct null vector
n := ifOneOfPcgs while0 v and IsBound(.system[] do fori 1 .eqrels-Length(.) do
i eq.java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 12
;
osition
C.unavoidable := [dAddCoeffs( [i,eq.[w[i] [<0then
j : 1; for i in [ 1 .. eq.nrels ] do if not i in
C.unavoidable[i] := j; endjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
j:=j+; fi;
od;
# blow up vectors
t fi;
w: [; for j in 1 . Length(eq.system) ] do if IsBound(eq.system[j]) then
v := ShallowCopy(n); for i in eq.spos[j] do if iin . then
p: dimension*C.unavoidable[i]1)java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
v{p ; fi
od;
ShrinkRowVector(v);
t[ if <v then
AddSetw,Length(); fi;
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
# normalize system
v := 0*eq.vzero[1]; for i############################################################################# for j in w do if j > i then
p := t[j][i]; if p < vthen
t[j] := ShallowCopy( .list = Listjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(t[j] ti], - ;
ShrinkRowVector(t[j]) for in .. eq.nrels-Length(.)]do
fi;
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
od;
e := eq.vzero[1]^0; for iin d do
x := ShallowCopy(n);
.unavoidable[]:=; forj w do
j >i then
]t; fi;
od:[java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
Add(,x)
od; if0=LengthCavoid then
java.lang.StringIndexOutOfBoundsException: Range [66, 17) out of bounds for length 17 fi;
# construct null vector
n := []; for i in [ 1 .. eq.nrels ] do
Appendfi
od;
# construct a blow up matrix
i := []; for j in [ 1 .. eq.# if not j in InstallGlobalFunction java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 11
Append( i, (java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 19 fi;
od;
# blowup the vectors
e:= []; for x in v do
d := ShallowCopy(n);
}=;
Add( e, d );
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
# and return
return e; end );
############################################################################# ## #F TwoCocyclesSQ( C, G, M ) ##
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
=.[1^;
for i in d doind do
: Pcgs()
#
eq := rec( vzero := C.mzerol[ j>> then
mzero: C.,
od;
nrels := (n^2+n)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 20
(avoid)
; fijava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
# precalculate (ij) for i > j
pairsin n [ forin [ 1.eqrels for v := (ezerojava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
pairs[i][j] := CollectedWordSQjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
od;
# consistency 1: k(ji) = (kj)i for in[,n1. do for j ; for k in [ n, n-1 .
w1 0=e =]
: CollectedWordSQ ,pairsk][] i1 ) if.< .wordthen
Error else elsex[java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 7
AddEquationsSQ( eq, od; fi;
od;
od;
;
consistency:j^p) (ji)=j^ i for i in [ n, n-1 .. 1 ] do for j in [ n, n-1 .fi
p :=;
w1 := CollectedWordSQ
CollectedWordSQ( C,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
( ,function , java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
=C.,
dimension : java.lang.StringIndexOutOfBoundsException: Range [0, 34) out of bounds for length 27
spos : ]java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 else
AddEquationsSQ( eq, w1.tail, w2. C.java.lang.StringIndexOutOfBoundsException: Range [33, 18) out of bounds for length 33 fi;
od;
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
stency: ( ^p- ki)ij:j+ for i in [ n, n-1 .. 1 ] do # consistency 1: k(ji) = (kj)i for [n
w1 j in[1.eq.]java.lang.StringIndexOutOfBoundsException: Range [44, 45) out of bounds for length 44
( C,[i,1],[i,-1]) );
w2 := CollectedWordSQ( C w1: for i in eq.spos[j
[i,-1 );
.word then
Error( "k i^p <> ( Error( "k(ji) <>) [1.+ength(.ystem[j[i]] =eq.[]i]
AddEquationsSQ( eq, ; fi;
od;
od ;
# consistency 4: (i i^(p-1)) i = i (i^(p-1) i)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 1. java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
p:Corders[]
w1=CollectedWordSQ ,CollectedWordSQ C i1],[,-]
[i,1] );
w2 : CollectedWordSQ,[i,]java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
if p <>w2:CollectedWordSQ(,CollectedWordSQ(C,[j,[ , if w1.word <> w2.word then
Error i ip1< i^p ); else
Error("^p-1 (ji) < j^ i" ShrinkRowVectort;
;
od;
# and return solution
return SolutionSQ( C, eq ); end );
############################################################################# ## #F TwoCoboundariesSQ( C, G, M ) ##
TwoCoboundariesSQ ,G )
local n, R, MI, j, i1]
# start with zero matrixxi =ejava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
:CollectedWordSQ( C, C,k][,])java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
R =[];
r := n*(n+1)/2; forod;
R[ Addv x ; for j in [ 1 .. r ] do
Ri[]:= Cmzero;
od;
od;
# compute inverse generators
M := M.generators;
MI := List( M, x -> x^-1 );
d := Length(M[1]);
# loop over all relators for j in [ 1 .. n ] do for i in
x :(^2i)2+ java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
# power relator if i = j then
for e in [ 1 .. C.orders
R[i][x] := R[ java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
od
# conjugate
Add(e,d);
R[i][x] := R[i][x] - M[j
R[j][x] := R[java.lang.StringIndexOutOfBoundsException: Range [0, 30) out of bounds for length 13 fi;
# compute fox derivatives
m := C.mone;
:.[; if r <> 0then for k in [ Length n :=Length((); # collect equations in <eq>
r]x: [[]x mjava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
m := M[r[k]] * m;
od java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
od; fijava.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 11
od;
od;
# make one list
r := n*(n+1)/2; for in[1 . for k in [ 1 .. d ] do
e := []; # consistency 1: k(ji) = (kj)i
Append( e for i [n n- .1]
;
Add( m,e)java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
od;
odjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
# compute a base for <m>
return BaseMat(m); end
############################################################################# ## #F TwoCohomologySQ( C, G, M ) ##
InstallGlobalFunction( TwoCohomologySQ#############################################################################
local cc, cb;
cc := TwoCocyclesSQ( C, G, M ); if
# if InstallGlobalFunction( TwoCoboundariesSQ, function( C, G, M )
cb : local R ,j , , , ,r,d fi; if Length( cb ) >0then
cc := BaseSteinitzVectors( cc, cb ).factorspace; fi; fi;
return cc; end)
############################################################################# ## #M TwoCocycles( G, M ) ##
InstallMethod AddEquationsSQ ,w1tail, w2. ) "generic method =List ,x - ^- );
true
[ java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0 0,
function( G, M )
p:= .orders[] iin[j.n] do
C :CollectorSQ(G M,alse java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
return TwoCocyclesSQ C[1 ,1); end );
############################################################################# ## #M TwoCoboundaries( G, M ) ##
(TwoCoboundariesjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 "generic method for pc groups",
true,
[ IsPcGroup, IsObject ], 0,
unction( ,M )
local C;
C := CollectorSQ( G, M,
#java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50 for [n 1. 1do
# non-solvable cohomology based on rewriting
############################################################################# ## #M TwoCohomology( G, M ) ##
=CollectedWordSQ(C,[,1 r <0then
groups"
true,
[IsPcGroup,IsObject ], 0
function(forjava.lang.StringIndexOutOfBoundsException: Range [27, 25) out of bounds for length 49
local C, d, z, co, cb;
C := CollectorSQod;
d := Length( C.ordersod;
d := d ;
z
co :=
co oda return solution
cb := TwoCoboundariesSQ( C, G, M );
cb
rec group =Gjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
module := M,
collector := C,
isPcCohomology:=true,
local n, R, MI, j, i, x, m, e, ,, in1. java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
n2java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
# code for generic 2-cohomology (solvable not required)
InstallMethod(#
[IsGroup function
,genshomjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 23
len1,l2,d=Length :(,java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
findtail,colltzcb=:java.lang.StringIndexOutOfBoundsException: Range [34, 31) out of bounds for length 43
c,nvars,htpos,zeroq,r,ogens,bds,model,q,java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 32
lena;
#
colltz:=function(a)
local i,p;
# collect from left
i:=1; while i<=Length(a) do
# does a rule apply at position i?
:RuleAtPosKBDAGdaga,i;
#M TwoCocycles( G, M )
a:=Concatenation(a{[1..i-1]},tzrules[p][2],
genericmethod for pc groups",
i:=Maximum(0,i-mal); # earliest which could be affected fi;
i:=i+1;
od;
return a; end;
# matrix corresponding to monoid word
ist)
local areturn TwoCocyclesSQ(C,G,M);
a:=onemat; for i in list do if i in nononethen
a:=a*mats[i]; fi;
od;
return a; end;
# normalform word and collect the tails
collectail:= =[[k];java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
,,,;
vfunction M)
# collect from left
:1
# make list
# does a rule apply at position i?
p:= r : n*+1/2java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
if in[1. d java.lang.StringIndexOutOfBoundsException: Range [32, 33) out of bounds for length 32
p:=rulpos forj 1.. r] do
:wrd{[+Length(InstallMethod TwoCohomologyjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
wrd:=Concatenation(wrd{[1..i-1]},rules[p][2],tail); if p in hastail if java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 16
vMat() else
v[p]:=v[p]+mapped(tail); fijava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 fi;
i:##
ico: , ;
;
[,] end;
=ifC 0
ogens: java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 37
# 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
# new approach with RWS from chief series
mon:=java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 22
=java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
fpgRangefp)java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
:monmonhom;
mon:=Range(fm)local ,;
tzrulesjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 # fi;
dag=mptyKBDAGUnion(ist(eneratorsOfMonoidInstallMethodTwoCoboundaries,
LetterRepAssocWord)));
mal:=Maximum(List(tzrules,x- "while <Length( do for i in [1..Length(tzrules)] do
AddRuleKBDAG(dag :(,a)
od;
gens:localC
x->C: CollectorSQ ,M java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
l1:=GeneratorsOfGroupjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
l1:=Concatenation(l1InstallMethod end
formalinverse"generic method pc groups" for i in l1 do
jLetterRepAssocWord(UnderlyingElement(ImagesRepresentative(fm,i)));
java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 76 if Length(j)<>1 java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 21
formalinverse[]=[];
od;
# rules that describe formal inverses, or delete generators of order 2 get no
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
hastail:=[] functionjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 27
rules:=[];
genkill:=[]; # relations that kill generators. Needed for presenation. for r in tzrules do
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
Add(rules,r); if Length(r[1])>2 or
(Length(r[1])=2 : then
AddSet(hastail,Length(rules)); fi else Length of r[1] is 1. That is, this generator is not used! []isjava.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 65
m:=First( if IsIdenticalObj]zero
m:=List(m []=local field,fp,fpg,gens,hom,mats,fm,mon,tzrules,dim,rules,eqs,i,j,k,l,o,l1,
m:=List(m,UnderlyingElement); # free group elements/words
if not IsOne(m[1]*Subword(m[2],1,1) ,olendag;
# Does the relation make# collect the word in factor group # other gens)? If so, remember relation as needed to kill this generator, but # no influence on Cohomology calculation (which just uses the rest)
=; then Add(genkill,r); fi; fi; fi;
od
rulpos:if (p
htposList[.Length(rules),>Positionhastail,);
a{i+(zrules[# if model<># # old general KB code, left for debugging
q:=GQuotients(model,G)[1];
pre:=List(gens,x->PreImagesRepresentative( :i+;
ker:=KernelOfMultiplicativeGeneralMapping# mon:=Range(fm);
:=(ker)java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
l1:=GModuleByMats(LinearActionLayer(Group(pre),java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 27
miso:=MTX# kb:=KnuthBendixRewritingSystem(mon);
new:=# tzrules:=kb!.tzrules;ojava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
pcgs=(FamilyObj # now calculate the vector
# new
one:=One(model :=ConfluentMonoidPresentationForGroup;
m:=GroupGeneralMappingByImagesNC(fpg,model,GeneratorsOfGroup(fpg),pre);
mats:=List(GeneratorsOfMonoid(mon),
x->ImagesRepresentative(m,
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 27
nonone:=[1 localv,,,p
pre v:List(,->zero)
onemat # collect from left
=1;
m:=LeftQuotient(mapped(r[2]),mapped(r[1]));
m:=ExponentsOfPcElement(pcgs,m);
solvec:Concatenation(solvec, # does a rule apply at position i?
od;
;
mats:=List(GeneratorsOfMonoid(mon),
-{[i+Lengthrules[1].Length(wrd);
(fm,x # matrices for monoid generators
one:=One(mats[1]);
nonone:=ltered(..ngth(mats)]x>IsOne(ats[])
zero:= GeneratorsOfGroup(G)mo.);
dim:=Length(zero);
nvars:=dim*Length(hastail); #Number of variables
#rk:=0;
zeroq:==Concatenation(1,List(
eqs=MutableBasis(field[,zeroq)
olen:=[-1,0]; for [..Lengthrules)] do
Info(InfoCoh,1,"First rule ", LetterRepAssocWord(derlyingElementmagesRepresentative(fm,));
l1:=rules[i][1];
len1:ength(l1)java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 forjin [.java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 7
l2:=rules[j][1
m:=Minimum(len1,Length(l2)); for o in [1..m-1java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10 if ForAll([1..o],k->l1[start+k]=l2[java.lang.StringIndexOutOfBoundsException: Range [0, 44) out of bounds for length 12
# apply l1 first
new:=Concatenation# fp:=IsomorphismFpGroup(G);
c:=collectail(new);
v1:=c[2];c:=c[1]; if i in hastail (= (r]> [[[>[]2)
v1[i]:=v1[i]+mapped(l2{[o+1..Length(l2)]}); fi;
# apply l2 first
new:=Concatenation(l1{[1..len1-o]},#
v2:=collectail( m:=First(RelationsOfFpMo=( java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8 if c<>v2[1] then Error("different in factor"); #else Print("Both reduce to ",c,"\n"); fi;
v2:=v2[2]; if j in fm:=mon.onhom;
v2[]# fi;
(test)
c:=List([1..dim],x->ShallowCopy(zeroq)); for k in hastail do if v1[k]<v2[] then
new:=TransposedMat(v1[k]-v2[k]);
r:=(java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 7 for l in [1..dim] do if not IsZero(new[l]) then
c[l]{r}:=new[l]; fi;
od; fi;
od;
kincdo
if> (k)thenqGjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 30 " not" fijava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# #k:=SiftedVector(eqs,ImmutableVector(field,k)); #Add(alleeqs,ImmutableVector(field,k));
k:=SiftedVector(eqs,k :ListmisoPpx)
IsZero)thenj=(((i;
,(k)
fi;
od; fi;
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 11
nonone=.]java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
Add(olen,Length(BasisVectors onemat:G;
Length(len3and # if twice stayed the same after increase
olen[Lengthm=m2)mappedifLengthr1)2 java.lang.StringIndexOutOfBoundsException: Range [26, 27) out of bounds for length 26
olen[Length(olen)]<>olen[Length(olen =smOne);
k:=List(BasisVectors(eqs),ShallowCopy);;
TriangulizeMat(k);
eqs=#java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
Listkx>java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 0 fi;
;
#eqs:=Filtered(TriangulizedMat(eqs),x->not IsZero(x));Filtered[.m),-nIsOnenot(]Subword[],)then
eqs:=:erovecjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 16 if Length(eqs)=0then
eqs:=IdentityMat(Length(rules),field)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 else
eqs:=ImmutableMatrix(field,eqs);
eqs:=NullspaceMat(TransposedMat(eqs)); # basis of cocycles fi;
# Now get Coboundaries
len1:=Length(l1);
findtail:=function(wrd,nums, htpos:=List([1..Length(rules)] 1r)java.lang.StringIndexOutOfBoundsException: Range [34, 35) out of bounds for length 34
model=")
a=; for[.(d java.lang.StringIndexOutOfBoundsException: Range [32, 33) out of bounds for length 32
p:=Position =,-P(,)) if p<>fail then
v:=vecs[p]; for j in [i+1..Length(wrd)] do
vl1:(((ep)o.eld);
MTX.IsI.()java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 26
a:=a+v; fi;
od;
[])}; end;
bds:=[]; for i in [1. :Om) if[]i
c=,[ List(()
-java.lang.StringIndexOutOfBoundsException: Range [32, 29) out of bounds for length 32
r:= fm);#forjava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 48
new:=[]; for j in hastail do
v1:=findtail(rules[j][1] in[.Length [v2[ojava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
v2:indtail(ules[],r;
Append(new,v1-v2);
odjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
new:=ImmutableVector(field,new);
Assert(0((> v1[<2[
(n)java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
od; fi;
od;
bds Zeron[;
bds:=List(bds, c[]}n[l]
od;
:G
od
in do
prime:=Size(field));
: modelfail not(*
r.Error" java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 44
new:=[];
one:=ne((pg);
k:=List(GeneratorsOfMonoid(mon),
x->UnderlyingElement(PreImagesRepresentative(fm,x))); # matrix corresponding to monoid word
mapped2:=:=ImmutableVector,Z();
a,;
; for i
a:= od;
od;
return a;
;
in # rule that would get the tail
AddAdd(,BasisVectors());
od;
r # relators to kill superfluous generators
(genkill-m1m[])java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
zrules
monrulpos:=List(rules{hastail},java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
prewords:=List(ogens,x->UnderlyingElement(ImagesRepresentativejava.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 64
# normalform word and collect the tails
r.tailforword:=function(wrd,zy)
local v,i,j,p,w,tail;
v:=zerovec;
# collect from left
i:=1; while i<=Length(wrd)new=(1[.len1o],[]2)java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
# does a rule apply at position i?
p:=RuleAtPosKBDAG(dag,wrd,i);
(p) []< :NullspaceMatransposedMat) java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
p:=rulpos[p];
tail:=wrd{[i+Length#java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
wrd:=Concatenation(wrd{[1 ;
if p in hastail then
w:=zy{dim*(htpos[p]-1)+[1 :; for j in tail do
:wmats[]
od;
v:=v+w;
;
i:=Maximum(0,i-mal); # earliest which could be affected:a fi;
i:=i+1;
od;
return [wrd,v]; end;
r.fphom:=fp;
r.monhom:=fm;
.=;
# inverses of generators
r.myinvers:=function(wrd,zy)
eturn[Rwrd},
-r.tailforword(Concatenation(wrd,java.lang.StringIndexOutOfBoundsException: Range [0, 43) out of bounds for length 0 2]] end#Add(alleeqs,ImmutableVector(field,k));
java.lang.StringIndexOutOfBoundsException: Range [21, 3) out of bounds for length 30
local autom (w,)
eGeneralMappingp1)
# cache words for images of monoid generatorsAssert0( if not IsBound(autom!.java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 0
imagemonwords:=autom!.java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 9
locala;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 # apply automorphism
a:= # if twice stayed the same after increase
a=java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 5
: engthjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 51
a:= prime=();
:(,a;
a:=LetterRepAssocWord(UnderlyingElement(a));
a:=colltz(a);
imagemonwords[nr]:=a; fi;
return imagemonwords[nr]; end;
# normalform word and collect the tails
collectail:= # matrix corresponding
local ,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:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if IsInt(p) and rulpos[p]<>fail then
p:=rulpos[p];
:={i+rulesp[].wrd)];
wrd:=Concatenation(wrdr: .ength(d java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
if p in hastail then
w:=zy{dim*(htpos[p]-1)+[1o for j in tail do
w:=w*mats[j];
od;
v:=v+w; fi;
i:=Maximum(0,i-mal); # earliest which could be affected
r.ailforword=functionwrd,zy
i:=i+1;
od;
return [wrd # collect from left end;
prdout:unction(l)
local w,v,j;
w:=[];
v:=zerovec; for j in l do
v p:=uleAtPosKBDAG(ag,rd,i);
w:=collectail(Concatenation(w,j[1]));
v:=v+w[2]+j[2];
od;
return [,]java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 end;
mat:=pair[2];
new:=[];
# inverses of generators
verswrd>colltz(formalinverseReversedwrd),
-collectail(Concatenation(wrd,colltz(formalinverse{Reversed(wrd)})))[2]];
# collect inverses and interleave generators/inverses
extim:=Concatenation(List(extim,x->[[x,zerovec],myinvers(x)])) :List);
for i in [1..Length(hastail)] do # evaluate rules in images
left:=prdout(extim{rules[hastail[i]][1] :GroupWithGeneratorsgens)
# invert left
v=myinvers(left[1;
left:=[v[1],v[2field))java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
right:=java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 6
# quotient left^-1*right
left:=prdout(Concatenation([left],[right])); if left[1]<>[]r.:=fm;
Append(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;
return ImmutableVector(mo.field, :=ImagesRepresentativefpjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 15 end;
return r; end);
BindGlobal( "java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
return imagemonwordsnr]
e:]java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
one:=One(mats[1]); for m in mats do
r:=Set(RootsOfUPol(field,CharacteristicPolynomial(m)));
a p:=ulpos[]java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 ifa)0 falsefi
Add(e,a);
od; for c in Cartesian(e) do
is:=c[1]; for i in [2..Length(c)] do
is:=SumIntersectionMat(is,c[i])[2];
if(is)0then
return is; fi;
od;
return false fi; 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 forw:zy{*(htpos for j in ran do
p[r+j]:=r+j^l[i];
od;
Add(d,ran+r);
r:=r+b;
od; # permuter bit.yinvers=functionwrdz)
p:=return[(formalinverse{Reversedwrd},
return p; end;
BindGlobal("PermrepSemidirectModule",function(G,module)
local hom,mats,m,i,j,mo,bas,a,l,ugens,gi,r,cy,act,k,it,p; if not MTX.IsIrreducible(module) then Error("reducible");fi;
p:=Size(module.field); if not IsPrime(p) then Error("must be over prime field");fi;
k:=Length(module.generators);
hom:=GroupHomomorphismByImagesNC(G,Group(module.generators),
GeneratorsOfGroup(G),module.generators);
ow do immediatelyto normal of up to 4. # This reduces search space
it:= w:[]
repeat
m:=NextIterator(it);
if Index(G,m)*p>p^module.dimension then
Info(InfoExtReps,2,"Index reached ",Index(G,m), ", write out module action"); # alternative, boring version,
mo:=AbelianGroup(ListWithIdenticalEntries(module.dimensiona=ImagesRepresentative
:=Pcgsmo;
act:=List(module =]java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
GroupHomomorphismByImagesNC(mo,mo,bas,
List(m,x->PcElementByExponents(bas,x)):noassert));
Assert(3,ForAll(act,IsBijectivemyinversimagemonwords[:a fi
imagemonwords[]java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 31
gi:=SemidirectProduct(G,GroupHomomorphismByImages(G,a,
GeneratorsOfGroup(G),act),mo);
:rec(roup:gi,
ggens:=List(GeneratorsOfGroup(G),x->
ImagesRepresentative(Embedding(gi,1),x)), #vector:=ImagesRepresentative(Embedding(gi,2),bas[1]),
basis:=List(bas,x->ImagesRepresentative(Embedding(gi,2),x)));
Assert(0,Size(gi)= iin 1.Length(hastail)]do
return r;
torsOfGroup)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
x->TransposedMat( right:=prdout(extim{rules[hastail[i]][2
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 ifa<false then # quotient module # basis: supplemental vector and submodule basis
:BaseSteinitzVectorsIdentityMatmodule.imension,F())
NullspaceMat(TransposedMat(a{[1]})));
bas:Append-java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 31
# assume we have a generating set for the SDP consisting of the code group work there
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
cy:=CyclicGroup(IsPermGroup,p).1; # p-cycle
ugens:=[];
# also transversal chosen in complement
r:=RightTransversal(G,m);
act:=ActionHomomorphism#
; #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 if IsZero(a) then
l[j]:=(); else
l[j]:=MappingPermListList([1. w: :=oncatenation(List1.Lengthm)2,-v],[]^-]) fi;
od;
Add(ugens,WreathElm(p,l,act[gi]) )]
od;
# module generatorjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 for j in [1..Length(r)] do #r[j]*g/r[j^g]); Note j^g=j here as kernel of permrep# if new2<>new then Error("wrong ",pair);fi;
lj]:
cy# if new<>zy then Error("one");else Print("onegood\n");fi; # fi;
Add(ugensjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
gi:=Group;
Assert(0, java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 if returnr
a:end; if NrMovedPoints
gi:=mageBindGlobal(MatricesStabilizerOneDim" (ield,java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
ugens:=List(ugens,x->ImagesRepresentative(a,x)); fi] fi;
r=(groupgi,:ugens{[.k})
# compute basis
:[1}java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
gi:=ugens{[1..k]};
ugens:=ugens{[k+1]};
i:=1; while Length(bas)<module.dimension do for in[..k]do
:i*odulegenerators[j]; if SolutionMat(bas,a)=fail then
Add(bas,a);
# debugging code: Construct group and fi;
od;
i:=i+1;
od; # convert back to standard basis
r.basis:=List(Inverse(bas),x->LinearCombinationPcgs(java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 1
return r; fi; fi;
until false; end);
BindGlobal("java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 10
local best,u,v,start,cnt,runtime;
runtime:=GET_TIMER_FROM_ReproducibleBehaviour#
start:=runtime();
best:# v:=Concatenation(List([1..Length(mats)/2],x->[v[x],v[x]^-1]));
cnt:=0; while runtime()-start<time or cnt<100do
cnt:=nt+1;
u:=TrivialSubgroup(g);
repeat# right:=rules[hastail[i]][2];
v:=u;
u:=ClosureGroup(u,Random(g));
until IsSubset(u,n); if IndexNC(g,v)<IndexNC(g,best) then best:=v;fi;
od;
return best; end) p:p/(d,)) if IsOne(pair[1]) and IsOne(pair[2]) then
# function to evaluate product (as integer list) in gens (and their # inverses invs) with corresponding action mats
evalprod:if IsPrimep) java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
local new,i;
new:=[[],zerob]; for i in w do if i>0then
collect:=r.tailforword(Concatenation(new[1],gens[i][1]),z);
new:=[collect[1]
collect:=r.tailforword(Concatenation
new=[]2+ew2][i]invs-[java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 fi;
odjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 9
return new;
;
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 9
local i,a,w;
w:=One(f); for i in [1..Length(v)] do
a:=Int(v[i]); if prime=2 or a*2<prime then
w:=w*gens[2*i-1+mn]^a; else
a:prime-a;
w:=w*gens[2*i+mn]^a; fi;
od;
return w end;
# formal inverse of module element
formalinverse:=function(w)
local l,i;
:[; 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 23 out of bounds for length 16 end;
java.lang.StringIndexOutOfBoundsException: Range [6, 1) out of bounds for length 15
z
ogensgroup;
=.dimension
prime:=Size(r.module.field);
if ValueOption("normalform")<> :Sizefield;
mon:=fail; else
k=Length(module.enerators) # will allow for reduced multiplication. Do so before the group, so there is no:GGroup.generators) # issue about overwriting variables that might be needed later
mon:=Image(r.monhom);
ofgens:=FreeGeneratorsOfFpMonoid(mon);
fffam:=FamilyObj(One(FreeMonoidOfFpMonoid(mon)));
frew:educedConfluentRewritingSystem(mon); # generators that get killed. Do not use in RHS
(TransposedMat(a[1})
ReducedForm(frew :NextIterator( bas:java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 57
killgens:=Union(List(killgens,x->LetterRepAssocWord(UnderlyingElement(x))));
str:=List(GeneratorsOfMonoid(mon),String);
mn:=Length(str); for i in [1..dim] do
Add(str,Concatenation("m",String(i)));
Add(str,Concatenation("m",String(i),"^-1"));
od
f:=FreeMonoid(str);
gens:=GeneratorsOfMonoid(f);
rels:=[]; # inverse rules for i in [1,3..Length(gens)-1] do
Addg[][+]Onef];
Add(rels,[gens[i+1]*gens[i],One(f) =]
od;
# module is elementary abelian
inm+1,n3.Lengthstr)1do if prime=2then
Add ListG,>
Add(rels,[ImagesRepresentati(java.lang.StringIndexOutOfBoundsException: Range [53, 50) out of bounds for length 61 else if ()then
Add(rels,[gens[i]^j,gens[i+1]^(j-1)]);
Add(rels,[gens[i+1]^j,gens[i]^( else fi; for j in [i+2..Length(str)] do
Add(rels,[gens[j]*gens[i],gens[i]*gens[java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
Add(rels,[gens[j]*gens[i+1],gens[i+1]*gens[j]]);
od;
od;
# module rules for i in [1..mn] do ifnot injava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 for j in [mn+1..Length(str)ifa>falsethen
new:=r.module.generators[QuoInt(i+1,2)]; if IsEvenInt(i) then new:=new^-1; fi;
new:=new[QuoInt(j-mn+1,2)]; if IsEvenInt(j) then new:=-new;fi;
Add(rels,[gens[j]*gens[i],gens[i]*melmvec(new)]);
; fi
od
# rules with tails for i in [1..Length(r.presentation. cy:=CyclicGroup(IsPermGroup,p).1; # p(IsPermGroupp.if IsBoundm[1) then
java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 65
new:=List(new,x-> [:Filtered 1.nrels >xt) ) 2:[]elmvec{i*+.idim};
Add(rels
od;
java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
java.lang.StringIndexOutOfBoundsException: Range [34, 6) out of bounds for length 43 for =;
new=(fffam[]java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
new:=[new
=]
,1.});
v=(n);
for i .sposj] do
; fi; java.lang.StringIndexOutOfBoundsException: Range [0, 27) out of bounds for length 9
# normalize system
ord:=OrderingOfRewritingSystem(ReducedConfluentRewritingSystem(mon) forj inw do:() if HasLevelsOfGenerators(ord) then
ord:=WreathProductOrdering(f,
tj []- ;
ListWithIdenticalEntries(2dim,1))) else
ord:=
Concatenation(ListWithIdenticalEntries(mn,2),
ListWithIdenticalEntries(2 fi;
:WreathProductOrdering(f, ifj> then
ListWithIdenticalEntries(2*dim,1))); 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
rulpos) for i if Length(i[2])=0 and Length(i[1 ;
and Length(Set(LetterRepAssocWord(: [
new:=LetterRepAssocWord(# and return
IsOddIntnew)
Add(rels,[InstallGlobalFunction( TwoCocyclesSQ on:; fi; fi;
od;
# temporary build to be able to reduce
:FactorFreeMonoidByRelations(f,rels);
rws=((ne(on),djava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
# handle inverses that get killed for i in killgens do
new od; fori in [ n n1. 1] do
new:=MappedWord(new for k in n,n- . j+1 ]java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 # now left multiply with non-inverse generator
od;
j:=ReducedForm(rws,formalinversefori [, n1 .1do
Add(rels,[gens[i], (,[[i*[+]Onep := Cordersj;
od;
mon(f,els;
rws:=KnuthBendixRewritingSystem( java.lang.StringIndexOutOfBoundsException: Range [30, 1) out of bounds for length 52
ReduceRules(rws);
MakeConfluent(rws); # will add rules to kill inverses, if needed
SetReducedConfluentRewritingSystem(mon,java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 27 fi[[x =jx]+j*[]M]- ;
=.;
:O((mon);
zerob:= for k[r-,Lengthr ifHasLevelsOfGenerators(ord) then
ListWithIdenticalEntries(dim,Zero(r.java.lang.StringIndexOutOfBoundsException: Range [0, 46) out of bounds for length 37
n:=Length(ogens);
gensmrep:=List(java.lang.StringIndexOutOfBoundsException: Range [12, 1) out of bounds for length 15
x->[LetterRepAssocWord(UnderlyingElement(e: [];
(e,Rij[]; # module generators
Append(gensmrep,List(IdentityMat(r.modulereturn BaseMat;
x->[java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
invsmrep##
forin[1.]java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
Add(str,Concatenation("m",String(i)));
od;
f=()
(f)
rels:=[]; for i in [1..Length(r.presentation.relators)
#M TwoCocycles( G, M )
j in [.im do
new:=new* java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
od
Add(rels,new);
od;
in [1.(.presentation)do
method pcjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
Add(java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 16
od;
for j:ReducedForm
Add(rels,gens#M TwoCohomology( G, M ) for j in [i+1..Lengthjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
,(gens,ens)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
od; for i := SubspaceNC,cb; forj in [.dim java.lang.StringIndexOutOfBoundsException: Range [24, 25) out of bounds for length 24
Add(rels,gens[n+j]^gens[ str:List,
LinearCombinationPcgs(gens{[n+1..Length(gens)]},r.module.generators[endjava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
odjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 7
;
frelsjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
SetSize(fp,Size(r.group)*prime^r.module.dimension);
java.lang.StringIndexOutOfBoundsException: Range [12, 6) out of bounds for length 13
wasboldjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
:functiona
rels:=MakeFpGroupToMonoidHomType1 java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 49
SetReducedMultiplication(fp); fip=(,)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
if Length(arg)>2 and arg[3]=true then if IsZero(z) and MTX.IsIrreducible(r.module) then # make SDP directly
m:=PermrepSemidirectModule iin[.Length {+(rulesp[]java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 67
p:= ; # test is cheap here, thus no NC
:GroupHomomorphismByImages(,pjava.lang.StringIndexOutOfBoundsException: Range [62, 59) out of bounds for length 64
a:=a*; else
#sim:=IsomorphismSimplifiedFpGroup(fp);
r,x->zerojava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
fps:=Image(sim, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
g:=java.lang.StringIndexOutOfBoundsException: Range [0, 10) out of bounds for length 0
quot: j +ens java.lang.StringIndexOutOfBoundsException: Range [35, 36) out of bounds for length 35
*GroupHomomorphismByImages(fp,g,GeneratorsOfGroup(fp),
java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 5
v[]:v[]+apped(tail);
hom: fijava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
GeneratorsOfGroup(r.group),r. LinearCombinationPcgs(gens{[n+1(gens)],r.[i]j]) fi;
p:=Image(quot);
trysy:(100050IndexNC,ylowSubgroup(p,prime))java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64 # allow to enforce test coverage if ValueOption("forcetest")=trueogens java.lang.StringIndexOutOfBoundsException: Range [8, 6) out of bounds for length 13
mindeg# fm:=IsomorphismFpMonoid(fpg); if# if IsBound(mon!.confl) then
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 9
# mon!:tzrules;
it:fail;
Size()SizefifIsZero( =(; # we allow do go immediately to normal subgroup of index up to 4.
# if # re-use the first quotient, helps with repeated subgroups iterator if p=r.group then
m:=r.group;
j:=LetterRep(((,i))java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
:p fi; # avoid working hard for outer automorphisms
e=(m)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
x->IndexNC(m,x)^4<=Size(m));
m:=Last(e);
it:=DescSubgroupIterator(m:skip:=LogInt( mindeg:2; fijava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
wasbold:=false;
m:=NextIterator(it); # catch case of large permdegree, try naive first if Index(p,m)=1 and IsPermGroup( mListUjava.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 63
and NrMovedPoints in # take set stabilizer of orbit points.
e:=Set(List(if[] GeneratorsOfGroup((amilyObjfpg!
m:=Stabilizer(p,e,OnSets); if IndexNC(p,m)>10*NrMovedPoints(java.lang.StringIndexOutOfBoundsException: Range [0, 46) out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 fi; if IndexNC(p,m)>10*NrMovedPoints(p) then
m:=p; # after all..
wasbold:=false; else
wasbold:=true; fi; fi;
Info(InfoExtReps,3,"Found index ", new:=List(miso,x->PcElementByExponents(pcgs
e:=fail; if Index(p,m)>=java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 15
<MatricesStabilizerOneDim(r.module.field,
List(GeneratorsOfGroup(m)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
-TransposedMat(ImagesRepresentative(hom,x))^-1))) then
InfoInfoExtReps,2"Attemptindex ",ndexp,m);
=alsethenInfoIjava.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 68
::aximalSubgroupClassReps; # up to index 50 # the rewriting seems to be sufficiently spiffy that we don't # need to worry about this more involved process.
# this might fail if generators are killed by rewriting
x-I(homPreImagesRepresentativefpjava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
n
# fp group using rewriting rules, finds its abelianization, # and then lift that quotient
sub:=PreImage(quot,m);
tab0:=AugmentedCosetTableInWholeGroup(sub);
# primary generators
mwrd:=List(tab0!.zeroq:=ImmutableVector(field,ListWithIdenticalEntriZero(ield));
->ElementOfFpGroup(fps),);
Info(InfoExtReps,4,"mwrd=",mwrd);
mgens=Listmwrd,>(quot,))
nn:=Length ",",Length(asisVectors)""; if IsPermGroup(m) then
e:=SmallerDegreePermutationRepresentation(m);
mfpi:=IsomorphismFpGroupByGenerators(java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 52
List(mgens,x->ImagesRepresentative(e,x)):cheap);
mfpi:e*fpijava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
:java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 26
ListWithIdenticalEntries(r.module.dimension,
c>v21
e:=List(mwrd,
x-> :=v22;
gensmrep,invsmrep,i));
:=ist(,java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 36
local i;
i:=r.myinvers(x[1],z);
return [i[1],i[2]-x[2forinhastail java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 end); =(htpos[k]-1)*dim+[1..dim];
relations for i in [1..dim] od;
Add(rels,gens[nn+i]^prime); for j in [1..i-1] do
Add(rels,Comm(gens[nn+i],gens[nn+#k:SiftedVectorImmutableVectorfieldk);
od; for in[..Length(gens)] if not ()then
rels,ens[nn+]^gens =(,function()
LinearCombinationPcgs(gens{[nn+1.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
od;
od;
#extended presentation
for i in RelatorsOfFpGroup(Range(mfpi)) do
i:=LetterRepAssocWord(i);
str:=evalprod(i,e,ei,mmats); if Length(str[1])>0then Error("inconsistent");fi;
Add(rels,AssocWordByLetterRep(FamilyObj(One(newfree)),java.lang.StringIndexOutOfBoundsException: Range [0, 71) out of bounds for length 30
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
od;
newfree:=newfree/rels; #eqs:=Filtered(TriangulizedMat(eqs),x->not IsZero(x)); 2,
AbelianInvariantsnewfree)AbelianInvariantsPreImagequotm))
mfpi:=GroupHomomorphismByImagesNC(newfree,m,
(newfreeConcatenation,
ListWithIdenticalEntries(dim,One(m))));
# first just try a bit, and see whether this gets all (e.g. if # module is irreducible).
e:(mfpi,:heap)java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70 if e<>fail then
step:=0; #extended presentation # Now write down the combined representation in wreath
e:=java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 13 # define map on subgroup. ifLength(1)0 Error"";;
.primaryImages=mmutable
List(GeneratorsOfGroup(newfree){[1..nn]},
x->ImagesRepresentative(e,x)));
TrySecondaryImages(tab);
i:=GroupHomomorphismByImagesNC(subr:=k-*[[i]]java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
List(GeneratorsOfGroup(newfree){[1..nn]},
x-ImagesRepresentative,):;
SetCosetTableFpHom(i,tab (,1-v2;
e: # first just try a bit, and see whether this gets all (e.g. if
e:=Intersection(e,
KernelOfMultiplicativeGeneralMappingjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
if step=0then
i:=GroupHomomorphismByImagesNC(e!.quot,p,
java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 10
=java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
j:=PreImage k:=List(eneratorsOfMonoid)java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 if AbelianInvariants(j)=AbelianInvariants(newfree) (GeneratorsOfGroup( :function(istjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
step:
Info(InfoExtReps a:=*i; else
Info(InfoExtRepsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
e:=LargerQuotientBySubgroupAbelianization(mfpi,m:
cheap:=false);
e:Intersectione,
x->ImagesRepresentative(e,x)):noassert fi; fijava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
step:=step+1;
od;
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 23
else if simi=
simi:=IsomorphismSimplifiedFpGroup(Sourcep=(w,;
simiq:=InverseGeneralMapping(simi)*quot; fi;
eargerQuotientBySubgroupAbelianization,) if e<>fail ();
i:=simi*DefiningQuotientHomomorphism(e);
j=((e));
j:=List(Orbits(j,MovedPoints(j)),x->Stabilizer(j,x[1]));
j:=List(j,x->PreImage(i,x));
e:=Intersection(j);
e (l,+1)fijava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
; fi e:(mfpim:
if e<>fail then # can we do better degree -- greedy block reduction?
nn:=e!.quot; if IsTransitive(nn,MovedPoints(nn)) then
repeat
ei:=ShallowCopy(RepresentativesMinimalBlocks(nn,
MovedPoints(nn)));
,x->Length(); # long ones first
j:=false;
i:=1; whileofgens:FreeGeneratorsOfFpMonoid autom!.magemonwords=[];fijava.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
str=(n, java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 if Size(Core(nn,str))=1then
(fm,java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 46 fi;
i+java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
od; if j<>false then
Info(InfoExtReps,4,"deg. improved by blocks ",Size(j)); # action on blocks
i: imagemonwords]java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
j:=Size(nn); # make new group to not cache anything about old.,j,p,,;
nn:=Group(List(GeneratorsOfGroup
x->ImagesRepresentative(i,x)),());
SetSize(nn,j); fi;
until j=false;
fi; if not IsIdenticalObj(nn,e!.quot) then
Info(InfoExtReps,2,"Degree improved by factor ", 1,; # power that changes the exponent sign
:SubgroupOfWholeGroupByQuotientSubgroupjava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 15
Stabilizer(nn,1));
; elif e=fail and IndexNC(p,m)>trysy then
trysy=(;# never try again # can the Sylow subgroup get us something?
m:=SylowSubgroup(p,prime);
e:=PreImage inin [.mn
Info(InfoExtReps,2,"Sylow testfor in =;
p() only one TzGo
:=(Rangei,,(m)1)java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
:i*
j:=KernelOfMultiplicativeGeneralMapping(
InverseGeneralMapping(e)*quot);
i:=RandomSubgroupNotIncluding(Range(java.lang.StringIndexOutOfBoundsException: Range [0, 51) out of bounds for length 17
Info(InfoExtReps,2,"Sylow found ",IndexNC(p,m)," * ",
(Range)i); if # consider permdegree up to
r,new;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 # evaluate rules in images #e:=KernelOfMultiplicativeGeneralMapping( i java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 45 # DefiningQuotientHomomorphism(i));[,ReducedFormfrewnew);
e:=fail; # not good
fi;
else Info(InfoExtReps,4,"Don't index ",Index( ord:java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 7 fi;
until<>;
i:=p;
quot:=DefiningQuotientHomomorphism( Concatenation(ListWithIdenticalEntries(mnfunctionwrd)
KernelOfMultiplicativeGeneralMapping(quot# for i in wrd do
p:=Image(quot);
Info(InfoExtReps,1,"index ",Index(i,m)," increases #
Size(p)/Size(i)," at degree ",NrMovedPoints(p));
hom:=false; # we don't have hom cheaply any longer as group changed. # this is not an issue if module is irreducible
it:=fail; simi:=fail; # cleanout info for first factor
od;
quot:=sim*quot;
new:=GroupHomomorphismByImages(fp,p,GeneratorsOfGroup(fp), new)then
List(GeneratorsOfGroup(fp),x->ImagesRepresentative(quot,fi
fi; # if we used factor perm rep, be bolder if IsPermGroup(p) then
new:=new*SmallerDegreePermutationRepresentation(p:cheap:=wasbold<>true);
SetIsomorphismPermGroup(fp,new); elif IsPcGroup(p) new:=ReducedForm(frejava.lang.StringIndexOutOfBoundsException: Range [31, 1) out of bounds for length 61
tIsomorphismPcGroup,ew; fi;
;
if :(isc[i)2;
SetIsSolvableGroup(fp,IsSolvableGroup(r.group)); fijava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
return fp;
);
str:=List(ogens);
local bas,ran,mats,o; if Length(coh.cohomology)=0then return [coh.zero];fi; if Length(coh.cohomology)=1 and Size(coh.module.field gensmrep:List(eneratorsOfGroup(r.presentation.group), # 1-dim space over GF(2)
return [coh.zero,coh.cohomology[1]]; fi; # make basis
#modulegenerators
ran:=[BindGlobal("PermrepSemidirectModule"Gmodule)
mats(p,-istoh.ohomology,
v->SolutionMat(bas,coh.pairact(v in[.dim
Orbits((ats)oh..^(coh.cohomologyjava.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
:Length(.);
return o; end);
############################################################################# ## #M Extensions( G, M ) ##
InstallOtherMethod(Extensionsod;
true,IsGroup ,IsObject]
-RankFilter( function(Gnew:=MappedWord(.presentation.[i,,ens1.])
local coh;
(G,M;
return(V(.eldoh.,oh.ero,
x- r,gens ,(ctsBijective)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 end);
InstallOtherMethod(java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 5
true[ for j in.im do
RankFilters ) function(G,M,P)
ocal coh;
coh:=TwoCohomologyGeneric(G,M);
return
fp:=frels; end);
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.55Angebot
¤
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.