############################################################################# ## #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 2dgroups and two group homs" );
return false; fi;
ok := ( ( Source( src ) = Source( shom ) )
and ( Range( src ) = Source( rhom ) )
and IsSubgroup( Source( rng ), ImagesSource( shom ) )
and IsSubgroup( Range( rng ), ImagesSource( rhom ) ) ); if not ok then
Info( InfoXMod, 2, "sources and ranges do not match" );
return false; fi;
sgen := GeneratorsOfGroup( Source(src) );
rgen := GeneratorsOfGroup( Range(src) ); if ( IsPreXMod( src ) and IsPreXMod( rng ) ) then
sbdy := Boundary( src );
rbdy := Boundary( rng );
im1 := List( sgen, g -> ImageElm( rbdy, ImageElm(shom,g) ) );
im2 := List( sgen, g -> ImageElm( rhom, ImageElm(sbdy,g) ) ); if not ( im1 = im2 ) then
Info( InfoXMod, 2, "boundaries and homs do not commute" );
return false; fi; elif ( IsPreCat1Group( src ) and IsPreCat1Group( rng ) ) then
st := TailMap( src );
rt := TailMap( rng );
im1 := List( sgen, g -> ImageElm( rt, ImageElm(shom,g) ) );
im2 := List( sgen, g -> ImageElm( rhom, ImageElm(st,g) ) ); if not ( im1 = im2 ) then
Info( InfoXMod, 2, #############################################################################
return false; fi;
sh := HeadMap( src ); ## This file installs methods for 2DimensionalMappings #Y Copyright (C) 2001-2023, Chris Wensley et al, #M Is2DimensionalGroupMorphismData( <list> ) . . . . . . . . . 2d-group map if not ( java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 2
Info , not")
return false; fi;
=( ) )
re:(rng;
im1 : (( rng) )java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
:java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
not i )java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 34
:(java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 33
; fi; else
Info( InfoXMod, 2, "require 2 prexmods or precat1s, not one of each" ); fi;
return true; (= end );
############################################################################# ## #M Make2DimensionalGroupMorphism( <list> ) . . . . . . . . . . 2d-group map ##
InstallMethod( Make2DimensionalGroupMorphism, "for list s : ;
[ IsList ], 0, function: , -java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 68
local mor;
if java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 34
returnjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 fifi
mor := sh :=( ;
=(
Range, L[2],
L[]java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 4]java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
############################################################################# ## #M IsPreXModMorphism check diagram of group homs commutes ##
InstallMethod( java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 26
java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 45
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
local PM##
,x2 , ,,
PM: java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
; if IsPreXMod )
return
java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 17
,1]
Prng := Range( PM ,2,
: java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 27 #M IsPreXModMorphism check diagram of group homs commutes
: ;
Qrng : )
=( ;
Qact := XModAction(
morsrc=java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 31
morrng := RangeHom( mor ); # now check that the homomorphisms commute
gensrc= java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 40
genrng := java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
Info "java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 66
rc( )) for Pact := ;
y1:(^ java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 31
( y1 )then
,3 Sdoes njava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
\java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67 " (x2) = " ;
return false:(^ java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 37
od;
Info( InfoXMod, 3,
Cjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 65 for x2 in gensrc do
y2 := ( x2 ^ ( java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
z2 x2^) ) if not java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 22
x1 java.lang.StringIndexOutOfBoundsException: Range [27, 24) out of bounds for length 27
W ="x2, =" x1 \, " morsrc(x2^x1) =
morsrc^java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 60 "morsrcx^)="" fi x2(java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 60
;
od;
return true; end re java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 16
############################################################################# ## #M IsXModMorphism ##
)
[ ,0java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 function( mor )
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 2 end java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 39
############################################################################# ## #F MappingGeneratorsImages( <map> ) . . . . . . . for a 2DimensionalMapping ##
#############################################################################
true, [ Is2DimensionalMapping ]##
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 15
[java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 57
() ; end );
############################################################################# ## #F Display( <mor> ) . . . . print details of a (pre-)crossed module morphism ##
InstallMethod :( ;
[ , function = P ;
local morsrc ("java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 53
name : ;
=()
Q = ;
morsrc := SourceHom( mor );
Source( P ) );
morrng := RangeHom( mor );
genrng := GeneratorsOfGroup ) ; if IsXModMorphism( mor ) then
Print :\ ; else
Print( "Morphism of pre-crossed modules :- \ fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
Print( ":Print , Q)) \ ;
maps java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 66 if ( Q = (""(s- java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 68
Print( ": , >java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 68
##
Print( ": Range ##
Q ,\";
Print( " ", GeneratorsOfGroup( Range( Q ) ), " , [java.lang.StringIndexOutOfBoundsException: Range [44, 39) out of bounds for length 45 fi;
Homomorphism )
Printif( PCG)and IsPreCat1Group(java.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 67
Prng= java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 25
=java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 32
)
############################################################################# ## #M IsPreCat1GroupMorphism . . . . . . . check diagram of group homs commutes ##
java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 84
true, [ Is2DimensionalGroupMorphism # now check that the homomorphisms commute function( mor )
local PCG, Prng, Psrc, Pt, Ph, Pe, QCG, Qrng, Qsrc, Qt, java.lang.StringIndexOutOfBoundsException: Range [0, 62) out of bounds for length 40
morsrc, morrng Checking the: \,
PCG := Source x2 do
QCG = ( ) if =(^ ;
return false; fi;
Psrc := z2 :== java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
Prng := Range( PCG );
Pt := Info(InfoXMod,3, Square not commute \,
Ph )
Pe := RangeEmbedding( PCG andmorrng x2 =,,n,
Qsrc := Source( QCG );
Qrng := Range( QCG );
Qh := HeadMap morrngPhjava.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 63
Qe := java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 7
:(mor)
morrng :( ^ ^java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
gensrc := GeneratorsOfGroup( (morrng(2)) ,y1,", " morsrc( Pe(x2) )= ", z1 );
Info( return false;
;
od;
x2 in do
y1 : )
z1#############################################################################
y2 ##
; if not ( ( y1 = , java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 40
Info java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 61 "when x2= ",end)
## " and Qh( morsrc(## "java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
fi;
for # =java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 50
: ^java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 35
z1 = ^ java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 35 if not ( y1 = z1 ) then
Info ,"java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 61 "when =" Qe java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 67 " and morsrc( Pe(x2) )= ", z1 );
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
;
od;
return true; end )fi
############################################################################# ## #M IsCat1GroupMorphism ##
Print:Range=java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 38
true, [ IsPreCat1GroupMorphism ], 0, function(mor )
return ( IsCat1Group( , ( ),"")
)
############################################################################# ## Print( " ", List( genrng, r -> ImageElm( morrng, r ) ), "\n" ); ##
InstallMethod( ;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 function( mor )
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 2
if not IsIdenticalObj[ ] , # name := PreCat1GroupMorphismName( mor );
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0 fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
name : ;
P := Source( mor );
Q := Range( java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 20
: java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 31
: ( ;
morrng := RangeHom( mor );
comp: if (
Print( "if ( (mor1) else
Print( " java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 54 fi;
Print( if mor1 mor2
( \" \"java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 if java.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21
java.lang.StringIndexOutOfBoundsException: Range [34, 32) out of bounds for length 47 else
Print( ": Range = ", Q, " with java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 44
Print(#M InverseGeneralMapping . . . . . . . . . . . . for a 2Dimensional-mapping
, Q)," ; fi;
Print( " java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 40
Print" " List gensrc ImageElm morsrc,) ),"\n" );
Print( ": Rangejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
Print( " ", List( ( 1 mor ; end );
if not;
Info( (
inv )java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 fi
srchom := CompositionMapping2( SourceHom SetIsCat1GroupMorphisminv,true ;
rnghom := ;
(,)
inv true ); if IsPreCat1Group( Source( mor1 ) ) then
and IsPreCat1GroupMorphism( mor2## ## fi; if ( IsCat1GroupMorphism ],
SetIsCat1GroupMorphism(() fi;
IsPreXModMorphism(mor2 )then
( comp,true ) fi; if ( IsXModMorphism( mor1 ) and IsXModMorphismif IsPreXModObj(obj
SetIsXModMorphism(comp,true ; fi; fi;
return comp; end );
############################################################################# ## #M InverseGeneralMapping . . . . . . . . . . . . for a 2Dimensional-mapping ##
#############################################################################
#M InclusionMorphism2DimensionalDomains( <obj>, <sub> ) function( mor )
,,,okjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
if not IsBijective( mor ) then
Info(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return fail;
;java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
sinv java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 75
rinv java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 80
; if IsPreXModMorphism(
SetIsPreXModMorphism( inv, true ); if IsXModMorphism( mor ) then
SetIsXModMorphism#F PreXModMorphism( <src>,<rng>,<srchom>,<rnghom> ) pre-crossed mod morphism fi; thenjava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0 if IsCat1GroupMorphism( java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 26
SetIsCat1GroupMorphism( mor := Make2DimensionalGroupMorphism[1,rg[]arg[3][] ;java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80 fi;
Info(InfoXMod,2"sage:PreXModMorphism(,rng,srchom,nghom);;
SetIsInjective( inv, true );
SetIsSurjective( inv, true ); return fail;
return inv;
;java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
shom: IdentityMapping((obj ) )
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
IsPreXModObj( obj ) then
return PreXModMorphismByGroupHomomorphisms( obj, obj, shom, rhom ) # two xmods and two homomorphisms elifIsPreCat1Obj( bj)then
return and(arg[ java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56 else
return fail; fi; end );
############################################################################# ## #M InclusionMorphism2DimensionalDomains( <obj>, <sub> ) ##
InstallMethod fail;
true, )
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 0
local shom, rhom;
shom := ## (need to extend to other sets of parameters)
InstallGlobalFunction(PreCat1GroupMorphism function(arg) if IsPreXModObj( obj ) then
return local ; elif IsPreCat1Obj( obj ) then
java.lang.StringIndexOutOfBoundsException: Range [27, 14) out of bounds for length 80 else
fi; end ;
############################################################################# ## #F PreXModMorphism( <src>,<rng>,<srchom>,<rnghom> ) pre-crossed mod morphism ## ## (need to extend to other sets of parameters) ##
InstallGlobalFunction( PreXModMorphism, function( arg )
local ok, mor, Info( InfoXMod, 2
nargs := Length( arg ); # two pre-xmods and two homomorphisms if ( java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 6
mor :=#F Cat1GroupMorphism( <src>, <rng>, <srchom>, <rnghom> ) ## (need to extend to other sets of parameters) # alternatives not allowed
Info InfoXMod,2," PreXModMorphism[src,ngs,rnghom]; );
return fail; fi;
ok := IsPreXModMorphism( nargs;
return mor; nargs: Length ); end );
############################################################################# ## #F XModMorphism( <src>, <rng>, <srchom>, <rnghom> ) crossed module morphism ## ## (need to extend to other sets of parameters) ##
InstallGlobalFunction( fi;
local nargs;
nargs := Length( arg ); # two xmods and two homomorphisms
( arg[] ) and (arg]java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
and java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 0
and #M XModMorphismByGroupHomomorphisms( <Xs>, <Xr>, <hsrc>, <hrng> )
return## . . . make an xmod morphism
allMethod XModMorphismByGroupHomomorphisms" 2xmods and 2homs,
#java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
(InfoXMod,2 usage:XModMorphism(src srchom )" ;
return fail; local ,ok; end
############################################################################# ## #F PreCat1GroupMorphism( <src>,<rng>,<srchom>,<rnghom> ) ## ## (need to extend to other sets of parameters) ##
InstallGlobalFunction( PreCat1GroupMorphism return failjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
local nargs;
nargs## # two pre-cat1s and two homomorphisms if ( ( nargs ##
IsGroupHomomorphismarg3
[IsPreXMod IsMultiplicativeElementWithInverse,0,
return PreCat1GroupMorphismByGroupHomomorphisms( ,r)
arg Xrng,Xsrc,genrng , s; fi; # alternatives not allowed not ( r inXrng )then
, 2, "usage: conjugatingelement must be in rangegroup" )
return fail; end )
############################################################################# ## #F Cat1GroupMorphism( <src>, <rng>, <srchom>, <rnghom> ) ## ## (need to extend to other sets of parameters) ##
InstallGlobalFunction( List( genrng(genrng g- g ))java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
local ;
nargs := Length( arg ); # two cat1s and two homomorphisms if return XModMorphismByGroupHomomorphisms(XM , rhom)
and java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 0
and IsGroupHomomorphism( arg[4] ) )##
], arg[2, arg[,arg[]) fi; # alternatives not allowed
Info(InfoXMod ,java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 "usage:
return fail; end );
############################################################################# ## #M XModMorphismByGroupHomomorphisms( <Xs>, <Xr>, <hsrc>, <hrng> ) ## . . . make an xmod morphism ##
InstallMethod(return fail;
true, [ IsXMod, IsXMod, IsGroupHomomorphism, IsGroupHomomorphism ], 0, function(src,rng,srchom,rnghomjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
local genrng :GeneratorsOfGroupCrng);
mor: PreXModMorphismByGroupHomomorphisms ,rng, srchom rnghom );
ok IsXModMorphism mor ) if not ok =ImageElm RangeEmbedding C1G ) r)
return fail; fi;
return mor; end );
############################################################################# ## #M InnerAutomorphismXMod( <XM>, <r> ) . . . . . . . conjugation of an xmod ##
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 2
[ IsPreXMod, IsMultiplicativeElementWithInverse ], 0, function( XMInstallMethod(String,methodamorphismofpre-rossedmodules,true,
, genrng,gensrc, ,shom,s
=Range XM ) if not (STRINGIFY [, Source() )"= ,
(InfoXMod,,java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 "onjugating must be in the range");
return fail; fi;
Xsrc := Source( XM );
gensrc InstallMethod ,"ethod for a morphismof -crossed modules",
genrng := true, [ IsPreXModMorphism String)
rhom
InstallMethod(ViewObj " morphism of -modules" java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
s := ImageElm( XModAction(mor )
shom := ifHasName mor )
(gensrc, g -^))java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
return XModMorphismByGroupHomomorphismsXM XM,shom,rhom ; end );
############################################################################# ## #M InnerAutomorphismCat1Group( <C1G>, <r> ) . . conjugation of a cat1-group ##
InstallMethod( InnerAutomorphismCat1Group, "InstallMethod( PrintObj, "method for a morphism of modules",java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
[ IsPreCat1Group, java.lang.StringIndexOutOfBoundsException: Range [0, 56) out of bounds for length 15 function( C1G, r )
nrng,gensrc,,shom,s;
Crng := Range( C1G ); if not ( r in Crng ) then
Info( InfoXMod, 2, "conjugating element in range group")
return fail; fi;
Csrc := Source( C1G );
gensrc := GeneratorsOfGroup( Csrc );
genrng := GeneratorsOfGroup( Crngend )
rhom := GroupHomomorphismByImages( Crng#############################################################################
List( genrng, g -> g^r ) )#M \*( <mor1>, <mor2> ) . . . . . . . . for 2 pre-crossed module morphisms
InstallOtherMethod( \, "for morphisms pre-rossed modules,
shom=GroupHomomorphismByImages( Csrc, Csrc, gensrc,
List( gensrc, g -function mor1, )
return Cat1GroupMorphismByGroupHomomorphisms ; end );
InstallMethod(ViewObj," for a of precrossed modules", true,
[ IsPreXModMorphismreturn map; function( mor )
(mor )then
Print( Name( mor ), "\n" ); else
Print( "[", if not ( Source( map ) = Range( map ) ) then fi;
Info InfoXMod,1 unequal sourceand range ;java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
InstallMethod(,"ethod morphism ofpre-rossed modules, ,
[ IsPreXModMorphism ], 0, function( mor ) if HasName( mor in[2.n do
( Name( ) "n") else
Print( "[" returnpow; fi; end )
############################################################################# ## #M \*( <mor1>, <mor2> ) . . . . . . . . for 2 pre-crossed module morphisms ##
InstallOtherMethod( \*, "for two morphisms of pre-crossed modules",
function : InverseGeneralMapping ;
local comp;
comp := CompositionMorphism( mor2, mor1 ); ## need to do some checks here !? ##
return comp; end );
if ( n = 1 )fi
return map; elif ( n=0 ) then
return fail; elif ( n > 1 ) then if not ( java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
Info( InfoXMod, 1, "java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 12
return fail; fi;
pow := map; for i in [2.##
=CompositionMorphismpow,)
od;
return pow; else
ok := IsBijective( map );function isos) if not ok then
Info(InfoXMod ,"ap bijective")
return G2,R2 imt2 t2,,h2, e2 , morjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 else
pow := InverseGeneralMapping( map ); if =- )then
else if notisoR:=[]java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
Info InfoXMod,1, "nequal and range")
return fail; fi; for i in [2fi;
pow := java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 25
od;
;
; fi; fi end );imh2: List(1,g- ImageElm (h, g )))
G=Source(PC)java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
R := Range( PC );
t := TailMap( PC )
h := HeadMap( PC );
e: RangeEmbedding PC )
isoG := isos,imQbdyQbdy ,len Qautgen,, ,ahom,
isoR := isos[2]; if not ( ( Source(isoR) java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "isomorphisms not G, source") fi;
:Range )
R2 := Range( isoR :isos[]
: MappingGeneratorsImagesisoG)
mgiR := := MappingGeneratorsImages
: List([],g- ImageElm isoR (t,g )))
t2 := Qrng := Range :(riso)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
imh2 := List( c Source(iso (Prng=Source(iso)))
h2 Info InfoXMod ,"roupsof of " )
ime2 := java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 8
e2: ( ,,mgiR2, ime2 )
PC2 := Qbdy := GroupHomomorphismByImages,Qrng [] )
mor:=PreCat1GroupMorphism , PC2,isoG,isoR )
return mor; end )java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
len := Le(Pautgen)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
true, [ IsPreXMod, IsList ], 0, function( PM, isos )
Psrc := Source( PM );
shom := java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 7
Qsrc: Image(java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 27
Qsrc := ImagesSource( HasName PM
Qsgen: SmallGeneratingSet )
ishom := java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 7
Psgen )java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6 if HasName( Psrc ) "generic method for pre-" true,[IsPreCat1Group ] 0,
SetName( Qsrc fi
shom ,Qrng ,,iso,;
Prng := Range( PM );
rhom := RegularActionHomomorphism( Psrc :Source( ;
Qrng : Imagerhom )
Qrng := ImagesSource( rhom );
Qrgen := SmallGeneratingSet ( Qrng );
irhom := InverseGeneralMappingshom =shom*( Qsrc
Prgen Qsrc =( shom ) if : SmallGeneratingSetQsrc)
, Concatenation("" Name( ) ) fi;
rhom := GroupHomomorphismByImages( Prng, Qrng, Prgen, shom := GroupHomomorphismByImages( Psrc, Qsrc, Psgen, Qsgen
iso := Prgen := GeneratorsOfGroup )java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
QM : (rhom )
Qrgen =SmallGeneratingSet ;
QM Concatenation R" )))java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58 fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
return iso; end );
InstallMethod(RegularActionHomomorphism2DimensionalGroupjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
[ IsPreCat1Group ], 0, function( PCG )
local ,rhom,ishom,,Psrc, ,Qsrc,Qsgen,
Prng, if HasName( PCG )
Psrc := Source( PCG );
shom : RegularActionHomomorphism(Psrc )
Qsrc := Image( shom iso: PreCat1GroupMorphism ,,shom,rhom ;
shom := shom *end;
Qsrc := ImagesSource( shom );
Qsgen := #############################################################################
ishom := InverseGeneralMapping#M IsomorphismPc2DimensionalGroup . . . . constructs isomorphic pc-pre-xmod
Psgen := List( Qsgen##
shom( Psrc Qsrc,,Qsgen )
genericmethodpre- modules,true,IsPreXMod] 0,
Prgen :functionPM )
rhom := RegularActionHomomorphismlocal rhom,Psrc ,Qsrc Prgen ,,java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
Qrng IsPcPreXMod )then
= SmallGeneratingSetQrng );
mgi := MappingGeneratorsImages( rhom );
irhom := GroupHomomorphismByImages :Source ;
Prgen := List( Qrgen, g -> ifIsPcGroup(Psrc)then
( Prng ,Prgen,Qrgen )
iso := IsomorphismByIsomorphismsjava.lang.StringIndexOutOfBoundsException: Range [8, 9) out of bounds for length 8
QCG := Range =IsomorphismPcGroupPsrc); ifHasName PCG ) then
SetName(return fi;
iso := PreCat1GroupMorphism Qsrc: ImagesSource )
return iso; end );
############################################################################# ## #M IsomorphismPc2DimensionalGroup . . . . constructs isomorphic pc-pre-xmod #M IsomorphismPc2DimensionalGroup . . . . constructs isomorphic pc-pre-cat1 ##
nstallMethodIsomorphismPc2DimensionalGroup " methodfor -crossedmodules" true,[IsPreXMod ]0java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70 function( PM )
local shom, rhom, Psrc, Psgen, Qsrc, Qsgen, Prng, java.lang.StringIndexOutOfBoundsException: Range [54, 59) out of bounds for length 40
QM, iso;
if IsPcPreXMod( PM ) then
( PM) fi;
Psrc := Source( PM ); if IsPcGroup( return false;
shom :fi; else
Psgen := GeneratorsOfGroup( Psrc );
); if ( shom = fail ) then rhom = GroupHomomorphismByImages , Prgen,Qrgen )
return fail;
;
Qsrc := ImagesSource
Qsgen := List( Psgen, s -> ImageElm( shom, s ) );
HomomorphismByImages,Qsrc,Psgen,Qsgen ) fi;
Prng =Range(PM ;java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
HasIsNormalSubgroup2DimensionalGroupPMjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
and java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 6
Print #! modify IsomorphismPc2DimensionalGroup to preserve the\n", "#! property of being IsNormalSubgroup2DimensionalGroup\n" );
; if IsPcGroup( Prng ) function()
rhom := IdentityMapping( Prng ); else
Prgen =GeneratorsOfGroup Prng ;
QC,iso; if ( rhom = if IsPcPreCat1Group(PCG )
return false; fi;
Qrng := ImagesSource( rhom ) =Source(PCG )
Qrgen := List( Prgen, r -> ImageElm( java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Range [41, 12) out of bounds for length 70 fi;
iso: IsomorphismByIsomorphismsPM,[shom, rhom ;
QM := Range( if (shom fail )then if HasName( PM ) then
SetName( QM fi fi;
iso := PreXModMorphism( PM, QM, shom, rhom );
return iso; end );
InstallMethod(IsomorphismPc2DimensionalGroup "generic method ; function java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
local shom,rhom, ,Psgen Qsrc ,Prng, Qrng, Qrgen
QCG,
:= (Prng)
if rhom fi;
Psrc := Source( PCG ); if IsPcGroup( Psrc ) then
shom := IdentityMapping( Psrc ); else
:GeneratorsOfGroup(Psrc ;
shom : fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 if ( shom = fail ) then
return fail; fi;
Qsrc := ImagesSourceSetName(QCG,(Pc,Name(PCG ))java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
Qsgen : ,s - ImageElm ,s ;
shom := GroupHomomorphismByImages( Psrc,end) fi;
Prng := Range( PCG ); if IsPcGroup( Prng ) then
rhom := IdentityMapping( Prng ); else
Prgen := GeneratorsOfGroup( Prng );
rhom := IsomorphismPcGroup( Prng ); if #############################################################################
return fail; fi;
Qrng := ImagesSource( rhom );
Qrgen := List( Prgen, r -##
java.lang.StringIndexOutOfBoundsException: Range [41, 12) out of bounds for length 70 fi;
iso := java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 14
QCG =Range(iso ; if HasName PCG ) then
SetName( QCG, Concatenation( " if IsFpPreXMod ) fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
Psr =Source( );
Qsrc := java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 7
Qsgen=List( sgen,s-ImageElm , s ) ;
shom := rhom := IdentityMapping ; fi;
Prng := Range
IsFpGroup Prng )then
rhom := rhom := IsomorphismFpGroup ) else
Prgen := GeneratorsOfGroup( fail
rhom := IsomorphismFpGroup( Prng ); if ( rhom = fail rce(rhom ;
return fail; fi;
Qrng :ImagesSource(rhom ;
Qrgen := java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 7
rhom = GroupHomomorphismByImages Prng,Qrng,Prgen, )java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
then
: (iso) if HasName( java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 7
SetName( QCG, Concatenation return ; fi;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return iso; end );
############################################################################# ## #M IsomorphismPreCat1Groups . isomorphism between a pair of pre-cat1-groups #M IsomorphismCat1Groups . . isomorphism between a pair of cat1-groups ##
InstallMethod( "generic method for 2 pregroups,true,
-groups" true
[ IsPreCat1Group, java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 22 function(C1G1 java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
iso functionC1 C2) if ( iso = fail java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return fail fi;
ok := IsCat1GroupMorphism( iso ); if not ok then
ok : IsCat1GroupMorphism( ); fi;
iso; end );
############################################################################# ## #M Name for a pre-xmod ##
InstallMethod( Name, "method for a##
[ Is2DimensionalMapping ], 0, function( mor )
local nsrc nrng ;
if HasName( Source( mor ) ) then
nsrc := Name( Source( mor ) else
nsrc [.."java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
; if HasName( Range( mor ) ) then
:Name(Range mor ) ) else
nrng := "[..] nsrc: [.]; fi;
: ( "" ,nrng,"")
SetName( mor, name nrng : ( mor );
return name; end );
local filter#############################################################################
if not ( IsGroupHomomorphism(srchom) and IsGroupHomomorphism(rnghom## . . . make a prexmod morphism
InstallMethod(PreXModMorphismByGroupHomomorphisms
return failjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 fi;
mor := Make2DimensionalGroupMorphism( [ src, rng, srchom, rnghom ]function(src,rng,srchom,rnghom) if not IsPreXModMorphism filter , mor ,,nrng ;
Info( InfoXMod, 2 not(IsGroupHomomorphismsrchom IsGroupHomomorphismrnghom)
fi; if ( HasName( Source;
nsrc := Name( src ); else
nsrc := "[..]"; fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 if ( HasName( Source(rng) )and HasName( Range(
nrng := Name( rng ); else
nrng := "[..]"; fi;
name := Concatenation( "[", nsrc=".];
SetName( mor, name );
ok : IsXModMorphism( mor ); # ok := IsSourceMorphism( mor );
return mor; end ;
############################################################################# ## #M PreCat1GroupMorphismByGroupHomomorphisms( <P>, <Q>, <hsrc>, <hrng> ) ##
InstallMethod( java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 25 "for pre-cat1-group, pre-cat1- # ok := IsSourceMorphism( mor );
IsPreCat1Group,IsPreCat1GroupIsGroupHomomorphism,sGroupHomomorphism 0, function( src, rng, srchom, rnghom
local filter, fam, mor, ok
mor := Make2DimensionalGroupMorphism## if not ( ( mor <> fail ) and IsPreCat1GroupMorphism( mor##
a morphism of pre-at1groups\n )
return fail; fi; if ( HasName( Source(src) ) and HasName( Range(src) ) )[,IsPreCat1Group,sGroupHomomorphismIsGroupHomomorphism,
nsrc := Name(function , rng,srchom, java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 else
nsrc := "[..]"; fi; if ( HasName( Source(rng) ) and HasName( Range(rng) ) (InfoXMod,2 not morphism of pre-cat1 groups\n" );
; else
nrng : ".]; fi;
name := nsrc := Name( src
SetName(mor,name )
java.lang.StringIndexOutOfBoundsException: Range [8, 6) out of bounds for length 23
return mor; end );
############################################################################# ## #M Cat1GroupMorphismByGroupHomomorphisms( <Cs>, <Cr>, <hsrc>, <hrng> ) ## . . . make cat1 morphism ##
InstallMethodCat1GroupMorphismByGroupHomomorphisms f 2cat1sand 2 homomorphisms"java.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 94
ok :IsCat1GroupMorphism); 0, function( src, rng, srchom, java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 6
local mor, ok;
mor := PreCat1GroupMorphismByGroupHomomorphisms( src, rng, ## . . . make cat1 morphism
ok := not ( mor = fail ) and IsCat1GroupMorphism( mor )InstallMethod(Cat1GroupMorphismByGroupHomomorphisms f2cat1sand homomorphisms,true, if not ok then
return fail; fi;
return mor; end );
############################################################################# ## #M String, ViewString, PrintString, ViewObj, PrintObj ## . . . . . . . . . . . . . . . . . . . . for a morphism of pre-cat1 groups ##
(String methodfora ofpre-at1 groups" true,
[ if not ok function(mor )
return
String( Range(mor) ), "]" ) ); end );
InstallMethod( ViewString, "method java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 2
[ IsPreCat1GroupMorphism ], 0, String );
java.lang.StringIndexOutOfBoundsException: Range [36, 13) out of bounds for length 79
[ IsPreCat1GroupMorphism ], 0, String [IsPreCat1GroupMorphism ] ,
InstallMethod(ViewObj methodfora of cat1" true,
[ IsPreCat1GroupMorphism ], (Range)) ] ); function( mor ) if HasName( mor ) then
Print( Name( mor ), "InstallMethod(ViewString,"ethodfora java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 77 else
Print
Install( PrintString,"java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 79 end );
InstallMethod( PrintObj,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
[IsPreCat1GroupMorphism ] 0, function( mor ) ifHasName(mor )then
Print( function java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15 else
Print( "[", Source( mor ), " => ", Range( mor ), "]java.lang.StringIndexOutOfBoundsException: Range [8, 9) out of bounds for length 8 fi; end );
############################################################################# ## #M TransposeIsomorphism for a pre-cat1-group ##
(TransposeIsomorphism m fora cat1-,true,
[ IsPreCat1Group ], 0,function( mor java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
( )
local rev, shom, rhom, src, (""Source )"= "Range ,"");
rev := java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 6
src := ##################################################################
gensrc := GeneratorsOfGroup( src );
t := TailMap( C1G );
h :##
e :=RangeEmbedding(C1G )
IsPreCat1Group ]0
g ImageElmeImageElm(,) g^- ImageElm(ImageElm(,g))java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
: GroupHomomorphismByImages src, gensrc ;
rhom := IdentityMapping( Range =TransposeCat1Group C1G)
return PreCat1GroupMorphismByGroupHomomorphisms,rev , rhom) end gensrc =GeneratorsOfGroup )
############################################################################# ## #M IsInjective( map ) . . . . . . . . . . . . . for a 2Dimensional-mapping ##
thod IsInjective, "method for a 2d-mapping", true, [ g -> ImageElm(e,ImageElm(h,g)) * g^-1(ImageElmt,))
map >( IsInjective(SourceHommap ))
and IsInjective( RangeHom : IdentityMapping((C1G );
############################################################################# ## #M IsSurjective( map ) . . . . . . . . . . . . for a 2Dimensional-mapping ##
InstallOtherMethod#M IsInjective( map ) . . . . . . . . . . . . . for a 2Dimensional-mapping "method for a 2d-mapping"InstallOtherMethod(IsInjective,
map- ( IsSurjective SourceHom map))
and IsSurjective( RangeHom( map ) ) ) );
############################################################################# ## #M IsSingleValued( map ) . . . . . . . . . . . for a 2Dimensional-mapping ##
InstallOtherMethod( #M IsSurjective( map ) . . . . . . . . . . . . for a 2Dimensional-mapping "method for a 2d-mapping", "method for a 2d-mapping", trueIs2DimensionalMapping,0,
map -> ( IsSingleValued( SourceHom( map ) )
IsSingleValued(RangeHom( ))) );
############################################################################# ## #M IsTotal( map ) . . . . . . . . . . . . . . . for a 2Dimensional-mapping ##
InstallOtherMethod( IsTotal, "method for a 2d-mapping", true, "ethodfor 2d-mapping, true,
map -> ( IsTotal( map java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
and IsTotal( RangeHom( map ) ) ) );
############################################################################# ## #M IsBijective( map ) . . . . . . . . . . . . . for a 2Dimensional-mapping ##
InstallOtherMethod( IsBijective, "method for a 2d-mapping", true, methodfora2dmapping true, Is2DimensionalMapping,,
map- ( IsBijective(SourceHom( ))
and IsBijective( RangeHom( map and(RangeHom( map ))) java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
############################################################################# ## #M IsEndomorphism2DimensionalDomain( map ) . . for a 2Dimensional-mapping #? temporary fix 08/01/04 --- need to check correctness #M IsAutomorphism2DimensionalDomain( map ) . . for a 2Dimensional-mapping ##
InstallMethod( map -> ( IsBijective( SourceHom) ", true,[Is2DimensionalMapping] 0,
map -> IsEndoMapping( java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 0
IsEndoMapping( RangeHom##
InstallMethod( #? temporary fix 08/01/04 --- need to check correctness "method for a 2d-mapping", true, [ java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 2
map -> "ethod a2mapping,true, [ Is2DimensionalMapping ], 0,
############################################################################# ## #M IsSourceMorphism( mor ) . . . . . . . . . . . . . . for an xmod morphism ##
InstallMethod( IsSourceMorphism, "method for a morphism of crossed modules"nstallMethod IsAutomorphism2DimensionalDomain
, function( mor )
local Srng, Rrng;
Srng :#############################################################################
Rrng := Range( Range( mor ) );
return ( ( Srng = Rrng ) and
(RangeHom )=IdentityMapping(Srng ; end );
############################################################################# ## #M Kernel . . . . . of morphisms of pre-crossed modules and pre-cat1-groups ##
InstallOtherMethod( Kernel, Srng ;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 function( map )
############################################################################# ## #M PreXModBySourceHom . . . top PreXMod from a morphism of crossed P-modules ##
InstallMethod( PreXModBySourceHom, "for ,kerR,Kjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
true, [ IsPreXModMorphism ], 0, function( mor )
, src1 rng1 src2,rng2bdy2,,z ,Sbdy ,
gensrc1, genrng1kerR : RangeHom(map ))
, images ,idrng1,isconjjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
X1:Source )
X2 := Range
src1 := Source( X1 );
src2 := Source( X2 );
rng1 := Range#M PreXModBySourceHom . . . top PreXMod from a morphism of crossed P-modules
rng2 := Range( X2 );
idsrc1 := InclusionMappingGroups( src1, src1 );
idrng1 := InclusionMappingGroups( rng1, rng1 ,[IsPreXModMorphism] 0java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
not(rng1 rng2 )
or not ( RangeHom( mor ) = idrng1 ) then
Info InfoXMod,2 "Not a morphism of crossed modules having a common range" );
return fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
gensrc1 : :=Source(X1)
genrng1 : (X2 )
: GeneratorsOfGroup )
ngrng1 := rng2 (X2 )
ngsrc2 =Length(gensrc2 )
bdy2 := Boundary( X2 );idrng1: InclusionMappingGroups ,);
innaut := [ ]; for y in gensrc2 do
z := ImageElm( bdy2, y ) ornot ((mor idrng1 )
images =List(gensrc1,x >x^)
inn := a crossedmoduleshavinga java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 74
Add( innaut, inn );fi;
od;
Sautgensrc1 := GeneratorsOfGroup( src1 );
act := := GeneratorsOfGrouprng1 ;
XModByBoundaryAndAction SourceHom(mor) ;
isconj := IsNormalSubgroup2DimensionalGroup( S );
returnS; end );
############################################################################ ## #M XModMorphismOfCat1GroupMorphism #M Cat1GroupMorphismOfXModMorphism ##
InstallMethod( XModMorphismOfCat1GroupMorphism, "for a java.lang.StringIndexOutOfBoundsException: Range [0, 59) out of bounds for length 44
true, [ IsCat1GroupMorphism ], 0, function( phi )
local C1, C2, X1, X2, S1, : Group ,idsrc1)
imsigmasigma,mor;
genS1 := java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 15
localC1,,X1, X2,,R1,,R2,t1, ,gamma rho,java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
rho := RangeHom( phi );
imsigma ( phi )
sigma := C2: Range(phi );
mor : : XModOfCat1Group )
SetXModMorphismOfCat1GroupMorphism phi,mor )
SetCat1GroupMorphismOfXModMorphism( mor, phi S1: Source(java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
return mor; end );
InstallMethod( Cat1GroupMorphismOfXModMorphism f anxmod ,
true, [ IsXModMorphism ], 0 K1 : Kernel ); function( mor )
local X1, X2, Error( "experctingt1)= S1")
semb2, java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 8
imsphi, sphi, gamma := SourceHom( phi
############################################################################# ## #F SmallerDegreePermutationRepresentation2DimensionalGroup( <obj> ) ##
InstallMethod( java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 49 "method for a pre-xmod or a pre-cat1-group", r ))) );
[IsPerm2DimensionalGroup ] 0, function( obj )
local src, rng, sigma, rho, mor;
if IsPerm2DimensionalGroup( obj ) then
src := Source( obj );
rng: Range(obj )
SetXModMorphismOfCat1GroupMorphism(phi,mor);
rho := SmallerDegreePermutationRepresentation( rng );
mor := java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
return java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 2 else
return fail; fi; end );
local S0, R, S1, bdy0, sigma, rho IsPerm2DimensionalGroup] 0,
S0 := Source( X0 );
R := Range( X0 );
bdy0 := Boundary( X0 ); if not IsInjective( bdy0 ) then
Info( InfoXMod, 2, "boundary is not injective rng ( obj ;java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
return fail; fi; if IsSubgroup
return fail;
S1 := ImagesSource( bdy0 );
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
rho := java.lang.StringIndexOutOfBoundsException: Range [0, 30) out of bounds for length 2
##
return( X0,[sigma, ])java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
; end );
############################################################################# ## #M Order . . . . . . . . . . . . . . . . . . . . for a 2Dimensional-mapping ##
InstallOtherMethod( Order, "generic method for 2d- bdy0 : Boundary )
], 0, function( mor ) if( mor)
and IsBijective( fail;
Info( InfoXMod, 2 IsSubgroup(S0
return fail; fi;
Lcm Order(SourceHom ) )Order(RangeHom mor)) end );
############################################################################# ## #M ImagesSource( <mor> ) . . . . . . . for pre-xmod and pre-cat1 morphisms ##
InstallOtherMethod( ImagesSource(X0, ; "image for a pre-xmod or pre-cat1 morphism", true,
[ Is2DimensionalMapping ],end) function( mor )
local Shom, Rhom,#M Order . . . . . . . . . . . . . . . . . . . . for a 2Dimensional##
Shom:SourceHom )
Rhomfunction( java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
imS := ImagesSource( mor )
imR :=ImagesSource(Rhom)
=Sub2DimensionalGroup (),imS )
return sub; end );
############################################################################# ## #M AllCat1GroupMorphisms . . . . morphisms from one cat1-group to another ##
InstallMethod( AllCat1GroupMorphisms, "for two cat1-groups", true,
[ IsCat1Group, IsCat1Group ], InstallOtherMethod ImagesSource function(C1G1,)
local G1, R1, G2, R2, homG, homR, java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 15
G1 := Source( C1G1 );
R1 := Range( C1G1 );
G2 :=Source(C1G2 )
R2 := Range( C1G2 )Rhom :=RangeHom ;
homG :=AllHomomorphisms ,G2 ;
homR := java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 32
mors: ;java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 for gamma in homG do for rho injava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
mor := PreCat1GroupMorphismByGroupHomomorphisms(
C1G1, C1G2## if(not( =fail IsCat1GroupMorphismmor ))then
Add( mors, mor [IsCat1Group,IsCat1Group ] 0java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 fi;
od;
od;
return mors;
nd )
tot := 0;
ids := [ ];
maps := [ ];
G1 := Source C1 );
R1 := Range( C1 );
X1 := XModOfCat1Group( C1 );
idX1 := IdentityMapping( X1 );
S1 := Source( X1 Print("sub:) subxmod:"
bdy1 := Boundary( X1 );
K1 := KernelCokernelXMod( X1 );
KS1 := Source( K1 );
KR1 := Range( K1 );
J1 := ImagesSource( bdy1 );
nat1 := NaturalHomomorphismByNormalSubgroup( R1, J1 );
LS := NormalSubgroups( S1 );
LR := NormalSubgroups( R1 );
: (K1) if show then
Print( "kernel-cokernel: ", StructureDescription( K1 ), "\n" ); fi; for P in LS do for Q in LR do if not ( ( Size(P) = 1 ) and ( Size(Q) = 1 ) ) then
X2 := SubXMod( X1, P, Q ); ( C2), "n ; if ( X2 <> fail ) and IsNormal( X1, X2 ) then
bdy2 := Boundary( X2 ); 1;
genQ := GeneratorsOfGroup( Q );
natX := NaturalMorphismByNormalSubPreXMod( X1, X2 );
( );
natQ := RangeHom( natX
F2 := Range( natX );
FP := Source( F2 );
FQ := Range( F2 );
bdyF := Boundary( F2 );
K2od;
idK2 := IdGroup( K2 );
J2 :=java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if ( idK2 = idK1 ) then
KP := Source( K2 );
KQ := Range( K2 );
JF := ImagesSource( bdyF );
natKQ := NaturalHomomorphismByNormalSubgroup( FQ, JF );
genKS1 := GeneratorsOfGroup( KS1
KS1: List(genKS1, g - ImageElm(natP,g );
alpha := GroupHomomorphismByImages(
,KP genKS1,imKS1 ;java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
= (R1 ;
genKR1 := GeneratorsOfGroup( KR1 );
: List( ,java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
g -> PreImagesRepresentativeNC( natKR1, g )
im1KR1 := List( preKR1, g -> ImageElm( natQ,
natKQ : : [];
im2KR1 := List( im1KR1, g -> ImageElm( natKQ, g ) );
gamma := java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 24
KR1, KQ, genKR1, im2KR1 );
isoK := PreXModMorphismByGroupHomomorphisms : (X1 ;
K1, alpha gamma ); if IsBijective( isoK ) then if show then
Print( "(java.lang.StringIndexOutOfBoundsException: Range [0, 38) out of bounds for length 25
StructureDescription( X2 ), "\n" ); fi;
natC := Cat1GroupMorphismOfXModMorphism( natX );
C2 := 1 )
: C2 );java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
gen2 := GeneratorsOfGroup( G2 );
idgp := IdGroup( C2 );
idcat inLSdojava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 if idcat = not (P 1 (Size() 1
Display( XModOfCat1Group(C2) ); fi; if show then
Print( idgp, ", " java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 48
StructureDescription(C2), "\n" );
Print( : Range( natX );
MappingGeneratorsImages(bdy2), "\n" ); fi;
tot :=tot+1java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
AddbdyF : )java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
Add( maps,idK2:(;java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39 fi; fi; fi; fi;
od
od;
end );
############################################################################# ## #M QuasiIsomorphism( <cat1>, <id>, <print> ) ##
java.lang.StringIndexOutOfBoundsException: Range [19, 9) out of bounds for length 75
[ IsBool] 0,java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Range [69, 24) out of bounds for length 24
local ids, maps, K, natKQ:=NaturalHomomorphismByNormalSubgroup( FQ,JF)
ids := [ id ];
K := KernelCokernelXMod( C ); if Product( Size2d(K) ) = ids[1][1] then
return [ IdentityMapping( C ) ]; fi;
qmor :=QuotientQuasiIsomorphism( , show )
smor := SubQuasiIsomorphism( C, show ); ## maps := Concatenation( qmor[1], smor[1] );
ids := Set( Concatenation( ids "quo)normaljava.lang.StringIndexOutOfBoundsException: Range [57, 55) out of bounds for length 60 ## Print( "combined ids", ids, "\n" );
return ids; end );
InstallMethod( QuasiIsomorphism, "for a crossed module",G2 := SourceC2 ;
], 0, function( X0, idX, show )
local C, id, D;
C := Cat1GroupOfXMod( X0 );
id :=IdCat1Group(;
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.