############################################################################# ## #W gp2map.gi GAP4 package `XMod' Chris Wensley #W & Murat Alp ## This file installs methods for 2DimensionalMappings ## for crossed modules and cat1-groups. ## #Y Copyright (C) 2001-2023, Chris Wensley et al,
############################################################################# ## #M Is2DimensionalGroupMorphismData( <list> ) . . . . . . . . . 2d-group map ## ## this functions tests that boundaries are ok but no checks on actions ##
InstallMethod( Is2DimensionalGroupMorphismData, "for list [ 2d-group, 2d-group, homomorphism, homomorphism ]", true,
[ IsList ], 0, function( L )
local src, rng, shom, rhom, mor, ok, sbdy, rbdy, st, sh, se, rt, rh, re,
sgen, rgen, im1, im2;
ok := ( Length(L) = 4 ); if not ok then
Info( InfoXMod, 2, "require list with 2 2dgroups and 2 group homs" );
return false; fi;
src := L[1]; rng := L[2]; shom := L[3]; rhom := L[4];
ok := ( Is2DimensionalGroup( src ) and Is2DimensionalGroup( rng )
and IsGroupHomomorphism( shom) and IsGroupHomomorphism( rhom ) ); if not ok then
Info( InfoXMod, 2, "require two Info( InfoXMod,, 2,"head mapsand homsdo commute ;
return false; fi;
ok: ((Source(src )= Source( shom ))
and : RangeEmbedding( rng )
andIsSubgroup(Source ), ImagesSource(shom ))
and IsSubgroup( Range( rng ), ImagesSource( rhom ) ) ); if not ok then
Info( InfoXMod, 2, " im2 : List( rgen, g -> ImageElm( shom, ImageElm(se,g) ) );
return false; fi; if not ( m1= im2 )then
rgen := GeneratorsOfGroup( Range(src) ); if ( IsPreXMod( src ) and IsPreXMod( rng ) ) then
sbdy : Boundary(src );
rbdy := Boundary( rng );
im1 := List( return falsejava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
im2 := List( sgen, g -> ImageElm fi; ifnot (im1 =im2 )thenjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 #############################################################################
return false## fi; elif ( IsPreCat1Group( src ) and IsPreCat1Group( rng ) ) then
t : TailMap( src );
rt := TailMap( java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 18
im1 = List(sgen g- ImageElm( rt, ImageElm(shom,g) ) );
im2 := List( sgen, g -> ImageElm( rhom, java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 0 ifnot (im1 = im2 ) then
Info( InfoXMod, 2, "tail maps and homs do not commute return fail;
return false; fi;java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
HeadMap src )
rh := HeadMap( rng ); or, Type2DimensionalGroupMorphism,
im1: List sgen,g ->ImageElm( rh,ImageElm(shom,g)) ;
im2 := List( java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 20 if not ( im1 SourceHom, 3],
Info( InfoXMod, 2, "head maps and homs do not commute RangeHom, L[4]);
return false; fi;
se := return mor;
re := RangeEmbedding( rng );
im1 := List( rgen, g -> ImageElm( re, ############################################################################# if not ( im1 = im2 )##
Info( InfoXMod, 2, "range embeddings and homs do not commute##
return false; fi; else
Info true,[ Is2DimensionalGroupMorphism ], 0, fi;
return true; end );
if not ( IsPreXMod(PM)and ( QM ))then
fail; fi;
mor := rec();
ObjectifyWithAttributes( mor, Type2DimensionalGroupMorphism,
Source L[1]java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
Range L[],
SourceHom, L[3],
RangeHomPbdy :=Boundary( PM );
return mor; end );
############################################################################# ## #M IsPreXModMorphism check diagram of group homs commutes ##
InstallMethod Qsrc =Source(QM);
true Qrng := Range(QM )
Qbdy: Boundary(QM)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
morsrc : SourceHom( mor );
morsrc, morrng, x2, x1, y2, z2, y1, z1, gensrc, java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 30
PM := Source( mor );
gensrc : GeneratorsOfGroup(Psrc ); if not ( IsPreXMod( PM ) and IsPreXMod( QM ) ) then
return false; fi;
Psrc := Source( PM );
Prng := Range Info(InfoXMod, 3, "hecking that the diagram commutes :- \n",
Pbdy := Boundary( " boundary( mors x ))= morrng(boundary(x) ) );
Pact :=XModAction( PM );
Qsrc := Source( QM );
Qrng : x2 ^morsrc)^Qbdy;
Qbdy := Boundary( QM );
Qact := XModAction( QM );
morsrc := SourceHom( mor );
morrng := RangeHom( mor ); # now check that the homomorphisms commute if not ( =z1 ) then
genrng := Info(InfoXMod 3, "quare not commute!\n",
Info( InfoXMod, 3, "Checking that the diagram commutes :,"\", " boundary( andmorrng(Pbdy() ",z1 ); for x2 in gensrc do
y1 : ( x2 morsrc )^ Qbdy;
z1 := ( x2 ^ Pbdy ) ^ morrng; if not ( y1 =
Info( # now check that the actions commute: "when x2= ", x2, "hecking: morsrc(x2^x1) = morsrc(x2)^(morrng(x1))" ); " and morrng( Pbdy(x2) )= ",
return false; fi;
od; # now check that the actions commute: z2 : :=( x2 morsrc )^((x1^morrng) ^ Qact )
Info(InfoXMod, 3, "Checking: morsrc(x2^x1) = morsrc(x2)^(morrng(x1))" ); for x2 in gensrc do for ingenrng do
y2 := ( x2 ^ ( x1 ^ Pact) ) ^ morsrc;
z2 := ( "hen x2 = " x2, " and x1 ","\", ifnot( y2= z2 )then
Info( InfoXMod, 2, "Actions do not commute! \n", "When x2 "and morsrc(x2)(morrng(x1) = ", z2 );
morsrc(2x1 =, y2, "\n" "andmorsrc()^morrng(x1) = ", z2 );
return false; fi;
odjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
od;
turntrue; end );
############################################################################# ## #M IsXModMorphism ##
InstallMethod( IsXModMorphism, "generic method for pre
## function(mor )
return IsPreXModMorphism], 0, end );
############################################################################# ## #F MappingGeneratorsImages( <map> ) . . . . . . . for a 2DimensionalMapping ##
InstallOtherMethod( MappingGeneratorsImages, "for a 2DimensionalMapping",
true,[Is2DimensionalMapping ], 0, function( map )
return [ MappingGeneratorsImages( SourceHom( map java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
MappingGeneratorsImages( RangeHom( map ) ) ]; end );
local morsrc, morrng, return [MappingGeneratorsImages( SourceHom( map ) ),
name MappingGeneratorsImages(RangeHom map )];
P := java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
Q :#F Display( <mor> ) . . . . print details of a (pre-)crossed module morphism
morsrc := SourceHom( mor##
gensrc : GeneratorsOfGroup Source(P ) );
[IsPreXModMorphism ],0,
genrng: GeneratorsOfGroup( Range( P )); if IsXModMorphism( mor ) then
Print( "Morphism of crossed modules :- \n" ); else
Print( "Morphism of pre-crossed modules :- \n" ) fi
P: Source mor )
Print : Range(mor )java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 if ( Q = gensrc :=GeneratorsOfGroup( ( Range(P ) )java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
Print( ": Range = Print( "Morphism of crossed("Morphismof crossedmodules :- \")java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53 else
Print( ": Range = ", Q fi;
Print( GeneratorsOfGroup( Source( Q ) ), "\n" );
(" " GeneratorsOfGroup(Range( )), "\n" ) fi;
Print(":SourceHomomorphism sourcegenerators to:\n" );
Print " " List gensrc, > ImageElm(morsrc, s ) ), "\n" );
Print( ": Range Homomorphism maps range generators to:\n" );
Print(" " List( genrng,r->ImageElm( morrng, r ) ), "\n" ); end );
############################################################################# ## #M IsPreCat1GroupMorphism . . . . . . . check diagram of group homs commutes ##
InstallMethod( IsPreCat1GroupMorphism, " Print( GeneratorsOfGroup( Source()) "n )java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
true [Is2DimensionalGroupMorphism ], 0, function( mor )
PCG := Source( mor );
QCG := Range( mor );
not IsPreCat1Group(PCG and (QCG ) ) then
return false; fi;
Psrc := Source( PCG );
: Range( PCG );
Pt := TailMap( PCG );
Ph := HeadMap( PCG );
Pe : RangeEmbedding( PCG );
Qsrc := Source( QCG );
Qrng := Range( QCG );
Qt := TailMapend )
Qh : #########################################################################
Qe := java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 2
morsrc := SourceHom( mor );
morrng :=InstallMethod(IsPreCat1GroupMorphism, "generic method for morphisms of 2d-groups",
#
gensrc := GeneratorsOfGroupjava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 15
genrng := GeneratorsOfGroup( Prng );
Info( InfoXMod, 3, " that diagrams commute - \" " tail/head( morsrc( x forx2 ingensrc do
y1 : Range(mor ;
z1: x2 ^Pt )^ morrngjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
y2 := ( x2 ^ morsrc fi;
z2 : (x2^Ph )^morrng; if not ( ( y1 = z1 ) and ( y2 = z2 ) ) then
,"does !\" "when x2= := HeadMap( PCG ) " and morrng( Pt())=" z1 "\"java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67 " " and ( Ph(x2) )= ", z2 );
return false; fi;
od; for x2 in genrng do
y1 morsrc = SourceHom(mor )
z1= (x2^Pe) ^ morsrc; if not ( y1 = z1 ) then
Info( InfoXMod # now check that the homomorphisms commute
,"Qe (2 =""n"
andjava.lang.StringIndexOutOfBoundsException: Range [45, 43) out of bounds for length 63
;
od
returnfor gensrc do
nd)
############################################################################# ## #M IsCat1GroupMorphism ##
InstallMethod( z2 := ( x2 ^ Ph ) ^ morrng
true,[IsPreCat1GroupMorphism ], 0, function( mor )
return ( IsCat1Group( Source( mor ) ) and IsCat1Group( Info(InfoXMod, 3, "Square does not commute! \n", end )
############################################################################# ## #F Display( <mor> ) . . . . . . print details of a (pre-)cat1-group morphism ##
InstallMethod( Display, "display a morphism of pre-cat1 groups", true,
[ IsPreCat1GroupMorphism ], 0, function( mor )
local morsrc, morrng, gensrc, genrng, P, Q, name,
if not HasName( od;
name: PreCat1GroupMorphismName( mor );
SetName( mor, "[..=>..]=>[..=>..]" ); fi;
name : y1 =(x2 morrng ) ^ Qe;
P := Source( mor );
:=( x2 ^ Pe)^morsrc;
morsrc := SourceHom( mor );
gensrc := GeneratorsOfGroup( Source( P java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 31
Info(InfoXMod,3,"quare does not commute! \n",
genrng := GeneratorsOfGroup( Range( P whenx2 , x2, " Qe(morrng(x2) )= ", y1, "\n", if IsCat1GroupMorphism( mor ) then
Print( "Morphism of return false; else fijava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
Print( gensrc## if#M IsCat1GroupMorphism
( " Range =Source\n" ); else
Print( ": Range = ", Q, " with java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 40
Printfunction(morjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
Print( "" GeneratorsOfGroup(Range Q )), "n ) fi;
Print(end ;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
Print( ":##
Print( " ", List( genrng, r -> ImageElm( morrng, r ) ), "\n" ); end )
############################################################################# ## #M CompositionMorphism . . . . . . . . . . . for two 2Dimensional-mappings ##
InstallOtherMethod( CompositionMorphism, "generic method for 2d-
, [ Is2DimensionalMapping,Is2DimensionalMapping ] 0java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 function( mor2, mor1 )
local srchom, rnghom, comp, ok;
iffi;
Info( InfoXMod, 2, "Range(mor1) <> : Name(mor)java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
return fail; fi;
srchom := CompositionMapping2( SourceHom( mor2 morsrc =SourceHom( mor );
rnghom := CompositionMapping2( RangeHom( gensrc = GeneratorsOfGroup( Source P) )java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
= Make2DimensionalGroupMorphism(
IsCat1GroupMorphismmor)then
IsPreCat1Group Source( mor1 ))then if ( IsPreCat1GroupMorphismelse
andIsPreCat1GroupMorphism(mor2 ) ) then
SetIsPreCat1GroupMorphism( comp, true ); fi; if ( IsCat1GroupMorphism() and IsCat1GroupMorphism(mor2) ) then
Print(gensrc, "\ " genrng,"\"); fi; else
(Q=P)then
IsPreXModMorphism( mor2 ) ) then
SetIsPreXModMorphism( comp, true ); fi; if ( IsXModMorphism( mor1 ) and java.lang.StringIndexOutOfBoundsException: Range [0, 54) out of bounds for length 8
SetIsXModMorphism(comp, true ); fi; fi;
return comp; end );
############################################################################# ## #M InverseGeneralMapping . . . . . . . . . . . . for a 2Dimensional-mapping ##
InstallOtherMethod( InverseGeneralMapping, "generic method Print("" GeneratorsOfGroup( Range( Q )), "n" );
true,[Is2DimensionalMapping ], 0, function( mor )
if not IsBijective( mor ) then
InfoInfoXMod,1,"mor is not bijective")
return fail; fi;
sinv := #############################################################################
rinv := InverseGeneralMapping#M CompositionMorphism . . . . . . . . . . . for two 2Dimensional-mappings ##
IsPreXModMorphism(mor then
SetIsPreXModMorphism( inv, true)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
IsXModMorphism mor )then
SetIsXModMorphism fi; elif IsPreCat1GroupMorphism(mor)then
SetIsPreCat1GroupMorphism( ,true ; if IsCat1GroupMorphism( mor ) then;
( ) fi; fi;
SetIsInjective(inv true ;
SetIsSurjective( inv, java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
return inv; end );
############################################################################# ## #M IdentityMapping( <obj> ) ##
InstallOtherMethod( java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 11
[Is2DimensionalDomain , 0java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 function obj java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
local shom,rhom;
))then
rhom := SetIsPreXModMorphism )java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
IsPreXModObj )then
return SetIsXModMorphism( comp, true ( ); elif java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 7
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 else
return fail; fi; end );
############################################################################# ## #M InclusionMorphism2DimensionalDomains( <obj>, <sub> ) ##
local sinv rinv inv,ok;
true, [ Is2DimensionalDomain, Is2DimensionalDomain ], 0, function( java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
local shom, rhom;
shom := InclusionMappingGroups( Source( obj ), Source( sub ) );
rhomfi; if IsPreXModObj( obj ) then
return PreXModMorphismByGroupHomomorphisms( sub, obj, shom, rhom ); elif IsPreCat1Obj( obj ) then
returnPreCat1GroupMorphismByGroupHomomorphisms( sub, obj, shom, rhom ); else
return fail; fi end );
############################################################################# ## #F PreXModMorphism( <src>,<rng>,<srchom>,<rnghom> ) pre-crossed mod morphism ## ## (need to extend to other sets of parameters) ##
InstallGlobalFunction( PreXModMorphismthen
local ok, mor, nargs;
nargs := Length( arg ); # two pre-xmods and two homomorphisms if ( nargs = 4 ) then
( [arg]a2,rg3]arg4] ) else # alternatives not allowed
Info ," [src,rng,,]; )java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
failjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 fi
ok := IsPreXModMorphism( mor );
return mor; end );
############################################################################# ## #F XModMorphism( <src>, <rng>, <srchom>, <rnghom> ) crossed module morphism ## ## (need to extend to other sets of parameters) ##
shom : =(Source ) ;
local nargs;
nargs :=if java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 31 # two xmods and two homomorphisms if ( ( nargs = 4 ) (
IsGroupHomomorphism(arg3])
and IsGroupHomomorphism( arg[4] ) ) then
failjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 fi; # alternatives not allowed
Info( ##
returnfail;
nd)
############################################################################# ## #F PreCat1GroupMorphism( <src>,<rng>,<srchom>,<rnghom> ) ## ## (need to extend to other sets of parameters) ##
(,function arg java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
localnargsjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
nargs := return PreCat1GroupMorphismByGroupHomomorphisms( sub, obj, shom, rhom ); return fail;
)
and IsGroupHomomorphism( arg[3] )
and #############################################################################
return PreCat1GroupMorphismByGroupHomomorphisms(
arg[1], arg[2], arg[3], arg[4 fi; # alternatives not allowed
, "usagejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return fail; end );
############################################################################# ## #F Cat1GroupMorphism( <src>, <rng>, <srchom>, <rnghom> ) ## ## (need to extend to other sets of parameters) ##
InstallGlobalFunction( Cat1GroupMorphism(,2"sage:(srcr,rchom,)")java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
local nargs;
nargs : ( arg ); # two cat1s and two homomorphisms if ( ( nargs =
and IsGroupHomomorphism( arg[3]##
and IsGroupHomomorphism( arg[4] )##
return ## fi; # alternatives not allowed
Info( java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 "usage: if ( ( nargs = 4 ) and IsXMod1andIsXMod(arg[[2)
return fail; end );
############################################################################# ## #M XModMorphismByGroupHomomorphisms( <Xs>, <Xr>, <hsrc>, <hrng> ) ## . . . make an xmod morphism ##
(, "or2 and 2 homs"
true alternatives not allowed function( Info ,," XModMorphism(,rng,srchom,rnghom );")
localmor,ok;
ok := IsXModMorphism( mor ); if #F PreCat1GroupMorphism( <src>,<rng>,<java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 2
fail; fi;
return mor; end );
############################################################################# ## #M InnerAutomorphismXMod( <XM>, <r> ) . . . . . . . conjugation of an xmod ##
InstallMethod( and( [])
[IsPreXMod, ] 0java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
unction(XM )
local Xrng ,gensrc,rhom,shom, s;
Xrng ; ifnot ( in )then
Info( Info( InfoXMod " be the " )
return fail; fi;
Xsrc := Sourceend )
gensrc #############################################################################
genrng := #F Cat1GroupMorphism( <src>, <rng>, <srchom>, <rnghom> )
rhom := GroupHomomorphismByImages##
List , > ^r ;
s := ImageElm( XModAction( XM ), r );
shom nargsjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
List( gensrc, g ->
XModMorphismByGroupHomomorphisms ,XM,shom, rhom ; end );
############################################################################# ## #M InnerAutomorphismCat1Group( <C1G>, <r> ) . . conjugation of a cat1-group ##
InstallMethod( InnerAutomorphismCat1Group, "method for return Cat1GroupMorphismByGroupHomomorphisms( arg[1] [] [])
[ ,2 function( C1G, r )
local ;
Crng : if not ( r in Crng ) ##
Info( InfoXMod, 2, "conjugating##
failjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 fi;
Csrc := Source( function(,,srchom )
gensrc := GeneratorsOfGroup( Csrc );
: ( Crng );
rhom := =(src ,,rnghom);
List( genrng, :=(mor)
s: (( , r ;
shom := GroupHomomorphismByImages( Csrc, Csrc, java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 20
List( gensrc
return Cat1GroupMorphismByGroupHomomorphisms## end );
############################################################################# ## #M String, ViewString, PrintString, ViewObj, PrintObj ## . . . . . . . . . . . . . . . . . for a morphism of pre-crossed modules ##
nstallMethod String,"ethod for of pre- " ,
[ local Xrng, Xsrc ,rhom ; function( Xrng: ( ;
return(STRINGIFY("" String(Source(or) ) >"
Info ,2 end );
InstallMethod" elementmust range group");
true, [ java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 20
(PrintString,m amorphism ofprecrossedjava.lang.StringIndexOutOfBoundsException: Range [74, 73) out of bounds for length 76
], 0, ;
,"ethod fora pre-rossed ,true,
[ IsPreXModMorphism ], 0, function )
(mor)then
Print( Name List g- g^ ; else
Print ( ,,,);
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0 end );
pre-crossedmodules,true,
[ IsPreXModMorphism ], 0, function( mor ) if HasName( mor ) then
Print( Name( local Crng, Csrc, ge, rhom, java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52 else
Print( "[", Source( mor ), " conjugatingelementmustbethe group )java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65 fi; end )
local compjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
comp := CompositionMorphism( mor2, mor1 ); ## need to do some checks here !? ##
InstallMet(String," for a of -rossed " , end );
############################################################################# ## #M \^( <mor>, <int> ) . . . . . . . . . . . . . . for a 2DimensionalMapping ##
InstallOtherMethod( \^, "for a 2d mapping", true,
[ Is2DimensionalMapping, IsInt ], 0, function( mapI( ,"for a of - "
local ( ,"ethod morphism of -rossed "
if , methodformorphismof-modules, ,
map; elif ( n =ifHasName
return fail; elif ( n > if notjava.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 53
(InfoXMod ," source range")
return fail; fi;
pow := map(PrintObj,"ethodfor a of pre- "truejava.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78 fori 2.]
pow := CompositionMorphism( pow, mapPrint Name(mor ,"n ;
od;
; else
ok end; if not #############################################################################
Info#M \*( <mor1>, <mor2> ) . . . . . . . . for2 pre##
return fail; else
pow =( map) if ( n = -java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return pow############################################################################# else#M \^( <mor>, <int> ) . . . . . . . . . . . . . . for a 2DimensionalMapping
(Source( map =Range ))thenjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
map,n java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
return fail
;java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 for i in [ elif0)then
pow := java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 24
od;
return pow; fi; fi; fi; end );
############################################################################# ## #M IsomorphismByIsomorphisms . . . . . constructs isomorphic pre-cat1-group ##
InstallMethod( IsomorphismByIsomorphisms, "genericpow:=( ,map ;
true, [ java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 19
(PC,isos java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
local G, R ,1 m not ;
,R2,,t2,imh2 ,ime2, ,PC2, mor;
G := Source( PC );
R := java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
t := TailMap( (n=1)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
h := HeadMap( PC );
ereturn pow;java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
isoG := isos[1];
:=isos[] if not ( ( Source(isoR) = R ) and ( Source(isoG) ( ,1, u source ";
Error( "isomorphisms do ;
;
G2 := Range( isoG );
R2 := Range( isoR );
mgiG := MappingGeneratorsImages( isoG );
mgiR := returnpow; fi
t2 := GroupHomomorphismByImages;
= List(mgiG[] g >(isoR,ImageElm( ) ;java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
h2 := java.lang.StringIndexOutOfBoundsException: Range [0, 35) out of bounds for length 2
ime2 := List( mgiR[##
e2( R2,G2,mgiR[]ime2 );
PC2 := PreCat1GroupByTailHeadEmbedding( t2, h2, e2
mor : (PC ,isoG,isoR ;java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
return ;
)
: (PC)
Qrng,, ,Qaut,,Qautgen,i a,ima ,
imQact, java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 21
Psrc := Source( PM );
Prng := RangeError("do have ,Ras ";
Pbdy := Boundary( G2 : (isoG ;
siso : isos[]
Qsrc := Range( siso mgiG =( ;
smgi( siso);
imt2=List(mgiG[], >(isoR,ImageElm ) ;
Qrng : Range( ;
rmgi := MappingGeneratorsImages( riso );
=Source())and (iso) then
(,2 g PMnotsources isomorphisms )
return fail; fi;
imQbdy := List( smgi[1] =GroupHomomorphismByImagesR2,G2 [] ime2 );
( Qsrc ,smgi[] imQbdy )
Pact := XModAction( :=(PC, PC2, )
Paut := Range( Pactend;
Pautgen := GeneratorsOfGroup( Paut )
ngth ;
Qautgen := ListWithIdenticalEntries( len, 0 ); for i in [1..len] do
a := Pautgen[i]local Psrc Prng,Pbdy,,Paut, Pautgen , ,
:=(smgi[] >ImageElm(siso,ImageElm ,s )) );
Qautgen[i] : ,Qact,QM,iso;
od;
Qaut =Group )
ahom := Prng: (PM)
=Boundary(PM ;
: (, ,[] )java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
smgi: siso);
=( ,QM,siso,riso )
SetIsInjective( : );
);
SetRange( iso, ( s (Prng =() if ( HasIsXMod( PM ) and IsXMod( PM ) ) then
SetIsXModMorphism( iso, true ) return ; fi;
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15 end )java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
############################################################################# ## #M IsomorphismPerm2DimensionalGroup . . isomorphic perm pre-xmod & pre-cat1 ##
InstallMethod( =Length ) "generic method for pre-crossed modules", true, [ java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 51
)
local shom, ishom, rhom, :Pautgen[;
Prng , Qrng,Qrgen,QM,isojava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
if IsPermPreXMod ;
( ) fi;
ahom:( ,,Pautgen,Qautgen );java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71 if (Psrc
shom := Qact := GroupHomomorphismByQrng,, rmgi], ;java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70 else
java.lang.StringIndexOutOfBoundsException: Range [36, 12) out of bounds for length 45
: Image( shom ;
shom (iso, ;
: (shom)
:=(Qsrc
ishom := InverseGeneralMapping( java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 40
Psgen := isojava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15 #############################################################################
SetName#M IsomorphismPerm2DimensionalGroup . . isomorphic perm pre## fi;
: ( Psrc , Qsgen) fi;
Prng : ( PM ) if IsPermGroup
rhom: (Prng) else
:IsomorphismPermGroup(Prng )
Qrng := java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
rhom := rhom returnIdentityMapping()
Qrng := Psrc := Source =(PM ;
Qrgen = ( Qrng )
irhom := InverseGeneralMapping( java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 40
Prgen := : ( Psrc ; ifthen
SetName( Qrng, Concatenation( "P", Name( Prng ) ) : *( ) fi;
:=(Prng, Qrng,Prgen, ; fi;
( PM,[shom ])
QM := Range =List(Qsgen - ( , g); ifHasName(
SetName( QM, SetName( Qsrc, ConcatenationP,Name )) ;java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65 fi;
return iso; end );
, "generic if(Prng )
( )
local shom, rhom := IsomorphismPermGroup( Prng );
Prng, Prgen, Qrng, Qrgen,Qrng =Image(rhom ;java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
if IsPermPreCat1Group :ImagesSource rhom )java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
return IdentityMapping( PCG ); fi;
Psrc :=Prgen =List( ,- (irhom, g) ) if if HasName( Prng ) then
shom := IdentityMapping( (""Name(Prng ; else
: (Psrc)
Qsrc := java.lang.StringIndexOutOfBoundsException: Range [0, 21) out of bounds for length 7
shom =shom* (Qsrc ;
Qsrc := ImagesSource( QM : ( iso ;
Qsgen: ;
ishom := InverseGeneralMapping( ( QM,("",Name(PM ;
Psgen := List( Qsgen, g -> java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 7
shom := java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 0 fi;
Prng: (PCG) if IsPermGroup( Prng ) java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 15
rhom =( Prng ; else
Prgen := Prng, Prgen, Qrgen,QCG java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50 if IsPreCat1GroupWithIdentityEmbedding( (PCG );
rhom := RestrictedMapping
rhom := shom := IdentityMapping( Psrc ) Psrc )
Qrng := Imageshom : ()
rhom := rhom * := shom * SmallerDegreePermutationRepresentation
;
Qrng := ImagesSource( rhom );
Qrgen := SmallGeneratingSet =(Qsrc ;
: (shom )
irhom :Psgen =List >ImageElm(ishom, )
rhom: (rhom )
Prgen := List( java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
: (,Qrng,Prgen,Qrgen) fi;
PCG, ,rhom])
QCG := java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 8 if HasName( PCG ) then
SetName( QCG,( "c" ; fi;
iso := PreCat1GroupMorphism( PCG, QCG, shom, rhom );
; end );
############################################################################# ## #M RegularActionHomomorphism2DimensionalGroup . isomorphic pre-xmod & -cat1 ##
InstallMethod( = rhom * SmallerDegreePermutationReprese Qrng; "method for pre- " , [ ] 0java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70 function( PM )
local shom,,,Psgen ,Qsgen,Prng,Prgen,Qrng,Qrgen,
QM, iso;
if ( PM)
return IdentityMapping(Qrgen: ( )java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 fi;
Psrc : (PM)java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 if (Psrc then
shom := rhom := GroupHomomorphismByImages,Qrng,, ; else
Psgen := GeneratorsOfGroup( Psrc );
shom: ( ); if ( shom = fail ( )
fail; fi;
=( shom )
Qsgen := List( java.lang.StringIndexOutOfBoundsException: Range [0, 28) out of bounds for length 15
shom := GroupHomomorphismByImages( Psrc, Qsrc, Psgen, Qsgen ); fi;
Prng :=#M IsomorphismPc2DimensionalGroup . . . . constructs isomorphic pc-pre-xmod if ( HasIsNormalSubgroup2DimensionalGroup(PM)
and IsNormalSubgroup2DimensionalGroup(( ,
Print( "eneric pre- " true, ] 0, "#! property of being IsNormalSubgroup2DimensionalGroup\n" ); fi; if IsPcGroup( Prng ) then
rhom := IdentityMapping( Prng ); else
Prgenjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
rhom := return IdentityMapping ; if ( rhom = false ) then
false;
;
Qrng := java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 8
Qrgen := List( Prgen, r -> shom := IsomorphismPcGroup( Psrc
:= (Prng,Qrng, Prgen,Qrgen ) fi;
iso := IsomorphismByIsomorphisms( PM, [ shomfi
java.lang.StringIndexOutOfBoundsException: Range [28, 24) out of bounds for length 24 if HasName( PM ) ( Psrc,,Psgen, )
SetName( QM, Concatenation Prng: ) fi;
iso := if((PM)
return iso; end );
InstallMethod( ("#! modify IsomorphismPc2DimensionalGroup to preserve the\n", "generic method for pre-cat1-groups", true, fi
PCG java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
local shom, rhom, Prgen: (Prng)
G ;
ifIsPcPreCat1Group( )then
return IdentityMapping( java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 26 fi;
Psrc: ) if IsPcGroup( Psrc ) then
shom := IdentityMapping( Psrc ); else
Psgen := rhom := GroupHomomorphismByImages( Prng, Qrng, Prgen, Qrgen );
shom := IsomorphismPcGroup =IsomorphismByIsomorphisms( , rhom ])
=fail ) java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
return fail; fi;
Qsrc := ImagesSource java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
Qsgen := List( Psgen, java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 15
shom := GroupHomomorphismByImagesInstallMethod , fi;
Prng := Range( (PCG) if IsPcGroup( Prng ) then
rhom := IdentityMapping( local shom,, Psrc ,Qsrc,Qsgen,Prng,Prgen,Qrng, , else
Prgen :=
rhom := IsomorphismPcGroup ;
( =fail)then
return fail; fi;
Qrng := ImagesSource( rhom );
Qrgen := List( Prgen, r -> java.lang.StringIndexOutOfBoundsException: Range [0, 43) out of bounds for length 40
rhom : Psgen : )
;
iso := IsomorphismByIsomorphisms( PCG, [ shom, rhom ] );
QCG := Range( iso ); if HasName( PCG ) then ;
Concatenation("" Name( ) ) ; fi;
iso := PreCat1GroupMorphismQsgen =List(Psgen, >(shom s))
return iso; end ;
(PM )then
return IdentityMapping( PM ; fi;
c:=(PM ); if IsFpGroup
: ( ; else
Psgen := GeneratorsOfGroup#############################################################################
shom := IsomorphismFpGroup(#M IsomorphismFp2DimensionalGroup . . . . constructs isomorphic fp-pre-xmod if ( shom = fail ) then
return fail QM,iso; fi;
Qsrc := java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
Qsgen : , ->(shom,s );
shom := GroupHomomorphismByImages( fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 ifIsFpGroup )then
Prng : =( ) if ( HasIsNormalSubgroup2DimensionalGroupPsgen: (Psrc)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
and IsNormalSubgroup2DimensionalGroup(shom= fail)
; "#! property of being IsNormalSubgroup2DimensionalGroup\n" ); fi; if IsFpGroup( Prng ) then
rhom := IdentityMapping( Prng : Psrc,Qsrc,, ) else
Prgen := rsOfGroup Prng )
rhom : (Prng )
)then
return false; " modify topreservethe\, fi;
Qrng := ImagesSource( ;
Prgen - ImageElm(rhom ))
rhom := GroupHomomorphismByImages( Prng rhom =( ; fi;
iso := IsomorphismByIsomorphisms( PM, [ shom, rhom ] );
QM := Range( iso ); if (PM )
SetName( QM, Concatenation( "Pc", Name false; fi;
:PreXModMorphism(PM ,shom, )
return iso;
)
java.lang.StringIndexOutOfBoundsException: Range [45, 13) out of bounds for length 46 " for cat1groups" ,[ ] 0, function( PCG :Range iso)
local shom, rhom, Psrc, Psgen, Qsrc, Qsgen, Prng, Prgen, (QM,Concatenation(",Name(PM)))java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
QCG java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
if IsFpPreCat1Group( java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
return "generic method for pre-,true ] , fi;
Psrc := local shom rhom,Psrc,Psgen,,Qsgen ,Prgen,Qrng if IsFpGroup( Psrc ) then
yMapping(Psrc ) else
Psgen : ( src )
shom := IsomorphismFpGroup( : ( ; if ( shom = fail ) then
return fail; fi;
Qsrc: (shom)
Qsgen := List( (= fail )then
shom := GroupHomomorphismByImages( Psrc fi;
Prng := Range( PCG ); if : P - (shom, s ) )
( Prng)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 else
Prgen if ( Prng)then
( Prng) if ( rhom = fail else
return ;java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 fi;
rce );
Qrgen := List( java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
rhom := :=ImagesSource() fi;
iso := IsomorphismByIsomorphisms( PCG, [ shom, rhom ] ); rhom: (Prng ,,Qrgen ;
QCG := Range( iso ); if HasName(PCG)then
SetNameQCG =Range ; fi;
iso := PreCat1GroupMorphism( PCG, QCG, shom, rhom );
iso; end;
############################################################################# ## #M IsomorphismPreCat1Groups . isomorphism between a pair of pre-cat1-groups #M IsomorphismCat1Groups . . isomorphism between a pair of cat1-groups ##
InstallMethod( #M IsomorphismCat1Groups . . isomorphism between a pair of cat1-groups
-cat1-" ,
[ IsPreCat1Group, "generic method for 2 pre-cat1" , function( C1G1, C1G2 )
local sym1, function(,C1G2)
G1, G2, sphi, isphi, java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
,,t2 ,t3,h3 C3,phi,,iterG2,
salpha, ralpha, ,G2, sphi ,,R2,,,R3,
if not ( ,mgira isalpha,R4, ,rmorjava.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
fi;
ok1 := java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 8
ok2 := IsPreCat1GroupWithIdentityEmbedding( C1G2 );
C1 := C1G1;
C2 := C1G2; if not ( ok1 andif ( ok1andok2 ) ifthen
C1 := IsomorphicPreCat1GroupWithIdentityEmbedding( C1G1 );
end1 :( C1G1; else
C1 :=;
end1 := IdentityMappingelse fi; if not ok2 then
C2 := IsomorphicPreCat1GroupWithIdentityEmbedding( C1G2 ;
end2 := IsomorphismToPreCat1GroupWithIdentityEmbedding( C1G2 );
iend2 := InverseGeneralMapping( end2 ); else
C2 := C1G2;
end2: ( C2 )java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
iend2 := end2; C2=;
mor := : ; if ( mor = fail ) then : ( C1 )
return fail; fi
return end1 * mor * fi;
sym1lGroup ;
sym2 := IsSymmetric2DimensionalGroup( C2 ); if ( sym1 <> sym2 ) then
Infosym1: (C1 );
returnfail; fi;
G1 : ;
G2 := Source Info(InfoXMod, ,"ym1 >sym2";java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 if not ( G1 = G2 G1 =Source(C1)
sphi := IsomorphismGroups( G1, G2 );
(sphi fail
Info if )
; fi;
isphi := java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 else
sphi := IdentityMapping( G1 );
isphi := IdentityMapping( G1 ); fi;
R1 := Range( C1 );
R2 := Range( C2 );
rphi := RestrictedMapping( sphi, R1 ) =( G1)
mgirphi := java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 22
R3 := Image( rphi rphi =RestrictedMapping(,R1 )java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
rphi := GroupHomomorphismByImages( R1, R3 : (rphi ;java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
t1 : (C1)
t2 := TailMap( C2 );
h1 := HeadMap( C1 );
h2 := HeadMap( C2 );
t3 := isphi * t1 * rphi;
h3 := isphi * h1 * t3 := isphi * t1 * rphi ifnot (t3 )andjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
IsGroupHomomorphism( h3 ) ) then
Error( "t3,h3 fail to be group homomorphisms ("3 to ") fi;
C3 := PreCat1GroupWithIdentityEmbedding( t3, h3 );
: (C1,C3, sphi,rphi )
autG2 := AutomorphismGroup(autG2 : AutomorphismGroup ;java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
=Iterator ;java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 while not IsDoneIterator( iterG2 ) do
salpha := NextIterator( iterG2 );
ralpha := RestrictedMapping: Image( ;
R4:=(ralpha )
mgira := MappingGeneratorsImagesralpha: (R3,,mgira[] 2 ;
(R3,R4,1,mgira[])java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
isalpha := InverseGeneralMapping( salpha );
t4 := isalpha * t3 * ralpha;
: isalpha *h3 * ralpha;java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
C4 := PreCat1GroupWithIdentityEmbedding( t4, h4 ); if ( C4 = C2 ) then
smor := sphi * salpha;
: *;
mor := return mor ;java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
return mor;
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
od;
Info( InfoXMod, 2, "tried java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
; end );
,"enericmethod for -"java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
true, [ IsCat1Group, IsCat1Group ]
( , java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
local iso, ok;
iso : ; if ( iso = fail ) then
return fail; fi;
= (iso java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 if returnjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
Error( "found a pre-cat1 morphism which## fi;
return iso; end );
############################################################################# ## #M Name for a pre-xmod ##
InstallMethod( Name, ,,namejava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
[ Is2DimensionalMapping ], 0,
:=".];
if HasName( Source( fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
nsrc := nrng: (mor) else
nsrc =".]; fi; if HasName( Range name :Concatenation [,nsrc,"=>" ] ;
nrng :Name( Range( )) else
nrng := "[..]"; fi;
#############################################################################
SetName( mor, name );
return name;
)
############################################################################# ## #M PreXModMorphismByGroupHomomorphisms( <P>, <Q>, <hsrc>, <hrng> ) ## . . . make a prexmod morphism ##
, " fail;
[ IsPreXMod, IsPreXMod, IsGroupHomomorphism, java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 7 function src ,rnghom )
localfilter,fam, ,ok,nsrc, ,name
if ((rchom)and ()) then
Info( InfoXMod, 2,
return fail; fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
mor := java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 8 if not IsPreXModMorphism( mor ;
Info( InfoXMod, 2, "not a morphism of pre-crossed modules.\n" );
fi; if ( HasName( Source(src) ) and else
nsrc := Name( src ); else
: "." fi; if ( HasName( Source(rng) )and ok :java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
nrng := Nameend) else
nrng := "[..]"; fi;
name := Concatenation( "[", nsrc, ##
SetName( mor, name );
ok := IsXModMorphism( mor ); # ok := IsSourceMorphism( mor );
return mor[IsPreCat1Group,I],java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
java.lang.StringIndexOutOfBoundsException: Range [34, 6) out of bounds for length 6
############################################################################# ## #M PreCat1GroupMorphismByGroupHomomorphisms( <P>, <Q>, <hsrc>, <hrng> ) ##
InstallMethod( Info( InfoXMod, 2, "notof pre- \") "for pre-cat1-group, pre-java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 7
IsPreCat1GroupIsPreCat1Group,,] 0,
(src, ,srchom rnghom)
local filter, fam, mor
; if not ( ( mor <> fail ) and IsPreCat1GroupMorphism( mor ) ) then
Info InfoXMod,,"a java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 67
return fail; fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 if : "[."java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
);
mor ;
nsrc := "[..]"; fi; if
nrng := Name( rng ); else
nrng := "[..]"; fi;
name := Concatenation( "["( ,"or2 2homomorphisms" true,
SetName( mor, name );
ok : ( mor );
return mor; end );
############################################################################# ## #M Cat1GroupMorphismByGroupHomomorphisms( <Cs>, <Cr>, <hsrc>, <hrng> ) ## . . . make cat1 morphism ##
,"or and 2" java.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 94
[ IsCat1Group, IsCat1Group, IsGroupHomomorphism, IsGroupHomomorphism ], 0, function( src, rng, srchomend);
local mor, ok;
mor := PreCat1GroupMorphismByGroupHomomorphisms( src,## . . . . . . . . . . . . . . . . . . . . for a morphism of pre-cat1 groups
ok :InstallMethod(,"ethod a morphism pre-at1 groups"true,
ok then
)
java.lang.StringIndexOutOfBoundsException: Range [10, 7) out of bounds for length 7
return mor; end );
############################################################################# ## #M String, ViewString, PrintString, ViewObj, PrintObj ## . . . . . . . . . . . . . . . . . . . . for a morphism of pre-cat1 groups ##
InstallMethod( String, "InstallMethod( PrintString, "fmethod for a morphism of pre-cat1 groups", true,
[] 0 function( mor )
return( STRINGIFYInstallMethod ," morphism ofpre- groups,true,
String((mor) ,""));java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59 end );
Method ,"method for a morphism of pre-cat1 groups", true,
[ java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 6
InstallMethod( ViewObj, "method for a morphism of pre-cat1 groups" ,0,
[ IsPreCat1GroupMorphism ], )then
(mor) if HasName( mor ) then
Print( Name( mor ), "\n" ); else
Print( "[", Source( mor ), " => ", Range( mor ), "]" ); fi; end );
InstallMethod( PrintObj,#M TransposeIsomorphism for a pre-cat1-group
[ lMethod TransposeIsomorphism,"ethod for cat1-roup",,
( mor ) if HasName( mor ) then
Print( Name( mor function C1G ) else
Print [, (mor ) = , Range(mor ) ] ); fi; end );
############################################################################# ## #M TransposeIsomorphism for a pre-cat1-group ##
ee: )
[ [IsPreCat1Group] , function ->(,(hg)*g^-*ImageElme,t) ;
local rev shom=( src,src,gensrc,im)
rev: (C1G ;
src := Source ( C1G ,shom, ;
: (src)
t := java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
h := HeadMap( C1G );
e := RangeEmbedding( C1G );
im := InstallOtherMe( IsInjectivejava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
* ImageElm(,(,) ;
shom := GroupHomomorphismByImages( src, src, gensrc, im ) - ( ( ))
rhom =IdentityMapping( ange ))java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
return ############################################################################# end );
############################################################################# ## #M IsInjective( map ) . . . . . . . . . . . . . for a 2Dimensional-mapping ##
, "method for a >( ( (map java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
map -> ( IsInjective(
and IsInjective( RangeHom( map ) ) ) );
############################################################################# ## #M IsBijective( map ) . . . . . . . . . . . . . for a 2Dimensional-mapping ##
#? temporary fix 08/01/04 --- need to check correctness "method for a ##
( map ) )
and "method for a 2d-mapping ,0,
############################################################################# ## #M IsEndomorphism2DimensionalDomain( map ) . . for a 2Dimensional-mapping #? temporary fix 08/01/04 --- need to check correctness #M IsAutomorphism2DimensionalDomain( map ) . . for a 2Dimensional-mapping ##
InstallMethod( IsEndomorphism2DimensionalDomain, " for a d-",java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 66
map -############################################################################
IsEndoMapping( RangeHom( map ) )M IsSourceMorphism( mor ) . . . . . . . . . . . . . . for an xmod morphism
(, "method for a 2d- [ IsXModMorphism ], 0
map -> IsEndomorphism2DimensionalDomain( java.lang.StringIndexOutOfBoundsException: Range [0, 49) out of bounds for length 0
############################################################################# ## #M IsSourceMorphism( mor ) . . . . . . . . . . . . . . for an xmod morphism ##
(mor ( Srng)))java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61 "method for a morphism of crossed modules", true#############################################################################
[ IsXModMorphism ], 0, function( mor )
local , Rrng;
Srng := Range( Source( mor ) );
Rrng := Range( Range( mor ) );
return ( ( Srng ,kerR ;
( RangeHom( mor if( )then end );
############################################################################# ## #M Kernel . . . . . of morphisms of pre-crossed modules and pre-cat1-groups ##
InstallOtherMethod( #############################################################################
true, [ Is2DimensionalMapping ], 0, function( map )
localkerS ;
if HasKernel2DimensionalMapping( map ) then
return Kernel2DimensionalMapping( map ); fi;
kerS := local X1, X2,,src2 , ,y ,S,,Saut,
= Kernel(RangeHom );
K := Sub2DimensionalGroup(act ,idsrc1 ,;
SetKernel2DimensionalMapping( map, K );
= (mor ;
############################################################################# ## #M PreXModBySourceHom . . . top PreXMod from a morphism of crossed P-modules ##
InstallMethod( PreXModBySourceHom, "for a pre-java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 51
true, ] 0, function( mor )
local X1, X2, src1 if not (=rng2 java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
gensrc1, genrng1, gensrc2, ngrng1, ngsrc2, inn, innaut (InfoXMod ,java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
act, images, idsrc1, idrng1, isconj;
;
X2 := Range( mor );
src1:= ;
src2 =Source )
rng1 := Range( gensrc2:( src2 )
rng2 :=Range )
idsrc1 : ngsrc2: ;
: (rng1 rng1 )java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
if not ( rng1 = rng2 )
not (RangeHom )= )then
Info( InfoXMod : - z ; "Not a morphismNot morphism of common range" );
return fail; fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 41
genrng1( rng1)
gensrc2 :S:=(SourceHom mor ,act)java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
ngrng1 := Length( genrng1
ngsrc2 := Length( gensrc2 );
bdy2 := ############################################################################
innaut := [ ]; for y in gensrc2 do
z := ImageElm( bdy2, y );
images := List( gensrc1, x -> x^z );
inn := GroupHomomorphismByImages( java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 37
Add( innaut, inn );
od;
Saut = (innaut, idsrc1 ;
act := imsigma, sigma,, ,mor;
S := XModByBoundaryAndAction( SourceHom( =Source( );
isconj := IsNormalSubgroup2DimensionalGroup =XModOfCat1Group )
return S; end );
urce )
=( );
X1 =(C1;
X2 := XModOfCat1Group( (phi,)
S1 =Source(X1 );
R1 := Range( X1 );
S2 := Source( X2 );
R2 := Range( X2 );
t1 := TailMap(( ,"or an morphism"
K1 :Kernel(t1); if not ( K1 = S1 ) java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 15
Kernel()= S1 ;java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 fi;
genS1 := GeneratorsOfGroup( S1 );
);
rho := RangeHom(
imsigma: (genS1, s >ImageElm(,s ));
sigma : =Range(mor )
mor
SetXModMorphismOfCat1GroupMorphism( phi, mor
SetCat1GroupMorphismOfXModMorphism( mor, phi );
return mor; end ;
InstallMethod = rec1.;
C2 :rec2;java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 function( mor ) :Source ;java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
X1 := Source( mor );
X2 : )
rec1 : isemb1 :( semb1); if ( X1 = X2 ) then
rec2 := rec1; else
rec2 =( ) fi;
C1 := rec1.precat1;
C2: .precat1
G1 ImageElm,
G2 :=(C2 );
smor := SourceHom( mor );
rmor := RangeHom: List(geneR1 >ImageElm(remb2,
: rec1.;
remb1 := rec1.xmodRangeEmbeddingIsomorphism;
semb2 := rec2.xmodSourceEmbeddingIsomorphism;
=(imeR1 imeS1 )
=(semb1 )java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
=( remb1 )
geneS1 := GeneratorsOfGroup( rec1.SetCat1GroupMorphismOfXModMorphism phi )
: (rec1. )
genG1 := Concatenation( phi;
imeS1 := List( geneS1, sjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
##
ImageElm( isemb1, s ) ) ) );
imeR1 := List( geneR1, r -> ImageElm( remb2,
ImageElm( rmor,
r ) )) );
imsphi := Concatenation( IsPerm2DimensionalGroup]0,
sphi := GroupHomomorphismByImages( G1, G2,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
phi := Cat1GroupMorphismByGroupHomomorphisms(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
: ;
SetXModMorphismOfCat1GroupMorphism , );
return phi; end );
############################################################################# ## #F SmallerDegreePermutationRepresentation2DimensionalGroup( <obj> ) ##
InstallMethod( java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 7 "method for a pre-java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
[ ]0, function( obj )
local src, rng, sigma, rho, mor;
if IsPerm2DimensionalGroup( obj ) then
src := Source( obj );
rng :=Range( )
sigma := SmallerDegreePermutationRepresentation( src );
rho := SmallerDegreePermutationRepresentation( rng );
mor := ;
r; else
return ; fi; end );
############################################################################# ## #M AllCat1GroupMorphisms . . . . morphisms from one cat1-group to another ##
InstallMethod( AllCat1GroupMorphisms not(mor= )and(
IsCat1Group ]0, function( C1G1, C1G2 )
local G1, R1, G2, R2, homG, homR, morse ;
G1 := java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 2
R1 := Range( C1G1 );
G2 := Source( C1G2 );
R2 := Range( C1G2 );
homG := AllHomomorphisms( G1, G2java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
homR := AllHomomorphisms( R1, R2 );
: ;java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
for rho in homR do
:(
C1G1, C1G2, gamma, rho ); ifids:[]
Add( mors, mor );
J1KQ =Range()
nat1 := NaturalHomomorphismByNormalSubgroup( R1, J1 );
KR1 := Image( nat1, R1 );
LS :=incX:=(X1);
CLS: (LS);
LR := LatticeSubgroups( R1 );
CLR := ConjugacyClassesSubgroups( LR );
idK1 := IdGroup( K1 ); if show then
Print( "kernel-cokernel: ", StructureDescription( K1 ), "\n" ); fi; forCP in CLS do for P in CP - nat1 )) ;java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76 for CQ in CLR do for Q in CQ do if not ( ( P = S1 ) and ( Q = R1 ) ) then ifshowthenjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 if ( X2 <> fail ) then
bdy2 := Boundary( X2 );
K2 := KernelCokernelXMod( X2 );
: IdGroup ) if ( idK2 = idK1 ) then
KP := Source( K2 );
KQ := Range( K2 );
J2: (bdy2 )
genP := GeneratorsOfGroup( P );
("dy2:,
incX := InclusionMorphism2DimensionalDomains(X1,X2);
incP := SourceHom( incX );
incQ := RangeHom( incX );
alpha := InclusionMappingGroups( KS1, KP );
beta := InclusionMappingGroups( J1 fijava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
:=(Q,2;
genKQ
preKQ := List( genKQ,
g -> PreImagesRepresentativeNC(nat2,g) );
imgamma := List( return ids;
g -> Image( nat1, Imagejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
gamma := GroupHomomorphismByImages(
ids ,S1 ,LR K1,KS1 KR1,
isoK:=PreXModMorphismByGroupHomomorphisms
K2, K1,alphagamma ;java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63 if(C1;java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 if show then ":sub- "
StructureDescription(X2), "\n" ); fi;
C2 := Cat1GroupOfXMod( X2 );
incC := Cat1GroupMorphismOfXModMorphism( incX );
G2 := Source( C2 );
gen2 := GeneratorsOfGroup( G2 );
idgp := IdGroup( C2 );
idcat := idK1 =IdGroup )java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 if show then
Print(
ructureDescription ,\")
Print( "bdy2: ",
MappingGeneratorsImages(bdy2), "\n"); fi;
tot := tot + 1
Add( ids, idcat );
Add( maps, incC ); fi;
natP := SourceHom(natX
fi;
od;
od;
od;
od;
return ids; end );
############################################################################# ## #M QuotientQuasiIsomorphism( <cat1>, <print> ) ##
InstallMethod( QuotientQuasiIsomorphism, "for java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
function( C1, showim : ,g >( g));
local tot, ids KS1 ,genKS1 );
nat1, J1, idK1, P, genP, Q, genQ, X2 natKR1 := NaturalHomomorphismByNormalSubgroup R1,J1)
F2, FP, FQ, bdyF, K2, idK2, J2, KP, KQ, natKQ, JF, genKS1preKR1 : List( genKR1
imKS1, alpha, natKR1, genKR1, preKR1, im1KR1, im2KR1, gamma, isoK,
java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 49
tot := 0;
ids = java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
maps := [ ];
G1 := Source( C1 );
R1 := Range( C1 );
X1 := XModOfCat1Group( C1 );
idX1 := IdentityMapping( X1 );
S1 =Source X1)
bdy1 ,K2,alpha,gamma );java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
java.lang.StringIndexOutOfBoundsException: Range [22, 6) out of bounds for length 35
KS1 := Source( K1 );
KR1 := Range( K1 );
J1 := ImagesSource( bdy1 );
nat1 := NaturalHomomorphismByNormalSubgroup( R1, J1 );
LS := NormalSubgroups( S1 ); 1;
idK1 := IdGroup G2 :=Source( ) if show then
Print( "kernel-cokernel: ", StructureDescription( K1 ), "\n" ); fi; forP do for Q in LR do if not ((Size)= 1)and (SizeQ = 1) ) then
X2 := SubXMod( X1, P, Q ); if ( X2 <> fail ) and IsNormal( X1, X2 ) then
bdy2 := Boundary( X2 );
genP := GeneratorsOfGroup( P );
genQ := GeneratorsOfGroup( Q );
natX := NaturalMorphismByNormalSubPreXMod( X1, X2 );
natP := SourceHom( natX );
natQ := RangeHom( natX );
F2=java.lang.StringIndexOutOfBoundsException: Range [37, 27) out of bounds for length 37
tot: ;
FQ := Range( F2 );
bdyF : Boundary( F2 )
K2 := KernelCokernelXMod( F2 );
idK2 : IdGroup K2 )
J2 := ImagesSource( bdy2 ); if ( idK2 = idK1 ) then
KP := Source( K2 );
KQ ;
JF := ImagesSource( bdyF ); od;
natKQ := return ids;
genKS1 := GeneratorsOfGroup( KS1 );
imKS1 := List( genKS1, g -> ImageElm( natP, g )#############################################################################
alpha := GroupHomomorphismByImages(
KS1, KP, genKS1, imKS1 );
natKR1 := NaturalHomomorphismByNormalSubgroup( R1, J1 );
genKR1 := GeneratorsOfGroup( KR1 );
preKR1 : [IsCat1Group,IsList, IsBool ,0
g -> PreImagesRepresentativeNC( natKR1
im1KR1
: NaturalHomomorphismByNormalSubgroup )
im2KR1 := ## deal with trivial cases first
gamma := GroupHomomorphismByImages(
KR1, KQ, genKR1, im2KR1 );
isoK := PreXModMorphismByGroupHomomorphisms(
K1, K2, alpha, gamma ); if IsBijective : QuotientQuasiIsomorphism(C show);java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49 if show then
Print((: normal subxmod: ",
StructureDescription( X2 ), "\n" ); fi;
natC := Cat1GroupMorphismOfXModMorphism( natX );
)java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
( )
[ IsXMod, IsList, IsBool,
idgp := IdGroup( C2 )
idcat := IdCat1Group( C2 ): IdCat1Group C ); if idcat = "not known"then
Display( java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 6 fi; if show then
Print( idgp, ", ", idcat, ", ",
StructureDescription(C2), "\n" );
Print( "bdy2: ",
MappingGeneratorsImages(bdy2), "\n" ); fi;
tot := tot + 1;
Add( ids, idcat );
Add( maps, natC ); fi; fi; fi; fi;
od;
od;
return ids; end );
## deal with trivial cases first
ids := [ id ];
K := KernelCokernelXMod( C ); if Product( Size2d(K) ) = ids[1][1] then
return [ IdentityMapping( C ) ]; fi;
qmor := QuotientQuasiIsomorphism( C, show );
smor := SubQuasiIsomorphism( C, show ); ## maps := Concatenation( qmor[1], smor[1] );
ids := Set( Concatenation( ids, qmor, smor ) ); ## Print( "combined ids", ids, "\n" );
return ids; end );
InstallMethod( QuasiIsomorphism, "for a crossed module", true,
[ IsXMod, IsList, IsBool ], 0, function( X0, idX, show )
local C, id, D;
C := Cat1GroupOfXMod( X0 );
id := IdCat1Group( C );
D := QuasiIsomorphism( C, id, show );
return XModOfCat1Group( D ); end );
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.40Bemerkung:
¤
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.