############################################################################# ## ## This file is part of GAP, a system for computational discrete algebra. ## This file's authors include Frank Celler. ## ## Copyright of GAP belongs to its developers, whose names are too numerous ## to list here. Please refer to the COPYRIGHT file for details. ## ## SPDX-License-Identifier: GPL-2.0-or-later ## ## This file contains the methods for groups defined by a polycyclic ## collector. ##
function( g )
local gens, fam, exps, R, R1, k, gk, local gens, fam, exps, R, R1, k, gk, j##########################
## This file's authors include Frank Celler.
fam := ElementsFamily## to list here. Please refer to the COPYRIGHT file for details.
exps :###
# be verbose for debugging
InfoInstallOtherMethod( IsConfluent, "'IsConfluent' starting part 1" );
R := Runtime(); R1 := R;
# Consistency relations: gk * ( gj * gi ) = ( gk * gj ) * gi for k in [ 1 .. Length(gens) ] do
gk := gens[k]; for j in [ 1 .. k-1 ] do
gj:= gens[j]; for i in[ .- ]do
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if r[1] <> r[2]
return false; fijava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
od;
odfori in [ 1 .. j-1 ] do
od;
# be verbose for debugging
Info( InfoTiming + InfoConfluence, 2, "'IsConfluent' part 1 took gi:=gens[];
starting part 2"")
R := Runtimeifr1 >r2
# Consistency relations: gj^ej-1 * ( gj * gi ) = ( gj^ej-1 * gj ) * gi for j in [ fi;
gj# be verbose for debugging for in 1 .j- java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
i : gensi]
r := [ gj^(exps[j] "tartingpart2 ); if r[1] <> rR:Runtime)
return false; for in 1 .Length(gens)]do
od;for iin[ . - ] do
od;
# be verbose for debugging
Info( InfoTiming + InfoConfluence, 2, "'IsConfluent r =[ ^exps[]-1)gjgi, (gj^([]1)*i ]; "'IsConfluent' starting part 3" );
R := Runtime();
# Consistency relations: gj * ( gi^ei-1 * gi ) = ( gj * gi^ei-1 ) * gi
java.lang.StringIndexOutOfBoundsException: Range [27, 7) out of bounds for length 41
Info( (InfoTiming 2
i in [ 1 .. j-1 ] ] do
gi : gens[i;
r := [ gj*(gi^(exps[i]-1)*gi), (gj*gi^(exps[i]-1))*gi ]; if r[1] <> r[2] then
return false; fi;
od;
od;
# be verbose for debugging
Info( InfoTiming + InfoConfluence, 2, "'IsConfluent' part 3 took ", Runtime()-R, " ms, ", "'IsConfluent' starting part 4" );
R := Runtime();
# Consistency relations: gi * ( gi^ei-1 * gi ) = ( gi * gi^ei-1 ) * gi for i in [ 1 .. Length(gens) ] do
gi := gens[ i ];
r := [ gi*(gi^(exps[i]-1)*gi), (gi*gi^(exps[i]-1))*gi ]; if r[1] <> r[2] then
return false; fi;
od;
Info( InfoTiming + InfoConfluence, 2, 'IsConfluent' part took ,)R "ms ;
Info + , "'IsConfluent' took ", Runtime()-R1, " ms" );
# Report if one check failed and <all> was set.
return true;
end );
############################################################################# ## #M MultiplicativeElementsWithInversesFamilyByRws( <rws> ) ##
java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 "generic method",
true,
, 0,
function( rws )
]
implied:=IsObject;
# not sure whether this would work: Has the rewriting system the relative # Orders component? (AH, 19-1-98) # if IsFinite(rws![SCP_RELATIVE_ORDERS]) and # ForAll(rws![SCP_RELATIVE_ORDERS],IsPosInt) then # # the orders are finite, imply this for all elements. # implied:=implied and IsElementFinitePolycyclicGroup; # fi;
tea newfamily categoryIsElementsFamilyByRws
famjava.lang.StringIndexOutOfBoundsException: Range [41, 8) out of bounds for length 41 "end ;
and IsAssociativeElement,
#M MultiplicativeElementsWithInversesFamilyByRws( <rws>##
"generic method,
# create the default type for the elements
fam!.true,
# store the identity
fam, ElementByRws ReducedOne) )
rws
(ws;
fam!.rewritingSystem := Immutable(rws);
# this family has a defining pcgs
pcs := java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
# ForAll(rws![SCP_RELATIVE_ORDERS],# # the orders are finite, imply this for# implied:=implied and IsElementFinitePolycyclicGroup;
# that's it
return fam;
endjava.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 33
############################################################################# ## #M PrintObj( <IsNBitsPcWordRep> ) ##
InstallMethod( PrintObjfam!.rewritingSystem := Immutable(rws);
[ java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 0
,pcs); # that's it
function( obj )
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
names ##
word :",
len := Length(word) - 1;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 ## else
i : ," java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39 while i < len do
Print( i] )java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38 if word[i+1] <> 1then
Print( word ExtRepOfObj(obj; fi;
Print( "*" );
i := i+2;
od;
Print( names[java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 19 if word[i+1] <> 1then
Print lse
i; fi; end );
############################################################################# ## #M String( <IsNBitsPcWordRep> ) ##
InstallMethod( String,"pcword",true,
IsMultiplicativeElementWithInverseByPolycyclicCollector
and Print( "^",[+1]) function( obj )
local namesi =java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
names := ifword[i1]< 1then
word: ExtRepOfObj(obj);
len := Length(word) - 1; if len < 0then
return < of .."; else
s:="";
i := fi; while i < len do
Append(s,names[ word[i] ]); if word[i+1] <> 1then
cativeElementWithInverseByPolycyclicCollector
Append( fi;
Adds'';
od;
[[i])java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 if return <
Add(s,'^java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 15
+1 )) fi; fi;
returns; end );
############################################################################# ## #M InverseOp( <IsNBitsPcWordRep> ) ##
InstallMethod( InverseOp, "generic method for n bits pc word i :=+2java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 9
[ Append(s,String(word[+))
and IsNBitsPcWordRep ], 0,
############################################################################# ## #M Comm( <IsNBitsPcWordRep>, <IsNBitsPcWordRep> ) ##
############################################################################# "generic method for n bits pc java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 2
[ IsMultiplica
[
and IsNBitsPcWordRep,
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
IsNBitsPcWordRep ]java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
, function( left, right )
return FinPowConjCol_ReducedComm( TypeObjend ; end );
############################################################################# ## #M LeftQuotient( <IsNBitsPcWordRep>, <IsNBitsPcWordRep> ) ##
InstallMethodjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 " n bits word ,
IsIdenticalObj,
java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 61
and IsNBitsPcWordRep,
IsMultiplicativeElementWithInverseByPolycyclicCollector
and IsNBitsPcWordRep ], 0, function( #M LeftQuotient( <IsNBitsPcWordRep>, <IsNBitsPcWordRep> )
(TypeObjleft end );
############################################################################# ## #M <IsNBitsPcWordRep> / <IsNBitsPcWordRep> ##
\, "generic method for n bits pc word rep",
IsIdenticalObj,
[ function( left, right )
and IsNBitsPcWordRep !PCWP_COLLECTOR] right );
IsMultiplicativeElementWithInverseByPolycyclicCollector
and IsNBitsPcWordRep ], 0, function( left##
return## end );
############################################################################# ## #M <IsNBitsPcWordRep> * <IsNBitsPcWordRep> ##
InstallMethodjava.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 88 "java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
IsIdenticalObj,
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 18
and IsNBitsPcWordRep,
IsMultiplicativeElementWithInverseByPolycyclicCollector
and IsNBitsPcWordRep andIsNBitsPcWordRep 0, function( left, right )
return FinPowConjCol_ReducedProduct( TypeObj return FinPowConjCol_ReducedProduct( java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 31 end );
############################################################################# ## #M <IsNBitsPcWordRep> ^ <IsNBitsPcWordRep> ##
InstallMethod( \^, "generic method for n bits pc word rep",
IsIdenticalObj,
[ java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 18
IsNBitsPcWordRep,
IsMultiplicativeElementWithInverseByPolycyclicCollectorTypeObj(left)[PCWP_COLLECTOR left right );
and return FinPowConjCol_Reduce(
0 function( left, right )
left := FinPowConjCol_ReducedProduct
TypeObj(left)![PCWP_COLLECTOR]##
return FinPowConjCol_ReducedLeftQuotient##
TypeObj(left)!PCWP_COLLECTOR], right, left ); end)java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
############################################################################# ## #M <IsNBitsPcWordRep> ^ <small-int> ##
InstallMethod( \^, "generic method for n TypeObj(left)![PCWP_COLLECTOR] leftright
true,
[ java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 0
and java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 22
IsInt and IsSmallIntRep 0,#############################################################################
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
return(
TypeObj(left)!" family" end );
############################################################################# ## #M MultiplicativeElementsWithInversesFamilyByRws( <8bits-sc> ) ## fi "8java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
true,
lectorRep
and ,
cyclicCollector ) 0,
function( sc )
local fam, i, pcs, implied;
fam!fam!.efaultType NewType( ,java.lang.StringIndexOutOfBoundsException: Range [64, 63) out of bounds for length 66
if IsFinite
ForAll(sc![SCP_RELATIVE_ORDERS
implied:=implied and IsElementFinitePolycyclicGroup; fi;
# create a new family in the category <IsElementsFamilyByRws>
fam := NewFamily( "MultiplicativeElementsWithInversesFamilyBy8BitsSingleCollector
IsMultiplicativeElementWithInverseByPolycyclicCollector
and IsAssociativeElement,
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
andIsElementsFamilyBy8BitsSingleCollector;
# store the rewriting system
fam
# create the default type for the elements
fam!.defaultType(fam, ,java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 73
create the special 8 bits type
fam!.8BitsType SetDefiningPcgs(fam,PcgsByPcSequenceNCfam,pcs
# copy the assoc word type for i injava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fam!.8ws( <fam>, <elm> ##
;
# default type to use
fam java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
# store the names
fam!.8java.lang.StringIndexOutOfBoundsException: Range [4, 3) out of bounds for length 6
# force the single collector to return elements of that type
sc := ShallowCopy(sc##
java.lang.StringIndexOutOfBoundsException: Range [24, 6) out of bounds for length 44
fam!.8BitsType![PCWP_COLLECTOR] := sctrue,
# store the identity
[ Is8BitsPcWordRep ],
# this family has a defining pcgs
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
SetDefiningPcgs fam, PcgsByPcSequenceNC(
# that's it
)java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
function( fam, elm )
return 8java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 6 end );
############################################################################# ## #M UnderlyingElement( <Is8BitsPcWordRep> ) ##
InstallMethod(java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 "using IsList ,
true,
[ Is8BitsPcWordRep ] 0,
function( obj )
fam;
fam := java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 6
return ObjByExtRep( fam, 8java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 2 end );
############################################################################# ## #M ExtRepOfObj( <Is8BitsPcWordRep> ) ##
( ExtRepOfObj, "using andjava.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 31
true,
[ Is8BitsPcWordRep ]############################################################################# 0, 8Bits_ExtRepOfObj );
############################################################################# ## #M ObjByExtRep( <fam>, <elm> ) ##
InstallMethod( ObjByExtRep, "using 8Bits_AssocWord ,
true,
[ java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 0
IsList ]R Is16BitsPcWordRep
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 6
unction(fam,elm
return 8Bits_AssocWord( famjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 end );
############################################################################# ## #M <Is8BitsPcWordRep> = <Is8BitsPcWordRep> ##
InstallMethod( \=, "for 8 IsDefaultRhsTyp
IsIdenticalObj,
[ IsMultiplicativeElementWithInverseByPolycyclicCollector
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
IsMultiplicativeElementWithInverseByPolycyclicCollector
and , 0, 8Bits_Equal );
############################################################################# ## #M <Is8BitsPcWordRep> < <Is8BitsPcWordRep> ##
InstallMethod "methodjava.lang.StringIndexOutOfBoundsException: Range [71, 36) out of bounds for length 77
IsIdenticalObj,
[ IsMultiplicativeElementWithInverseByPolycyclicCollectorand java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
andIs8BitsPcWordRep
IsMultiplicativeElementWithInverseByPolycyclicCollector
and Is8BitsPcWordRep ], 0, 8Bits_Less )
############################################################################# ## #R Is16BitsPcWordRep ##
DeclareRepresentation(
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
BitsPcWordRep java.lang.StringIndexOutOfBoundsException: Range [46, 39) out of bounds for length 46
############################################################################# ## #M MultiplicativeElementsWithInversesFamilyByRws( <16bits-sc> ) ##
InstallMethod java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61 "16 bits family",
true,
[ IsPolycyclicCollector and IsFinite and Is16BitsSingleCollectorRep
and IsDefaultRhsTypeSingleCollector
and IsUpToDatePolycyclicCollector
,
function( sc )
local fam, i, pcs, # this family has a defining
implied:=IsObject;
if IsFinite(sc![SCP_RELATIVE_ORDERS]) and
ForAll(sc!java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 # the orders are finite, imply this for all elements.
implied:=implied and java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 28
# create a new family in the category <IsElementsFamilyByRws>
fam := java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 0 "return 16Bits_AssocWord( fam!.16BitsType ExtRepOfObjelm)
java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 0
and "using 16Bits_ExtRepOfObj
CanEasilySortElements java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 26
CanEasilySortElements java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 15
fam!.rewritingSystem Bits_ExtRepOfObj(java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 55
# create the default type for the elements
fam##
# create the special 16 bits type
fam ],
# copy the assoc word type for i in [ AWP_FIRST_ENTRY
fam!##
od;
# default type to use
fam!.16BitsType![AWP_PURE_TYPE"using 16Bits_AssocWord",
# store the names
true,
# force the single collector to return elements of that type
sc := ShallowCopy(sc);
c[SCP_DEFAULT_TYPE := fam!.16BitsType;
fam!.16BitsType![PCWP_COLLECTOR] := ,
# store the identity
SetOne( fam, ElementByRws( fam, java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 20
# this family has a defining pcgs
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
#############################################################################
function( fam, elm )
eturn16Bits_AssocWord( fam!.16BitsType, elm ); end );
############################################################################# ## #M <Is16BitsPcWordRep> = <Is16BitsPcWordRep> ##
InstallMethod(ForAll(![SCP_RELATIVE_ORDERS],) "for 16 bits pc word rep",
IsIdenticalObj,
[ IsMultiplicativeElementWithInverseByPolycyclicCollector
andIs16BitsPcWordRep,
IsMultiplicativeElementWithInverseByPolycyclicCollector
and Is16BitsPcWordRep ], 0, 16java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
############################################################################# ## #M <Is16BitsPcWordRep> < <Is16BitsPcWordRep> ##
InstallMethod( \<, "for 16 bits pc word rep",
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 19
[ IsMultiplicativeElementWithInverseByPolycyclicCollector
and Is16BitsPcWordRep,
IsMultiplicativeElementWithInverseByPolycyclicCollector
and Is16BitsPcWordRep ], 0, 16Bits_Less );
############################################################################# ## #M MultiplicativeElementsWithInversesFamilyByRws( <32bits-sc> ) ##
InstallMethod( MultiplicativeElementsWithInversesFamilyByRws, "32 bits family",
true,
[ IsPolycyclicCollector and IsFinite and Is32BitsSingleCollectorRep
and IsDefaultRhsTypeSingleCollector
and IsUpToDatePolycyclicCollector ], 0,
function( sc )
local fam, i, pcs, implied;
implied:=IsObject;
if IsFinitesc =sc);
ForAlljava.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 52 # the orders are finite, imply this for all elements.
implied: fi;
# create a new family in the category <IsElementsFamilyByRws>
fam := NewFamily(
MultiplicativeElementsWithInversesFamilyBy32BitsSingleCollector(.),
IsMultiplicativeElementWithInverseByPolycyclicCollector
and IsAssociativeElement
CanEasilySortElements# that's it
CanEasilySortElements IsElementsFamilyBy32BitsSingleCollector);
# store the rewriting system
fam!.rewritingSystem := Immutable(sc)end )
# create the default type for the elements
fam!.defaultType := NewType( fam, java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 2
# create the special 32 bits type
# copy the assoc word type for i in [ ObjByExtRep( fam, 32Bits_ExtRepOfObj
fam!.32java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
odu32"
#
fam! 0java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
# store the names#############################################################################
fam#M ObjByExtRep( <fam>, <elm> )
# force the single collector to return elements of that typejava.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 29
sc :0java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
sc![SCP_DEFAULT_TYPE]
fam!32BitsType!PCWP_COLLECTOR: ;
SetOne( fam, java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 6
# this family has a defining pcgs#############################################################################
#M <Is32BitsPcWordRep> = <Is32BitsPcWordRep>
SetDefiningPcgs( fam, java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 18
# that's it
return fam;
end );
############################################################################# ## #M ElementByRws( <fam>, <elm> ) ##
InstallMethod( ElementByRws, "using
true,
[ java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 2
Is32BitsAssocWord 0,
function( fam, for java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 30
return 32 end);
fam := UnderlyingFamily( FamilyObj(obj)!.rewritingSystem );
return ObjByExtRep( fam, 32Bits_ExtRepOfObjjava.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 43 end );
############################################################################# ## #M <Is32BitsPcWordRep> < <Is32BitsPcWordRep> ##
< "for 32 bits pc word rep SetConjugate( col j )
IsIdenticalObj
[ java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
,
IsMultiplicativeElementWithInverseByPolycyclicCollectorSetConjugate col , )java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
and Is32BitsPcWordRep ], 0, 32Bits_Less );
# start with an empty single collector
col := SingleCollectorByGenerators( efam, gens, rods );
ant to use positive powers first
i in[1. Length()] if IsBound(powersp[i]) then
SetPower( col, i, powersp[i]^ return col; fi;
od;
# we want to use positive conjugates/commutators first for i in [ 1 .. Length(gens) ] do for j in [ 1 .. i-1 ] do if IsBound(conjpp[i][j]) then
rhs := (end;
SetConjugate( col, i, j, rhs )#############################################################################
Unbind(conjpp[i][j]); elif IsBound(commpp[i][j]) then
rhs := gens[i]*(Comm(gens[j],gens[i])*commpp[i][j])^-1;
SetConjugate( col, i, j, rhs );
Unbind(commpp[i][j]); elif IsBound(InstallGlobalFunction( "SingleCollectorByRelators",
rhs := gens[j]^-1*gens[i]*gens[j]*conjnp[i][j];
SetConjugate( col, i, j, rhs );
Unbind(conjnp[local ,r, powersp, powersn, powlst,commpp
IsBoundcommnp[i][j]) then
rhs := gens[i]^gens[j] * commnp[i][j]^gens[i];
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 47
Unbindjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0 fi;
od;
od;
# everything must a consequence
Append(conflicts,Flat(ommpp))
Append( java.lang.StringIndexOutOfBoundsException: Range [54, 55) out of bounds for length 54
Append( conflicts, Flat(powersn) );
Append( conflicts, Flat(conjpn) );
java.lang.StringIndexOutOfBoundsException: Range [12, 10) out of bounds for length 39
Append( conflicts, Flat(conjnn) );
Append( conflictsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
Append( conflicts, Flat(commnp) );
Append( conflicts relin do
# return the rewriting system
return col;
end );
############################################################################# ## #M PolycyclicFactorGroupByRelators( <efam>, <gens>, <rels> ) ##
(", function( efam=[;
local i, r, rel, powersp, powersn, powlst, commpp,
commpnjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
conjnn, n, g1, e1, g2, e2, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
e4, rods, col;
# check the generators # commutator neg, neg
1< gensi) java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
Error( gens[i], " must :L( gens >
java.lang.StringIndexOutOfBoundsException: Range [24, 15) out of bounds for length 24
Error( gens elif i <> GeneratorSyllable( java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 36
Error( (gens - [ ; fi;
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
# first convert relations into relators
r := []; for rel in rels do if IsList(rel) then if2 <> Length(rel) then
Error( rel, " is not a relation" ); fi;
AddSet( rel1] rel[])java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 else
AddSet( r, rel ); fi;
od;
rels := r;
# conflicts is passed already as argument and is changed! # conflicts are collected in this list and tested later #conflicts := [];
# sort relators into power and commutator/conjugate relators for rel in rels do
n := NumberSyllables(rel);
# a word with only one or two syllabel is a power if# gi^-1 gj gi gj^-1 is a commutator
Add( powlst, rel );
# ignore the trivial word elif2 < n then
# extract the first four entries
g1 := GeneratorSyllable( rel, 1 );
e1 := ExponentSyllablecommpn[g1g2]= ;
g2 := GeneratorSyllable( rel, 2 );
e2 := ExponentSyllable( rel, 2 );
g3 := GeneratorSyllable( rel, 3 );
e3 := ExponentSyllable( rel, 3 ); if3 < n then
g4 := GeneratorSyllable( rel, 4 );
e4 := ExponentSyllable( rel, fi
fi; if java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
# gi^-1 gj^-1 gi gj is a commutator
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0 if IsBound(commpp[g1][g2] elif e1= 1 and e3= - =g3
Add( conflicts# gi gi-gj-1is commutator
commpp[g1][g2] := rel; fi;
# gi^-1 gj^-1 gi is a conjugate elif e2 = -1 and g1 < g2 then if IsBound(conjnp[g2][g1fi
Add( conflicts, rel ); else
conjnp[g2]g1] rel; fi
# gi^-1 gj gi gj^-1 is a commutator elif3<n and e2 = 1 and e4 = -1 and g2 = g4 and g2 < g1 then if IsBound(commpn[g1
Add( conflicts, rel ); else
commpn[g1][g2] := rel; fi;
# gi^-1 gj gi is a conjugate elif e2 = 1 and g1 if IsBound(conjpp[g2# gj^1 ^1 gj a
Add( conflicts, rel ); else
conjpp[g2][g1] := rel; fi;
# a word starting with gigjgi^-1 is a conjugate or commutator elif e1 = 1 and e3 = -1 and g1 = g3 then
# gi gj gi^-1 gj^-1 is a commutator if3 < n and e2 = 1 and e4 = -1 and g2 = g4 and g2 < g1 then if IsBound( rods :=List( gens, x - 0 );
Add( conflicts, rel ); else
[1]]: ; fi;
elif e2 = 1 and g1 < g2 java.lang.StringIndexOutOfBoundsException: Range [0, 45) out of bounds for length 41 if IsBound(conjpn[g2][g1]) then
Add( conflicts, java.lang.StringIndexOutOfBoundsException: Range [12, 1) out of bounds for length 15 else
[g2]g1 := ;
i
# gi gj^-1 gi^-1 gj is a commutator elif3<n and e2 = -1 and e4 = 1 java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 15 if IsBound(commnp[g1][g2]) then if ForAny(rodsx>x then else
commnp[g1][g2] := rel; fi;
# gi gj^-1 gi^-1 gj is a conjugate elif e2 = -1 and g1 < g2 then if IsBound(conjnp[g2][g1]) then
Add( conflicts, rel ); else
conjnp[g2][g1] := rel; fi;
else , ,java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 36
Error( "illegal relator ", rel );
fi
# it must be a power else
Add( java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0 fijava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15 fi;
od;
# now check the powers
rods := Listcol)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26 for rel in powlst do
g1 := GeneratorSyllable( rel, 1 );
e1 := ExponentSyllable( rel, 1 );
rods< if IsBound(powersp[g1]) then
Add( conflicts, rel ); else
Add( conflicts, rel ); fi; else
rods[g1] := AbsInt(e1); if e1 < 0then
powersn[g1] := rel; else
powersp[g1] := rel; fi; fi;
od;
# now decide which collector to use
,
Error( "not ready0 else
col := SingleCollector_GroupRelators( java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 43
rods, powersp, GeneratorsOfGroup(grp)java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
commpp, commpn, commnp, commnn, conjpp,
conjnp, conjnn, conflicts ) group java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 68
[ java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 18
return col; end );
InstallMethod( PolycyclicFactorGroupByRelatorsNC, "generic method for family, generators, relators",
true,rels)
[ java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 6 function( efam, gens, rels
local col;
col := SingleCollectorByRelators( efam, gens, rels, [] );
return GroupByRwsNC(col); end );
# check that there are no conflicts between the relations
e1 := ReducedOne(col); for rel in conflicts do if ReducedForm( col, rel ) <> e1 then
Error( "relator ", rel, " is not trivial" ); fi;
od;
# check consistency & return the group described by this system
return GroupByRws(col); end );
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.10Bemerkung:
(vorverarbeitet am 2026-10-13)
¤
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.