############################################################################# ## ## 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 ##
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 11
local w, p () then
# convert lists in to word/module pair if
v fi# <mx> contains the tail of <x> if []
u : rec word : u,tail: [ );
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 7
java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 0
,o , ,word ]:pl+2java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 29 fi rw] ;
# if <u> is trivial return <v> (pcgs c ; if0=uword)and Lengthp : 0;
return v;ml]=l2java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 fi;
od; if0 = Lengthreturn rec word=w tail : mx;
u for i in############################################################################# if IsBound(v#F CollectorSQ( G, M, isSplit ## if (.tail[] then
u.tail[i] : r, pcgs, o ,j, word, ,; else
u.tail[i] := v.tail[java.lang.StringIndexOutOfBoundsException: Range [0, 41) out of bounds for length 0 fi; fi;
;
return u; fi;
<u> into <x>
ist;
n := Length(java.lang.StringIndexOutOfBoundsException: Range [0, 17) out of bounds for length 12 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 r :[;
# get stacks
w := C.wstack;
p := C.pstack;
c := C.cstack;
m: .stack;
# put <v> onto the stack
w[1] := (r k )
p1]= 1;
c[1] := 1;
m[1] := ShallowCopy(v.tail);
# run until the stack is empty
l := 1; while0 ;
# remove next generator from stack
g := w[l Gcoll.java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
# apply generator to <mx>#
Gcoll.wstack := []; if ( G)then
# we use the transposed for technical reasons
mxi]: moduleg []java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 fijava.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 23
.list: o := RelativeOrders( pcgs)
# raise current exponent
cl =c[+;
#ifexponent java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 32 ifwl[]] [l
# reset exponent
cjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# move position
p[]: [l +2;
]]java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46 if Length(
# modify tail (add both tails)
l1 : ()
:ml]java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 for java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 if Gcoll.estack :=
=java.lang.StringIndexOutOfBoundsException: Range [0, 27) out of bounds for length 23
i :mxi+[]; fijava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 elifIsBoundm # we can avoid
i] : ml[];
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
( ., (i^2-i)/2 + ifIsBool(M ;
add
in [l1+ .l2]do if
i : m[]i]; fi;
od;
java.lang.StringIndexOutOfBoundsException: Range [16, 13) out of bounds for length 13
# and unbind word
l := l - 1; fi; fi;
# now move generator to correct position java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
i in [n,n- . + ] do if x[
l := l+1;
w[l] := C.relators[i][g];
c[l] := 1;
p[] :=;
l1 := (i^2-i)/2+g; if inC. if IsBound(mx[java.lang.StringIndexOutOfBoundsException: Range [0, 36) out of bounds for length 15
else
mx1] .java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 fi; fi;
m#############################################################################
l2 =[; if not l1 inInstallGlobalFunctionAddEquationsSQ ] fori [ .t1 java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
[1.d ]
j in[2t1[]eq
=l1
ji java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
c[l] := 1;
p[l] :
m[l] := l2java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
od;
x[i] := 0; fi;
x [java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
# raise exponent
xg [ 1;
else if x[g] = C.orders[g] then
x[g] := 0;
C.[]]<
l1 := C.relators[g][ ; for i in [ 1, 3
xl1i]: l1[ [ieqw[ ) 0=Lengthi)
v: [;
: (^2g)2;
notl1 . then if IsBound(mx[l1]) then
mx[]: else
mx[l1] := C.mone; fi; fi; fi;
od;
# and return result
w =[; for i in [ 1 .. Lengthodjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 if x[i] <> 0then
Add( w, i );
( ,x])java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 fi;
od;
return rec;
odjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
############################################################################# ## #F CollectorSQ( G, M, isSplit ) ##
InstallGlobalFunction(CollectorSQ##
local r, pcgs, o, java.lang.StringIndexOutOfBoundsException: Range [0, 27) out of bounds for length 18
# convert word into gen/exp form ,d , ,i, n, ,w;
word := function( pcgs, #
local r, l, k;
( andew)do
: Lastx in[ ..avoid do else
l := ExponentsOfPcElement( pcgs, w );
r := []; for # generated p
l]>
Add( r, k );
Add( r, l[k] ); fi;
od;
return r;
;
# convert relators into list of lists if IsPcgs =1
pcgs := G; else
pcgs := # blow up vectors
r := [];
o := RelativeOrders( jin[1. eqjava.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 44 for i else
[] : ]java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 for j not Cavoidthen
r[ =eq(.java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 59
;
od;
# create collector for Gjava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 31
Gcoll : .ystemw]: x Lengthv
Gcoll eq ;
Gcoll.orders :java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# create stacks for#############################################################################
Gcoll.estack
Gcoll.pstack := []#F SolutionSQ( C, eq )
Gcoll.cstack := [];
.mstack : ]java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
# create collector list
Gcoll: java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#in we java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 49 if IsBool java.lang.StringIndexOutOfBoundsException: Range [37, 35) out of bounds for length 42
fi;
r := ShallowCopy(Gcoll);
# create module gens (the transposed is a technical detail)
rjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
d: ..Cvoiddimension,w;
r.mzero
# add avoid
r.avoid := [for d java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 if isSpliti =java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
k := Characteristic ifj= for i in [ x[j]:= -od for j in [ 1 .. i ] do
if Order(pcgs[i]) j Add(, java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 # was: r.orders[i] <> k and r.orders[j] <> k then
AddSetfor in .pos[] do fijava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
od; =eqdimension(.java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 12
odjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 fi;
# and return collector
return r; end );
############################################################################# ## #F AddEquationsSQ( eq, t1, t2 ) ##
( AddEquationsSQ, java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 11
local i, j, l, v, w, x, n # normalize system
# if <t1> = <t2> return if t1 = t2 then return; fi;
:=tj[]java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
t1 := tj]:=ShallowCopy []) for di java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18 if IsBound(od; if IsBound(t1[i]) then
t1[i] := t1 # and return else
[i =-t2java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
; fi;
odjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
# make lines
l := List( eq.vzero =vzero[1];
v := []; for i in [ iin if IsBound( n:(()
if t1[i collect equations in <eq>
[j]i]: if j> then
AddCoeffs( l[j mzero =C.zerojava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
( v, ; fi;
thC)then fi;
od;
# and reduce lines # construct null vector
n:[
x : i [ 1 ..els ]do
Append( n, eq(,q. ) if0<v then w : (-)n(x[]) fi
java.lang.StringIndexOutOfBoundsException: Range [0, 13) out of bounds for length 0
c od; for i in.nrels ]
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
x[i] := i (j-1) iin n -1 .1]
AddCoeffs(od;
ShrinkRowVector(x[i]); if =]
Unbind xin w2=(C [[][,])java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63 fi;
java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
iodjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 fi;
;
v := Length(x); #############################################################################
od;
#F TwoCocyclesSQ( od
eq.system[w] := xInstallGlobalFunction#java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
local pairs,i j , w2 eq,p,;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
od; end ;
############################################################################# ## #F SolutionSQ( C, eq ) ##
InstallGlobalFunctionSolutionSQ function(C,eq )
local x, e, d, t, j, v, i, n, p, w;
# construct null vector
n := []; for i =(^2)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
, eq.zero );
od;
# generated position
# precalculate
j := for i in [ 1 .. for i in [ 2 .. n if not i in C.avoid then
C.unavoidable[i] := j;
=java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 fi;
od;
# blow up vectors
w := [];
j [ .Length(s)]o if IsBound(eq.system[j]) then
v := for k in [ n, n CollectedWordSQC i1,ip1 )
[j]do if not i in C.avoid then
p := eq.dimension*(C.unavoidable[java.lang.StringIndexOutOfBoundsException: Range [0, 54) out of bounds for length 43
vp.+eqsjava.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 75 fi;
od;
ShrinkRowVector(v AddEquationsSQ ,., java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
t ;
AddSet( w, Length(v) );
i
od;
# normalize system
v : 0*q.zero1]java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 for in n- . do for j in w do if j > i : (C (C,[,1,ip1] )java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
p := t[j][i]; if = -] j])
=java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
AddCoeffs( t[j], (" ^- >ip"java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
ShrinkRowVectorj]java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 fijava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 fi;
od; fi
d := #############################################################################
v:
e := eq.vzero[1]^0; for i inInstallGlobalFunction(, function(C ,Mjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
x := ShallowCopy(n
[]:=; for j in w do if j >= w2 =C ( ,,i],
x[j] := - R: fi;
;
( ,x)java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
od; if0 = Length(C.avoid) [][ = .;
return v; fi;
# construct null vector
n := [] for i in [ 1 .. eq.nrels ] do
Append( n, eq.vzero );
od;
# construct a blow up matrix
i := x : i^i) j; for j in [ 1 .. eq.nrels ] do if not j in C.avoid then
Append( i, (j-1)*eq.dimension + [
od;
# blowup the vectors
e := [];
;
d{i} := x;
(e,d ;
od;
# and return
return e; end );
############################################################################# ## #F TwoCocyclesSQ( C, G, M ) ##
r : Crelators[i]j]java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
local pairs, i, j, k, w1, w2, eq, p, n;
# precalculate (ij) for i > j
pairs := List( [1..n], x ; for i in java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 7 forj [1. -1
pairs[i][j] := CollectedWordSQ( C, [i, i in 1. n ]
od;
od
# consistency 1: k(ji) = (kj)i
,1.1do for j in [ odjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15 for k in [ n, n-1 .ord <w then
w1 := CollectedWordSQ( C, [k,1], pairs[java.lang.StringIndexOutOfBoundsException: Range [0, 56) out of bounds for length 12
w2 := CollectedWordSQ( C, ; if w1.word < );
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 else
AddEquationsSQ( eq, w1 fi;
od;
od;
od;
#
java.lang.StringIndexOutOfBoundsException: Range [23, 21) out of bounds for length 61
n,,MI ,i ,ek r ;
p := C.orders[j];
w1 : fijava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
: [;
+1/;
[i1 if w1.word <> w2.word then in [1. ] java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
Error( ; else
(eq,w1., w2.tail ) fi;
od;
od;
# consistency 3: k (i i^(p-1)) = (ki) i^p-1 for i in [ n, n-1 .. java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
:=Ci in do for C = , )
w1
(C,[,]][,-] ;
java.lang.StringIndexOutOfBoundsException: Range [0, 14) out of bounds for length 6
[i,p-1] =; if w1.##
Error( "k i^p <> (ki) i^(pod; else
AddEquationsSQ( eq, w1.tailelse 0java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
od;
od;
consistency 4: (i i^(p-1)) i = i (i^(p-1) i) for iin[n,n- .1 ] do
p
w1: CollectedWordSQ , CollectedWordSQjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 0
[i,1] atorsi]j# ( G, M)
w2: (C i if <
"generic method for pc" if w1 ]java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 function(ein [1. [+]] do else
AddEquationsSQ( eq, m := M[r[kjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 fi
od;
nd
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 6
############################################################################# ## #F TwoCoboundariesSQ( C, G, M ) ##
InstallGlobalFunction( TwoCoboundariesSQ, function( C, G, M
local n, R,MI j in[1.r do
# start with zero matrix
n := Length(Pcgs( G ));
R := [];
r := *(n+1)/2; for i in [ 1 .. n ] do
R[i] for j end )
R[i][j] := C.mzero;
od;
od;
TwoCoboundariesSQ(C,G ) for j [1 .n ]do for i in [ j .. n ] do
olen,g
# power relator if i = j then
m : .mone for e in [
Rjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
od;
p=(,,) else
R[i][x] := R[i##
R[j][x] := R[j][x]"java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 35
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 13
# compute fox derivativesC : mapped:=function(l
m := C.mone;
r := C.relators[i][j]; if r#############################################################################
## end
R[r[k #
m : M[[k]]* m
od;
od; fi local v,tailipjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
od;
od;
one
m: ]java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
r :=n*n+)2; for i in [ 1homology based on rewriting fork in [ . d]do
e := []; for in[1
Append( e, R[ tail={iLength(java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
od;
);
od;
od;
# compute a base for <m>
(; end );
############################################################################# ## #F TwoCohomologySQ( C, G, M ) ##
z := FlatList( fijava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
local cc, cb;
if Length( return [rdv;
cb := TwoCoboundariesSQ( C, G, return rec(group :G,
Length(.void) 0then
cb fi;
cohom:
java.lang.StringIndexOutOfBoundsException: Range [37, 14) out of bounds for length 60 fijava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 fi;
return cc; end );
function( G, M )
local C;
C := CollectorSQ( G, fp:mon
thewordin :() end );
############################################################################# ## #M TwoCoboundaries( G, M ) ##
java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 31 " <)
true,
a atpositionjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 0,
function
;
: CollectorSQ(G ,false );
,M ) end );
# non-solvable cohomology based on rewriting
############################################################################# ## #M TwoCohomology( G, M ) ##
( TwoCohomology; "generic method for java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 35
j:java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 73
oup ] 0,a=nemat
function(G M )
local C, d, z, java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
: ( G , )
d :m [j[]:o1;
d :returna;
z: (List [1.d # rules that describe formal inverses, or delete generators of order 2 get no
co ls. # normalform word and collect the tails
collectail:function(rd)
:=SubspaceNC(co )
v:=List,->ero;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
collector :1
omology:truejava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
cohom :=
NaturalHomomorphismBySubspaceOntoFullRowSpace(co,cb),
presentation : if IsIntp)and rulpos[]> then
# code for generic 2-cohomology (solvable not required)
InstallMethod =({1.1}rulesp]] # Length of r1 1 That is generator used!
[IsGroup and IsFinite,IsObject],0, function(G,mo)
java.lang.StringIndexOutOfBoundsException: Range [23, 5) out of bounds for length 75
len1,l2,m,
findtail,colltzv[]=[p()
c,nvars,htpos, fi;
nononeolen,;
# collect the word in factor group
colltz:=function(a)
local i,p;
# collect from left
i:1; while i<=Length(a) do
# does a rule apply at position i?;
od;
IsInt(p)then
a:=Concatenation(a{[1 ogens::(1)x(x;
{i+ength(p# if false then
i:=Maximum(0,i-mal); # earliest which could be affected fi;
i:+;
od;
pcgsPcgsker;
# if IsBound(mon!.confl) then
# matrix corresponding to monoid word
mapped:=function(list)
local a,i;
a:=nemat; for i in list do if :=cgsByPcSequenceFamilyObj# else new approach with RWS from chief series fi;
od;
return a;
f:Rangef)
# normalform word and collect the tails
collectail:= tzrules:=Listmon)x-List,LetterRepAssocWord);
local taili;
v=rulesx->)
# collect from left
=1java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
(wrd)do
# does a rule apply at position i?
p:= java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
if IsInt(p)
p:=rulpos gens:java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
([[].);
PreImagesRepresentative(,)))); # matrices for monoid generators if p in hastail :GroupHomomorphismByImagesNC =[.]-ot(x)java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
IsIdenticalObj([]zero)then
v[p]:=mapped(tailjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 else
v[p]:=v[p] :MutableBasis,]zeroq; fi; fi;
:((); fi;
o=etterRepAssocWord(nderlyingElement( =l1java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
return [wrd,v]; end
rules that describe formal inverses, or delete generators of order 2 get no
hastail:]java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
# 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:List,);# free group elements/words
mon:=ConfluentMonoidPresentationForGroup not IsOne(m[1]*Subword(m[2
fp:=mon.fphom;
fpg:=Range(fp);
fm:=mon.
mon:=Range v2j:=
m[]in GeneratorsOfGroup(reeGroupOfFpGroup( (d cheaplyjava.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90 # fi;
dag:= k<[]java.lang.StringIndexOutOfBoundsException: Range [34, 35) out of bounds for length 34
LetterRepAssocWord)));
mal:=Maximum(List ; for i in [1..Length(tzrules)] do
[i]1]i)
od;
oup),
x->PreImagesRepresentative(fp,x)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
hom:=GroupHomomorphismByImagesNC(G,Group(mo.generators),
model<failandnot IsZero(olvec*k) then :QuotientsmodelG[]java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
moker:= Error"deldoes fit)
l1:=GeneratorsOfGroup(fpg);
: java.lang.StringIndexOutOfBoundsException: Range [52, 21) out of bounds for length 52
]; for i in l1 do
=tterRepAssocWordUderlyingElementImagesRepresentativefm,)
o:=LetterRepAssocWordCloseMutableBasis(eqsImmutableVectorfield,);
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
formalinverse[j[1]]:=o[1];
od;
# rules that describe formal inverses, or delete generators of order 2 get no # tails.
hastail:=[];
rules:=[];
genkill:=[]; # relations that kill generators. Needed for presenation. for r in tzrules java.lang.StringIndexOutOfBoundsException: Range [0, 21) out of bounds for length 14 forif Length(len) java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
Add(rules,r);
([]>2or
(Length(r[1])=2 and (Length(r[m=xponentsOfPcElement(cgsm)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38 then
; fi; else Length of r[1] is 1. That is, this generator is not used!
m:=First( List(k,x->ImmutableVectorList(,x-Ijava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 0
x-ImagesRepresentativehomPreImagesRepresentativef
m:=List(m,UnderlyingElement); # free group elements/words
IsOne(m[*(2,1) # Does the relation make a generator redundant (by expressing it in thezero=; # other gens)? If so, remember relation as needed to kill this generator, but # no influence on Cohomology calculation (which just uses the rest)
#rk:=0; thengenkillr) fi; fi; fi;
rulpos:=List(java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
,x- j 1.ules)do
:=ValueOption("odel";
:=erovec; for in1.engthw) java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
pre:List(gens,->reImagesRepresentativeqx)
ker:java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 21
pcgs:=Pcgs(ker);
:GModuleByMats(nearActionLayerGroupp)cgs).eld);
MTXIsIrreduciblem;
miso:=MTX. v1:=c:c2;:c1;
new:=java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 9
pcgs:=PcgsByPcSequence(FamilyObj(One(java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 13 # now calculate the vector
solvec:=[];
one=ne(odel)
m:= formalinversei> then
mats:(GeneratorsOfMonoidmon)
x>ImagesRepresentative(m,
PreImagesRepresentative(,x)); Elements java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 48
nonone:=[1..Length(mats) v2:[2]
pre:;
onemat:=One(G); for i 1. v2j:[]java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
r:=rules[hastail[i] v2:indtail([]],;
m:=LeftQuotient(mapped(r[2]),mapped(r[1]));
m:=ExponentsOfPcElement k inhastaildo
solvec:=Concatenation( Assert(0,Length(qs)0 k>[k
od; fi;
onemat:=One(for in1.]
:(emat[)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 27
G=roupWithGenerators
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 15
PreImagesRepresentative(fm,x)))); # matrices for monoid generators new= ifmodel<and IsZeroolvec)
one:=One(mats[1]);
nonone:=Filtered([1..Length(mats)],x->not IsOne(java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
zero:=zerovec;
dim:=Length(zero);
nvars:=dim*Length(hastail); k:(eqsk;
#rk:=0;
zeroq(fieldListWithIdenticalEntries(nvars,erofield));
aijava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
olen:=[-1,0]; for i in [1..Length(rules)] do
Info(InfoCoh,1,"First rule ",i,",
l1endjava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
for iin hastail do forodjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
l2:=rules[j][1];
m:=Minimum( Lengtholen)3and for in [.m-]do# possible overlap Length
start:=len1- olen[ength killrelators:=List,i>(([)apped2(2], if ([.]-l1[tart+] # position of relators with tails in t
# apply l1 first
new:=ConcatenationTriangulizeMat()
eqs:MutableBasis(ield,
java.lang.StringIndexOutOfBoundsException: Range [41, 27) out of bounds for length 27 if iin then
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0 fi;
# apply l2 first
:=Concatenation(1{1.-],ulesj[2];
v2:=collectail(new); if :(rules),ield; #else Print("Both reduce to ",c,"\n"); fi;
v2: ifIsInt(p)and rulposp]> eqs=((qs) java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
v2[j]:=v2[j]+one; fi; if v1<>v2 then# If entries stay zero they are identical (and thus test cheaply)
c:=List([1..dim],x->ShallowCopy(zeroq)); for k in hastail for i in [1..Length(wrd)] d if v1[k]<>v2[k] w=w*mats[;
new:v=[; fi; for l in [1..dim] do if not IsZero(new ;
creturn; fi;
od; fi;
iin1.(ats) for k in c do
if# inverses of generators
Error("model does not fit"); fi; #AddSet(eqs,ImmutableVector(field,k));
[2]; #Add(alleeqs,ImmutableVector(field,k));
k:=SiftedVector(eqs
IsZerok)then
Appendn,v2)
autom:=Invers(air[])
;
fi;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
od;
Add(olen,Length(BasisVectors(eqs))); if <GeneratorsOfGroup(G) then # if twice stayed the same after increase
olen :PreImagesRepresentativejava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
olen[olen]>[ength(len-3]then
k:=List(BasisVectors(eqs),ShallowCopy);;
TriangulizeMat(k);
eqs cohomology=ew;
List(kjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0 fi;
od;
#eqs:=Filtered(TriangulizedMat(eqs),x->not IsZero(x));
eqs:=hallowCopy(asisVectors(qs); if Length(eqs)=0then
eqs:=IdentityMat(Length(rules),field); else
eqs# collect from left
eqs:=java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 11 fi;
# Now get Coboundaries
# different collection function: Sum up changes for generator i
findtail:=function(wrd,nums,vecs#
local a,i, Add(ewLeftQuotient([]1],apped2(ules[]2))
a:= tailwrd[+Length[][].Length(wrd)]} forin[.ength(d)do
p:=Position(nums,wrd[i]); if# relators to kill superfluous generators
v:=vecs[p];
o
v:=v*mats[wrd[j]];
od
a:=a+v; fi;
od;
return; end;
bds:=[]; for i in [1..Length(mats)] do if java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
i:1; for i<Lengthwrd) =java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
r:=[k,-k*mats[java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 17
new:=[]; for j in hastail do
v1:findtailr[]1
v2:=findtail(rules p=rulpos[] [,;
;
od;
new:=ImmutableVector(java.lang.StringIndexOutOfBoundsException: Range [0, 34) out of bounds for length 12
Assert(0,(Length(eqs)>0 and SolutionMat(eqs,new)< :=-[({(rd})java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
Add
od; fi;
od;
bds:=Filtered( =*mats]
bds=(bds,Immutable;
if gens<>GeneratorsOfGroup(G) java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
G=() fi;
r:rec(roup:G,odule=mo, :left]
;
new:=List(return [wrd]java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
r.cohomology:=
new:=[];
one:=One(FreeGroupOfFpGroup(fpg));
k:=List(GeneratorsOfMonoid(mon),
x-># debugging code: Construct group and work java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 30 # matrix corresponding to monoid word
# ext:=mage()
local];
a:=one; for i in list do
a:=a*k[i];
od;
return ;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
for# for i in wrd do # rule that would get the tail # return w;
od;
r.presentation:=rec(# v:=Concatenation(List([1..Length(mats)/2],x->[v[x],v[x]^-1])); # relators to kill superfluous generatorsimagemonwords:autom!;
killrelators:=List(genkill,i->LeftQuotient(mapped2(i[1] # position of relators with tails in tzrules
monrulpos:=java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 1 # od;
# normalform word and collect the tails
r.# if new<>zy then Error("one");else Print("onegood\n");fi;:(fp)
localvi,,,,ail;
v=;
# collect from left
i:=1; while i<=Length(wrd) do
# does a rule apply at position i?
p e:[;
if IsInt(p) and rulpos[p]<>fail then# normalform word and collect the tails
p:=ulpos[]
tail:=wrd{[i+Length(rules[p Length(a)0thenreturn;;
wrd:=java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 7
if p in hastail then
w:=zy{java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 for j in tail do
w:=w*mats[j]; Length)0
od;
v:=v+w;
;
i=Maximum(,-) # earliest which could be affected fi;
i:=i+1;
od;
return [wrd,v]; end;
in java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
r.colltz:=colltz;
# inverses of generators
r.:(,y)
colltzformalinverse())java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
-r.tailforword(Concatenation(wrd,java.lang.StringIndexOutOfBoundsException: Range [0, 43) out of bounds for length 0
[2]]; end i:+;
r.return wrd];
local autom,mat,i,imagemonwords,imgwrd,left,right,extim,prdout end;
:=nverseGeneralMapping1)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
# cache words for images of monoid generators if not IsBound(autom!.imagemonwords) then autom!.imagemonwords:=[]; fi;
:=!imagemonwords
(nr)
local ;
v=+[2j[];
w:w[]
a:=PreImagesRepresentative(fm,GeneratorsOfMonoid(mon)[nr]);
a:=PreImagesRepresentative(fp,a);
:java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
a:=ImagesRepresentative(fp,a);
a:=ImagesRepresentative
d(nderlyingElement)
a:=colltz(a);
[]a
;
n; end;
# normalform word and collect the tails
collectail:=function(wrd)
local v,i,j,p,w,tail;
v:=zerovec;
ifor [.hastail) java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 while i<=Length(wrd) do
# does a rule apply at position i?
=RuleAtPosKBDAG(,rd,
if IsInt(p) and rulpos[p]<>fail then
p:=rulpos[ mats:=List(Genera(m,
tail:=wrd{[i+Length(rules[p][1])..Length(wrd)]};
java.lang.StringIndexOutOfBoundsException: Range [0, 1) out of bounds for length 0
left=(oncatenation(left]r])java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
w:=zy{dim*(htpos[p]-1)+[1..dim]}; for j in tail do
w:=w*mats[j];
v:#debugging :Constructgroup andwork fi;
i:=Maximum(0,i-mal); # earliest which could be affected fi;
i:=i+1;
;
return [wrd,v]; end;
prdout:=function(l)
local# w:=One(ext); # for i in wrd do
v:=zerovec; for j in l do
v:=v*mapped(j[1]);
w:#
v:# v:=List([1..Length(mats)/2],x->myprd(imgwrd(2*x-1))); # new generators
w#v:CList([1.(ats)],-[[x,x]^-]))
od;
return [w,v]; end;
mat:=pair[2;
new:=[];
# inverses of generators
myinvers:=wrd->[colltz(formalinverse{Reversed(wrd)}),
-collectail(Concatenation# if IsOne(pair[1]) and l[]:
# images of generators
extim:=List([1..Length(mats)return ImmutableVector(mo.fieldnew)
# collect inverses and interleave generators/inverses
extim:=Concatenation(List(extim,x->[[x,java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 42
for i in [1.. =BindGlobal"(mats) # evaluate rules in images
left:=prdout(extim{rules[hastail[i]][1]});
# invert left
v :rec:=,ggens=gens{1.])
left:=[v[1],v[2]-left[2]/mapped(left[1])];
right:=prdout(extim{rulesAdd(,;
# quotient left^-1*right
:[]java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
j 1.]java.lang.StringIndexOutOfBoundsException: Range [28, 29) out of bounds for length 28
(ew-[]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]));
# # 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,new); end;
return r; end)
BindGlobal( "MatricesStabilizerOneDim", function(field,mats java.lang.StringIndexOutOfBoundsException: Range [5, 4) out of bounds for length 62
eone,r,c,s,;
e:=[];
one:=One(mats[1]); for m in mats do
r:= :=roupHomomorphismByImagesNCGGroup(java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 20
a:List(,-NullspaceMat(-*one)
# we a do tonormalsubgroup upto .
Add(,)
od; for c in Cartesianelse
:[collect1]collect[]+[2]mats[-i][i]
is:=SumIntersectionMat(is,c[i])[2];
d; if Length(is)>0then
returnendjava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6 fi;
;
return falsebas:Pcgs(;
nd)java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
BindGlobalList,->(bas):))
local A(3,orAll(ct,sBijective);
n:Lengthl;
ran:=[1..ba:a;
r:=0;
d=[;
p:=[] gi:SemidirectProduct ; # base bit for i in [1..n] do for j in ran do
rj:r+l :]java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
od;
Add(d,ran+r);
r #vector:ImagesRepresentative(mbeddingg,2b[],
od; # permuter bit
:PermList(p)java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 6
return p; end);
BindGlobal("PermrepSemidirectModule",function :=GeneratorsOfGroup(r.presentation.roup);
local hom,mats,m,i,j,mo,bas,a,l,ugens,gi,r,cy,act,k,it,p; if not MTX.java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0
p=Size(module.)java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
Error(mustbeprime";;
k:Lengthg;
hom=GroupHomomorphismByImagesNC(,Group(module)java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
GeneratorsOfGroup(G),module.generators); # we allow do go immediately to normal subgroup of index up to 4. # This reduces search space
it:=DescSubgroupIterator(G:skip:=LogInt bas:BaseSteinitzVectors =java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 47
m= :oncatenationbasfactorspace.);
# assume we have a generating set for the SDP consisting of the
InfoInfoExtReps,,Index reached"Index(G,java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
,writeout module "; # alternative, boring version
mo:AbelianGroupListWithIdenticalEntries ;
bas:=Pcgs(mo);
act:=List(module.generators,m-
GroupHomomorphismByImagesNC(mo,mo,java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 13
Listm,-PcElementByExponents(as,):oassert));
Assert(3,ForAll(act,IsBijective));
a:=Group(act);
SetIsGroupOfAutomorphismsFiniteGroup( (rels,[ensi*gens[+1,One()])
gi:=SemidirectProduct(G,GroupHomomorphismByImages(G,a,
GeneratorsOfGroup(G), for i [n1,n+.(-]do
r:=rec(group:=gi,
ggens:=List(GeneratorsOfGroup(),->
veEmbedding(gi,1),x)), #vector:=ImagesRepresentative(Embedding(gi,2),bas[1]),
basis:=List(bas,x->ImagesRepresentative(Embedding(gi,2),x)));
Assert(0,Size(gi)=Size(G)*p^module.dimension);
return r;
elif Size(Core(G,m))>1then
Info(InfoExtReps,4,"Index ",Index(G,m)," has else
od;
mats:=List(GeneratorsOfGroup(m),
x->TransposedMat(ImagesRepresentative(hom,x^-1)));
a:=MatricesStabilizerOneDim(module.field,mats); if < then # quotient module
vector submodule basis
od;;
NullspaceMat(ransposedMat{1]))
bas:=Concatenation(java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 25
ValueOption""> ; # complement gens, and one element of the module.
cy:=CyclicGroup,p) (xl]
ugens:=[];
# also transversal chosen in complement
:(G)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
Gr,);
act:=List(GeneratorsOfGroup( wl]:Crelatorsi[]; #l:=ListWithIdenticalEntries(Index(G,m),()); form[ = ;
l:= fi for j in [1..Length # matrix for Schreier gen
a=ImagesRepresentative(hom,
r[j]*G. l1 =C.elators[[]java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39 # how does it act on bas[1]-span, get factor
a:=Int(SolutionMat(bas ; # write down permutation that acts as mult by a if if Is(xl]
l[j]: else
l[j]:=java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 15
=]java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
od;
Add(ugens,WreathElm;
od
# module generator for j in [1..Length(r)] r ,, j word , ifNrMovedPoints()Njava.lang.StringIndexOutOfBoundsException: Range [53, 50) out of bounds for length 59
l[j]:=
cy^Int(SolutionMat(bas,bas[1]/ImagesRepresentative(hom,java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
od;
Add(ugens,WreathElm(p,l,fi
gi ;
Assert(0,Size(gi)=p^java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 23
;
a:=java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 11 if . : ;
gi:Gcoll: ];
ugens:=List(ugens,x- estack: ] fi
;
r:=rec(group:=gi,ggens:= .=Mgeneratorsi>MT();
# compute basis
bas:=bas{[1]};
gi:ugens{[..];
[1};
i:=1; whileLength()<module. do
j in abas[]odule.[]
a:=bas[i]*module.generators od if SolutionMat(bas,a)=fail then
Add(bas,a);
Add(ugens,ugens[i]^gi[j]); fi;
od;
i:=i+1;
od;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
r.basis:=List(Inverse(bas),x->LinearCombinationPcgs(ugens,x));
return r; fi; fi;
until false; end);
(if r.presentation.killrelators]then
local best,u,v,start,cnt,runtime;
runtime:=java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
=(;
best:=TrivialSubgroup(godjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
s:=List((mon)String;
: CollectedWordSQ( C, [k,1], pairs[j][i] );
cnt:=cnt+1;
u:= ((""tringi,-";
Error k(i > (kj)i )
v:= AddEquationsSQ eq,w1.tail, w2.tail );
u:=ClosureGroup od;
inversejava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 if IndexNC(g,v)<IndexNC(g,best) then best:=v;fi;
od;
return best; end);
InstallGlobalFunction(FpGroupCocycle,function(arg)
local r,z, (
it,hom,trysy,prime,java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 15
tab,tab0,evalprod,gensmrep,invsmrep,zerob,step,simi,simiq,wasbold,
monordmnmelmvec,killgens,frew,fffam,ofgens,rws,ormalinverse;
# function to evaluate product (as integer list) in gens (and their
invs mats
evalprod:=function(w,gens,invs,mats)
localnew,;
new:=[[],zerob]; forAddEquationsSQ eq, w1.tail, w2.tail ); if i>0then
collect:= : ojava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 26
new[[]collect[]+ew2*mats[]+[i ,[,1,
IsEvenInt()thennew:^-1;;
collect=.(oncatenationn[]invs[-][],)java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
mats[-]invs-]]java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65 fi;
return new; end;
melmvec:=function(v)
java.lang.StringIndexOutOfBoundsException: Range [9, 7) out of bounds for length 14
w:=One(f); for i in [1..Length(v)] do
([]; ifprime2or *2<prime then
:w relators else
a:=prime-a;
w:=w*gens[2*i+mn]^a; fi;
od;
return w; end;
# formal inverse of module element
:, in[.dim]do
local l,;
for mon!confl=tzrulesjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 if IsEvenInt(i) then Add(l,i- while()( IsZero( :(; elseAdd,1);
od;
returnfi end;
if ValueOption("normalform")<>true then
mon:=fail; else # Construct the monoid and rewriting system, as this is cheap to do butjava.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 38 # 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);
= if not IsBound(autom!.imagemonwords!.:[];;
fffam:=FamilyObj(One(FreeMonoidOfFpMonoid(mon :autom!.;
:Stabilizernjava.lang.StringIndexOutOfBoundsException: Range [0, 41) out of bounds for length 24 # generators that get killed. Do not use in RHS
killgens:=Filtered(GeneratorsOfMonoid(mon)
ReducedForm(frew,UnderlyingElement(x)));
killgens:=Union(List(killgens,x->LetterRepAssocWord(UnderlyingElement(x))));
rels:=[]; # inverse rules for i =;
Add(rels,[gens[i]*gens[i+1],One(f)]);
Add(rels,[[+]gens[]One(];
od;
# module is elementary abelian for i in [mn+1java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if prime=2then
Add(rels,[gens
Add(rels,[gens[i+1],gens[i]]); else
+12) # power that changes the exponent sign
Add(els[[^j,gensi
Add(rels,[gens[i+1]^j,gens[i]^( e=(FamilyObj(od; fi; for j in [ifijava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
Add(rels,[gens[j]*gens[i],gens[i]* fi;
Add(rels :=izefp) # never try again
od;
od;
# module rules fori 1.]do if not i in killgens then
j :[java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
new:=r.module. i:=IsomorphismFpGroue:cheap;#java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61 if IsEvenInt(i) then new:=new^-1; fi;
new:=new[QuoInt(j-mn+1,2)]; if IsEvenInt(j) then new:=-new;fi;
Add(els,gensj*[,gens[](ew)]java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
od;
od;
# rules with tails for i in =->[f{wrd},
new IndexNC(e,)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
new:=List java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
new[:new[]({(-1)*dim1.*};
Add(els,)java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 # as manageable
# Any killed generators -- use just the same word expression if r.presentation.killrelators<>[] then# evaluate rules in images for inFiltered(killgens,IsOddInt) do
new:=AssocWordByLetterRep(fffam,[i]);
new:=[ew(,];
new:=List(new,x->MappedWord(x,
ofgens,gens{[1.. :prdoutextim{ruleshi]2};
Add(rels,new);
RemoveSetfi
od; fi;
(ew-2*;
=java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 7 if HasLevelsOfGenerators(ord) then
ord:=WreathProductOrdering(f,
Concatenation(# hom:=IsomorphismPermGroup(ext);
e<>ailjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 else
ord:=java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0
# myprd:=(wrdjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
ListWithIdenticalEntries(2*dim,1)));
# w:=w*exte[i]; else
ord:=WreathProductOrdering(f,
Concatenation(ListWithIdenticalEntries(mn,2),
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 # monrulpos.) for i in rels do if Length(i[2])=0 and Length(i[1])=2
and Length(Set(LetterRepAssocWord(i[1])))=1then
new:=LetterRepAssocWord(i[1])[1]; ifIsOddInt()
([new+][ew];
; fi;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
# temporary build to be able to reduce
ctorFreeMonoidByRelations(,relsjava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
=(mats[1]);
# handle inverses that get killed for i in killgens do
new:=AssocWordByLetterRep(fffam,[i]);
w, r:=Set(RootsOfUPol(field,java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 61
new:=MappedWord(new,ofgens,gens{[1..mn]}); # now left multiply with non-inverse generator
j:=ReducedForm(rws,gens java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
j:=ReducedForm(rws,formalinverse(j)); # invert
Add(els,[ensi]j)java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
od;
mon:=FactorFreeMonoidByRelations(f,rels);
s=(amilyObj((mon)ordi) ;
(rws);
MakeConfluent(rws); # will add rules to kill inverses, if needed
java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 0 fi;
# now construct the group
,String;
erob=(.fieldjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
ListWithIdenticalEntries#
n:=Length(ogens);
gensmrep=(java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 7
x->[LetterRepAssocWord( od;
ElementOfFpGroup(FamilyObj(One(Range :P(/(ConcatenationPermuteddm)
module
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
x->[[],x]));
invsmrep= matsc,L(c,
fori [.]do
o=Group(coduleLengthcohcohomology);
od;
f=FreeGroup()java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
gens:=GeneratorsOfGrouphom:GroupHomomorphismByImagesNC,roupmg)java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
rels: # we allow do go immediately to normal subgroup of index up to 4.
ntation.elators)
it=(:skip:=LogIntS############################################################################# for j in [1..dim] do
new:=new*gens[n+j]^Int(z[(i-1)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
odjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
Add(rels, [andIsFiniteIsObject]
od; for i in [1..Length(r.presentation.killrelators)] do
:=MappedWord(.presentation.illrelatorsi]ogens,ens{[1.n};
Add(rels,new);
od;
for i in [n+1. (,x>(bas,x)noassert)returnList((ectorSpace..,cc.),
Add(els[ Assert3(,sBijective); for j in [i+1..Length(gens)] do
Add(java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 5
od;
od; for i in [1ggens=(GeneratorsOfGroup(),-
[1.]do
Add(rels,gens[n+j]^ #vector:=Im(Embeddingg (and )
LinearCombinationPcgs(gens{[n+1..Length(gens)]},r.module.generators[i][ocal java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
;
od;
:=f/;
SetSize(,(.roup*prime^mjava.lang.StringIndexOutOfBoundsException: Range [0, 41) out of bounds for length 5
simi:=fail;
:;
if mon<fail then
rels:MakeFpGroupToMonoidHomType1,)
SetReducedMultiplication(fpa=(module,); fi;
if Length(arg) # basis: supplemental vector and submodule basis
ule) then # make SDP directly
m:=PermrepSemidirectModule(r.group,r.module:cheap);
p=.roupjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 # test is cheap here, thus no NC
:(fpp,(fp,
Concatenationcy=(,p).1;# p-cycle else
g:=r.group;
quot:=nverseGeneralMappings)
*java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
gen
ListWithIdenticalEntries(r.module.dimension,One j*.gi)[ositionCanonical(r,[]G()];
hom:=GroupHomomorphismByImages(r.group,Group(r.module.generators# how does it act on bas[1]-span, get factor
odule.generators);
p:l[]=)
:=aximum100050*ndexNCpSylowSubgroupp,))) allow to enforce test coverage if ValueOption("forcetest;
if java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
mindeg:=Minimum(List(Orbits(p,MovedPoints(p)),Length)); fi;
it:=fail; while KernelOfMultiplicativeGeneralMapping))java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68 # we allow do go immediately to normal subgroup of index up to 4.
search space
repeat then # re-use the first quotient, helps with repeated subgroups iterator if=rgroup then
m:=r.group; else
m:p; fi; # avoid working hard for outer automorphisms
e:=Filtered(java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 # roughly 5 for 1000, 30 for 10^6, 170 for 10^9
x->IndexNC(m, if NrMovedPoints(R)NrMovedPoints
m=Last()java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
it:=DescSubgroupIterator(m:skip:=LogInt(Size(p),2
;
m:=NextIterator(it); # catch case of large permdegree, try naive first if Index(p,mgi:ugens[.k};
NrMovedPoints(^>p)then # take set stabilizer of orbit points.
e:=Set(List(Orbits(p,java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 28
m:=Stabilizer(p,e,OnSets); if IndexNC(p,m)>10*NrMovedPoints(p) then
m:= Add(ugens(gensugens[]^gi[]) fi; if IndexNC(p i=+1
m:=p; # after all..
wasbold ;
java.lang.StringIndexOutOfBoundsException: Range [0, 16) out of bounds for length 5
=; fi; fi;
Info(InfoExtReps,3,"Found index ",Index(p,m java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
e:=fail; if Index(p,m)>=mindeg and (hom=false or Size(m)=1 or
false<MatricesStabilizerOneDimm.,
List(GeneratorsOfGroup(m),
x->TransposedMatI(homx)-))then
Info(InfoExtReps,2,"Attempt index ",Index(p,m)); thenInfo(nfoExtReps,,"om is false);ijava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
hom<>false andIndexpm> # up to index 50 # the rewriting seems to be sufficiently spiffy that we don'tj=(jx-PreImage(,)); # need to worry about this more involved process.
# this might fail if generators are killed by rewriting
and Length(r.presentation.killrelators)=0 then
# Rewriting produces a bad presentation. Rather rebuild a new # fp group using rewriting rules, finds its abelianization, # and then lift that quotient
sub:PreImage(,);
tab0:=AugmentedCosetTableInWholeGroup(sub);
# primary generators
x n))
(,4"wrd=,wrd)
mgens:=List(mwrd,x->ImagesRepresentative(quot,x)) i=()and f do
nn=() if IsPermGroup(m) then
e:=SmallerDegreePermutationRepresentation(m);
mfpi:=IsomorphismFpGroupByGenerators(Image(e,m),
List(mgens,x->ImagesRepresentative(e,x)):cheap);
mfpi:=e*mfpi; else
mfpi:=IsomorphismFpGroupByGenerators(m,mgens:cheap); fi;
mmats:=List(mgens,x->ImagesRepresentative(hom,x));
i:=Concatenation(r.module.generators,
ListWithIdenticalEntries(r.module.dimension,
(r..imensionr..))
e:=List(mwrd,
xevalprodU(),
,,);
ei:=List(e,function(x)
local i;
i:=r.myinvers(x[1],z);
returnjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
);
# module relations for i [.dim]do fi for in1.-1do
Add(rels,Comm(gens[nn+i],gens[nn+j]));
od; for j 1..(gens) do
Add(rels m:SylowSubgroupprime;
nationPcgsgens{+1.n+im],[]i))java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
odjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
i:IsomorphismFpGroup:cheap;# only one TzGo
#extended presentation
for i in RelatorsOfFpGroup(Range(mfpi)) java.lang.StringIndexOutOfBoundsException: Range [0, 56) out of bounds for length 54
i:=LetterRepAssocWord(i);
str:=evalprod(i,e,ei,mmats);
Length(tr1)0thenError(";;
Add(rels,AssocWordByLetterRep(FamilyObj(One(newfree)),i)
/LinearCombinationPcgs(gens{[nn+1..nn+dim]},str[2]));
od;
newfree:=newfree/rels; # new extension
Assert(2, then
mfpi:=GroupHomomorphismByImagesNC(newfree,m,
GeneratorsOfGroup(newfree),Concatenation(mgens,
ListWithIdenticalEntries(dim,One(m))));
# module is irreducible).
:LargerQuotientBySubgroupAbelianization,:); if e<>fail then
step:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 while step<=1do # Now write down the combined representation in wreath
# this check is very cheap, in comparison. So just be safeGeneratorsOfGroup()-(x))
Assert(fi
x->IsOne(MappedWord(x,FreeGeneratorsOfFpGroup(fps),
GeneratorsOfGroup(e! :(::>)
if step=0then
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
GeneratorsOfGroup(e!.quot),
GeneratorsOfGroup(p));
=PreImage(m;
step:=2;
Info(InfoExtReps,2,"Small bit did= then else
Info ;
e:=LargerQuotientBySubgroupAbelianization(mfpi,m:
cheap :[+.]
eendjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 ##################################################### fi; fijava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
step:=step true[sGroup ,],
odjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
local coh;
else if simi=hen
w:=w*gens[2*i(VectorSpace..,ohczero)java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
simiq fi;
e:=LargerQuotientBySubgroupAbelianization(simiq,m); if e<>fail then
i=simi*(e);
j:=ImageifIsEvenIntlocal coh;
j:=List(Orbits(j,MovedPoints(j)),x->Stabilizer(j,x[else(l,1;;
j:=List(j,x->PreImage( return AssocWordByLetterRep(FamilyO)l;
e:=java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
iplicativeGeneralMapping(); fi.) fijava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
if e<>fail then # can we do better degree -- greedy block reduction?
nn:=e!.quot; if IsTransitive(nn,MovedPoints(nn)) then
repeat
ei:=ShallowCopynfrew=ReducedConfluentRewritingSystem)
MovedPoints(nn)));
SortBy(,--(); # long ones first
j:=false (rew,nderlyingElement);
i:1; while i<=Length(ei) String);
str:=Stabilizer(nn,ei[ mn:=Length(str); if Size(java.lang.StringIndexOutOfBoundsException: Range [0, 32) out of bounds for length 24
j:=ei[i]; fi;
i:=i+1;
od; if j<>false then
Info(InfoExtReps,4,"deg. improved by blocks " iin [1,..engthgens-]do
# actionon java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
i:ActionHomomorphism(nOrbitnnjOnSets),nSets);
j:=Size(nn); # make new group to not cache anything about old.
nn:=Group(List(GeneratorsOfGroup(nn),
x->magesRepresentative(i,x)),());
SetSize(nn,j); fi;
until j=java.lang.StringIndexOutOfBoundsException: Range [0, 29) out of bounds for length 21
Add(els[ens]^2,ne)]) ifAddrels,[ens[i+1]gens[i]])java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
Info(InfoExtReps,,"egree improved by factor ",
NrMovedPoints(e!.quot)/NrMovedPoints(nn));
e:=SubgroupOfWholeGroupByQuotientSubgroup(FamilyObj(fps),nn,
Stabilizer(nn,1))java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 fi
for j in +2.Length]do
trysy:=Size(fp); # never try again # can the Sylow subgroup get us something?
m=ylowSubgroup,rime);
e:=PreImage(quot,m);
Info(InfoExtRepsod;
i:=IsomorphismFpGroup(e:cheap); # only one TzGo
e:=EpimorphismPGroupforiin [.mn]do
e:=i*e; # map onto pgroup
j:=KernelOfMultiplicativeGeneralMapping(
InverseGeneralMapping(e)*quot);
i:=RandomSubgroupNotIncluding(Range(e),j,20000); # 20 seconds
Info(InfoExtReps,2,"Sylow found ",IndexNC(p,m)," * ",
IndexNC(Range(e),i)); if IndexNC(Range(e),i)*IndexNC(p,m)< # consider permdegree up to 100000 # as manageable then
e:PreImage,) #e:=KernelOfMultiplicativeGeneralMapping(
DefiningQuotientHomomorphism(); else
e:=fail; # not good fi; fi;
new:new[QuoInt(-mn+1,); fi;
until e<>fail;
i=;
quot:=DefiningQuotientHomomorphism(Intersection(e, fifjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
p:=Image(quot);
Info(InfoExtReps,1,"index ",Index(i,m)," increases factor by ",
Size(p)/Size(i)," at degree ",NrMovedPoints(p)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
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),
ListGeneratorsOfGroup(fp),x->ImagesRepresentative(quot,x)));
fi; # if we used factor perm rep, be bolder if IsPermGroup(p) then
new:=new* # Any killed generators -- use just theword expression
SetIsomorphismPermGroupfp,ew; elif IsPcGroup(p) fori in Filtered(killgens,IsOddInt) do
SetIsomorphismPcGroup(fp,new); fi; fi;
if HasIsSolvableGroup(.roup then
ofgensgens{1..n]})); 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)=1 and Size(coh.module.field)=2then # 1-dim space over GF(2)
return [coh.zero, return [coh.zero,cohord+1, fi; # make basis
bas:=Concatenation(coh.coboundaries,coh.cohomology ord:WreathProductOrdering(,
ran:=Length(coh.coboundaries)+1..Length(bas)];
mats:=List(GeneratorsOfGroup(cp),g->List(coh.cohomology,
v->SolutionMat(bas,coh.pairact(v,g)){ran}));
o:=Orbits((ats,coh.module.ield^Length(coh.cohomology);
o=List(,x->x[1]*coh.ohomology);
return o; end);
############################################################################# ## #M Extensions( G, M ) ##
InstallOtherMethod(Extensions,"generic method for finite groups",
true,[IsGroup and IsFinite,IsObject],
-RankFilter(IsGroup and IsFinite), function(G,M)
local coh;
coh:=java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
return List((VectorSpace(coh.module.field,coh.cohomology,coh.zero)),
x->FpGroupCocycle(coh,x,true:normalform)); end);
nstallOtherMethod(ExtensionRepresentatives,genericmethod for finite groups",
true,[IsGroup and IsFinite,IsObject,IsGroup],
-RankFilter(IsGroup and IsFinite), function(G,M,P)
local coh if (new)then
(G,);
return java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
x->FpGroupCocycle(coh,x,true:normalform)); end);
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.63Angebot
¤
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.