GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
<!-- ------------------------------------------------------------------- -->1<!-- -->2<!-- gp2map.xml XMod documentation Chris Wensley -->3<!-- & Murat Alp -->4<!-- Copyright (C) 2001-2017, Chris Wensley et al, -->5<!-- School of Computer Science, Bangor University, U.K. -->6<!-- -->7<!-- ------------------------------------------------------------------- -->89<?xml version="1.0" encoding="UTF-8"?>1011<Chapter Label="chap-gpmap2">12<Heading>2d-mappings</Heading>13<Index>2d-mapping</Index>1415<Section><Heading>Morphisms of 2-dimensional groups</Heading>1617<Index>morphism of 2d-group</Index>18<Index>crossed module morphism</Index>19This chapter describes morphisms of (pre-)crossed modules20and (pre-)cat1-groups.2122<ManSection>23<Attr Name="Source"24Arg="map" />25<Attr Name="Range"26Arg="map" />27<Attr Name="SourceHom"28Arg="map" />29<Attr Name="RangeHom"30Arg="map" />31<Description>32Morphisms of <E>2-dimensional groups</E> are implemented as33<E>2-dimensional mappings</E>.34These have a pair of 2-dimensional groups as source and range,35together with two group homomorphisms mapping between corresponding36source and range groups.37These functions return <C>fail</C> when invalid data is supplied.38</Description>39</ManSection>40</Section>414243<Section><Heading>Morphisms of pre-crossed modules</Heading>4445<Index>morphism</Index>46<ManSection>47<Prop Name="IsXModMorphism"48Arg="map" />49<Prop Name="IsPreXModMorphism"50Arg="map" />51<Description>52A morphism between two pre-crossed modules53<M>\mathcal{X}_{1} = (\partial_1 : S_1 \to R_1)</M> and54<M>\mathcal{X}_{2} = (\partial_2 : S_2 \to R_2)</M>55is a pair <M>(\sigma, \rho)</M>, where56<M>\sigma : S_1 \to S_2</M> and <M>\rho : R_1 \to R_2</M>57commute with the two boundary maps58and are morphisms for the two actions:59<Display>60\partial_2 \circ \sigma ~=~ \rho \circ \partial_1, \qquad61\sigma(s^r) ~=~ (\sigma s)^{\rho r}.62</Display>63Here is a diagram of the situation.64<Display><![CDATA[65\vcenter{\xymatrix{66S_1 \ar[rr]^{\sigma} \ar[dd]_{\partial_1}67&& S_2 \ar[dd]^{\partial_2} \\68&& \\69R_1 \ar[rr]_{\rho}70&& R_271}}72]]></Display>73Here <M>\sigma</M> is the <C>SourceHom</C>74and <M>\rho</M> is the <C>RangeHom</C> of the morphism.75When <M>\mathcal{X}_{1} = \mathcal{X}_{2}</M>76and <M>\sigma, \rho</M> are automorphisms then77<M>(\sigma, \rho)</M> is an automorphism of <M>\mathcal{X}_1</M>.78The group of automorphisms is denoted79by <M>{\rm Aut}(\mathcal{X}_1 )</M>.80</Description>81</ManSection>828384<ManSection>85<Prop Name="IsInjective"86Arg="map" />87<Prop Name="IsSurjective"88Arg="map" />89<Prop Name="IsSingleValued"90Arg="map" />91<Prop Name="IsTotal"92Arg="map" />93<Prop Name="IsBijective"94Arg="map" />95<Prop Name="IsEndo2DimensionalMapping"96Arg="map" />97<Description>98The usual properties of mappings are easily checked.99It is usually sufficient to verify that both the <C>SourceHom</C> and the100<C>RangeHom</C> have the required property.101</Description>102</ManSection>103104<ManSection>105<Func Name="XModMorphism"106Arg="args" />107<Oper Name="XModMorphismByHoms"108Arg="X1 X2 sigma rho" />109<Func Name="PreXModMorphism"110Arg="args" />111<Oper Name="PreXModMorphismByHoms"112Arg="P1 P2 sigma rho" />113<Oper Name="InclusionMorphism2DimensionalDomains"114Arg="X1 S1" />115<Oper Name="InnerAutomorphismXMod"116Arg="X1 r" />117<Attr Name="IdentityMapping"118Arg="X1" />119<Description>120These are the constructors for morphisms of pre-crossed and crossed modules.121<P/>122In the following example we construct a simple automorphism of123the crossed module <C>X1</C> constructed in the previous chapter.124</Description>125</ManSection>126<P/>127<Index>display a 2d-mapping</Index>128<Index>order of a 2d-automorphism</Index>129<Example>130<![CDATA[131gap> sigma1 := GroupHomomorphismByImages( c5, c5, [ (5,6,7,8,9) ]132[ (5,9,8,7,6) ] );;133gap> rho1 := IdentityMapping( Range( X1 ) );134IdentityMapping( PAut(c5) )135gap> mor1 := XModMorphism( X1, X1, sigma1, rho1 );136[[c5->PAut(c5))] => [c5->PAut(c5))]]137gap> Display( mor1 );138Morphism of crossed modules :-139: Source = [c5->PAut(c5))] with generating sets:140[ (5,6,7,8,9) ]141[ (1,2,3,4) ]142: Range = Source143: Source Homomorphism maps source generators to:144[ (5,9,8,7,6) ]145: Range Homomorphism maps range generators to:146[ (1,2,3,4) ]147gap> IsAutomorphism2DimensionalDomain( mor1 );148true149gap> Order( mor1 );1502151gap> RepresentationsOfObject( mor1 );152[ "IsComponentObjectRep", "IsAttributeStoringRep", "Is2DimensionalMappingRep" ]153gap> KnownPropertiesOfObject( mor1 );154[ "CanEasilyCompareElements", "CanEasilySortElements", "IsTotal",155"IsSingleValued", "IsInjective", "IsSurjective", "RespectsMultiplication",156"IsPreXModMorphism", "IsXModMorphism", "IsEndomorphism2DimensionalDomain",157"IsAutomorphism2DimensionalDomain" ]158gap> KnownAttributesOfObject( mor1 );159[ "Name", "Order", "Range", "Source", "SourceHom", "RangeHom" ]160]]>161</Example>162163<ManSection>164<Attr Name="IsomorphismPerm2DimensionalGroup"165Arg="obj" />166<Attr Name="IsomorphismPc2DimensionalGroup"167Arg="obj" />168<Oper Name="IsomorphismByIsomorphisms"169Arg="D list" />170<Description>171When <M>{\mathcal D}</M> is a <M>2</M>-dimensional domain172with source <M>S</M> and range <M>R</M>173and <M>\sigma : S \to S',~ \rho : R \to R'</M> are isomorphisms,174then <C>IsomorphismByIsomorphisms(D,[sigma,rho])</C> returns an isomorphism175<M>(\sigma,\rho) : {\mathcal D} \to {\mathcal D}'</M>176where <M>{\mathcal D}'</M> has source <M>S'</M> and range <M>R'</M>.177Be sure to test <C>IsBijective</C> for the two functions178<M>\sigma,\rho</M> before applying this operation.179<P/>180Using <C>IsomorphismByIsomorphisms</C> with a pair of isomorphisms181obtained using <C>IsomorphismPermGroup</C> or <C>IsomorphismPcGroup</C>,182we may construct a crossed module or a cat1-group183of permutation groups or pc-groups.184</Description>185</ManSection>186<P/>187<Example>188<![CDATA[189gap> q8 := SmallGroup(8,4);; ## quaternion group190gap> Xq8 := XModByAutomorphismGroup( q8 );191[Group( [ f1, f2, f3 ] )->Group( [ f1, f2, f3, f4 ] )]192gap> iso := IsomorphismPerm2DimensionalGroup( Xq8 );;193gap> Yq8 := Image( iso );194[Group( [ (1,2,4,6)(3,8,7,5), (1,3,4,7)(2,5,6,8), (1,4)(2,6)(3,7)(5,8)195] )->Group( [ (2,6,5,4), (1,2,4)(3,5,6), (2,5)(4,6), (1,3)(2,5) ] )]196gap> s4 := SymmetricGroup(4);;197gap> isos4 := IsomorphismGroups( Range(Yq8), s4 );;198gap> id := IdentityMapping( Source( Yq8 ) );;199gap> IsBijective( id );; IsBijective( isos4 );;200gap> mor := IsomorphismByIsomorphisms( Yq8, [id,isos4] );;201gap> Zq8 := Image( mor );202[Group( [ (1,2,4,6)(3,8,7,5), (1,3,4,7)(2,5,6,8), (1,4)(2,6)(3,7)(5,8)203] )->SymmetricGroup( [ 1 .. 4 ] )]204]]>205</Example>206</Section>207208209<Section Label="sect-mor-pre-cat1">210<Heading>Morphisms of pre-cat1-groups</Heading>211212A morphism of pre-cat1-groups from213<M>\mathcal{C}_1 = (e_1;t_1,h_1 : G_1 \to R_1)</M>214to <M>\mathcal{C}_2 = (e_2;t_2,h_2 : G_2 \to R_2)</M>215is a pair <M>(\gamma, \rho)</M> where216<M>\gamma : G_1 \to G_2</M> and <M>\rho : R_1 \to R_2</M>217are homomorphisms satisfying218<Display>219h_2 \circ \gamma ~=~ \rho \circ h_1, \qquad220t_2 \circ \gamma ~=~ \rho \circ t_1, \qquad221e_2 \circ \rho ~=~ \gamma \circ e_1.222</Display>223224<ManSection>225<Prop Name="IsCat1Morphism"226Arg="map" />227<Prop Name="IsPreCat1Morphism"228Arg="map" />229<Func Name="Cat1Morphism"230Arg="args" />231<Oper Name="Cat1MorphismByHoms"232Arg="C1 C2 gamma rho" />233<Func Name="PreCat1Morphism"234Arg="args" />235<Oper Name="PreCat1MorphismByHoms"236Arg="P1 P2 gamma rho" />237<Oper Name="InclusionMorphism2DimensionalDomains"238Arg="C1 S1" />239<Oper Name="InnerAutomorphismCat1"240Arg="C1 r" />241<Attr Name="IdentityMapping"242Arg="C1" />243<Description>244For an example we form a second cat1-group <Code>C2=[g18=>s3a]</Code>,245similar to <C>C1</C> in <Ref Sect="mansect-cat1"/>,246then construct an isomorphism <M>(\gamma,\rho)</M> between them.247</Description>248</ManSection>249<P/>250<Example>251<![CDATA[252gap> t2 := GroupHomomorphismByImages(g18,s3a,g18gens,[(),(7,8,9),(8,9)]);;253gap> e2 := GroupHomomorphismByImages(s3a,g18,s3agens,[(4,5,6),(2,3)(5,6)]);;254gap> C2 := Cat1Group( t2, h1, e2 );;255gap> imgamma := [ (4,5,6), (1,2,3), (2,3)(5,6) ];;256gap> gamma := GroupHomomorphismByImages( g18, g18, g18gens, imgamma );;257gap> rho := IdentityMapping( s3a );;258gap> mor := Cat1Morphism( C1, C2, gamma, rho );;259gap> Display( mor );;260Morphism of cat1-groups :-261: Source = [g18=>s3a] with generating sets:262[ (1,2,3), (4,5,6), (2,3)(5,6) ]263[ (7,8,9), (8,9) ]264: Range = [g18=>s3a] with generating sets:265[ (1,2,3), (4,5,6), (2,3)(5,6) ]266[ (7,8,9), (8,9) ]267: Source Homomorphism maps source generators to:268[ (4,5,6), (1,2,3), (2,3)(5,6) ]269: Range Homomorphism maps range generators to:270[ (7,8,9), (8,9) ]271]]>272</Example>273274<ManSection>275<Func Name="IsomorphismPermObject"276Arg="obj" />277<Attr Name="IsomorphismPerm2DimensionalGroup"278Arg="2DimensionalGroup" />279<Attr Name="IsomorphismFp2DimensionalGroup"280Arg="2DimensionalGroup" />281<Attr Name="IsomorphismPc2DimensionalGroup"282Arg="2DimensionalGroup" />283<Func Name="SmallerDegreePerm2DimensionalDomain"284Arg="2DimensionalDomain" />285<Description>286The global function <C>IsomorphismPermObject</C>287calls <C>IsomorphismPerm2DimensionalGroup</C>,288which constructs a morphism whose <C>SourceHom</C> and <C>RangeHom</C>289are calculated using <C>IsomorphismPermGroup</C> on the source and range.290Similarly <C>SmallerDegreePermutationRepresentation</C> may be used on the291two groups to obtain <C>SmallerDegreePerm2DimensionalDomain</C>.292Names are assigned automatically.293</Description>294</ManSection>295<P/>296<Example>297<![CDATA[298gap> iso2 := IsomorphismPerm2DimensionalGroup( C2 );299[[G2=>d12] => [..]]300gap> Display( iso2 );301Morphism of cat1-groups :-302: Source = [G2=>d12] with generating sets:303[ f1, f2, f3, f4, f5, f6, f7 ]304[ f1, f2, f3 ]305: Range = P[G2=>d12] with generating sets:306[ ( 6,12)( 8,15)( 9,16)(11,19)(13,26)(14,22)(17,27)(18,25)(20,21)(23,24),307( 2, 3)( 5,10)( 9,16)(11,18)(17,23)(19,25)(24,27),308( 4, 5, 7,10)( 6, 9,12,16)( 8,11,14,18)(13,17,20,23)(15,19,22,25)309(21,24,26,27), ( 4, 6, 7,12)( 5, 9,10,16)( 8,13,14,20)(11,17,18,23)310(15,21,22,26)(19,24,25,27), ( 4, 7)( 5,10)( 6,12)( 8,14)( 9,16)(11,18)311(13,20)(15,22)(17,23)(19,25)(21,26)(24,27), ( 1, 2, 3),312( 4, 8,15)( 5,11,19)( 6,13,21)( 7,14,22)( 9,17,24)(10,18,25)(12,20,26)313(16,23,27) ]314[ (2,6)(3,5), (1,2,3,4,5,6), (1,3,5)(2,4,6) ]315: Source Homomorphism maps source generators to:316[ ( 6,12)( 8,15)( 9,16)(11,19)(13,26)(14,22)(17,27)(18,25)(20,21)(23,24),317( 2, 3)( 5,10)( 9,16)(11,18)(17,23)(19,25)(24,27),318( 4, 5, 7,10)( 6, 9,12,16)( 8,11,14,18)(13,17,20,23)(15,19,22,25)319(21,24,26,27), ( 4, 6, 7,12)( 5, 9,10,16)( 8,13,14,20)(11,17,18,23)320(15,21,22,26)(19,24,25,27), ( 4, 7)( 5,10)( 6,12)( 8,14)( 9,16)(11,18)321(13,20)(15,22)(17,23)(19,25)(21,26)(24,27), ( 1, 2, 3),322( 4, 8,15)( 5,11,19)( 6,13,21)( 7,14,22)( 9,17,24)(10,18,25)(12,20,26)323(16,23,27) ]324: Range Homomorphism maps range generators to:325[ (2,6)(3,5), (1,2,3,4,5,6), (1,3,5)(2,4,6) ]326]]>327</Example>328</Section>329330331<Section Label="sect-oper-mor">332<Heading>Operations on morphisms</Heading>333<Index>operations on morphisms</Index>334335<ManSection>336<Oper Name="CompositionMorphism"337Arg="map2 map1" />338<Description>339Composition of morphisms (written <C>(<map1> * <map2>)</C>340when maps act on the right)341calls the <C>CompositionMorphism</C> function for maps (acting on the left),342applied to the appropriate type of 2d-mapping.343</Description>344</ManSection>345<P/>346<Example>347<![CDATA[348gap> H2 := Subgroup(G2,[G2.3,G2.4,G2.6,G2.7]); SetName( H2, "H2" );349Group([ f3, f4, f6, f7 ])350gap> c6 := Subgroup( d12, [b,c] ); SetName( c6, "c6" );351Group([ f2, f3 ])352gap> SC2 := Sub2DimensionalGroup( C2, H2, c6 );353[H2=>c6]354gap> IsCat1Group( SC2 );355true356gap> inc2 := InclusionMorphism2DimensionalDomains( C2, SC2 );357[[H2=>c6] => [G2=>d12]]358gap> CompositionMorphism( iso2, inc );359[[H2=>c6] => P[G2=>d12]]360]]>361</Example>362363<ManSection>364<Oper Name="Kernel"365Arg="map" />366<Attr Name="Kernel2DimensionalMapping"367Arg="map" />368<Description>369The kernel of a morphism of crossed modules is a normal subcrossed module370whose groups are the kernels of the source and target homomorphisms.371The inclusion of the kernel is a standard example of a crossed square,372but these have not yet been implemented.373</Description>374</ManSection>375<P/>376<Example>377<![CDATA[378gap> c2 := Group( (19,20) );379Group([ (19,20) ])380gap> X0 := XModByNormalSubgroup( c2, c2 ); SetName( X0, "X0" );381[Group( [ (19,20) ] )->Group( [ (19,20) ] )]382gap> SX2 := Source( X2 );;383gap> genSX2 := GeneratorsOfGroup( SX2 );384[ f1, f4, f5, f7 ]385gap> sigma0 := GroupHomomorphismByImages(SX2,c2,genSX2,[(19,20),(),(),()]);386[ f1, f4, f5, f7 ] -> [ (19,20), (), (), () ]387gap> rho0 := GroupHomomorphismByImages(d12,c2,[a1,a2,a3],[(19,20),(),()]);388[ f1, f2, f3 ] -> [ (19,20), (), () ]389gap> mor0 := XModMorphism( X2, X0, sigma0, rho0 );;390gap> K0 := Kernel( mor0 );;391gap> StructureDescription( K0 );392[ "C12", "C6" ]393]]></Example>394395</Section>396397</Chapter>398399400