[MathJax off]
3 2d-mappings
3.1 Morphisms of 2-dimensional groups
This chapter describes morphisms of (pre-)crossed modules and (pre-)cat1-groups.
3.1-1 Source
‣ Source ( map ) | ( attribute ) |
‣ Range ( map ) | ( attribute ) |
‣ SourceHom ( map ) | ( attribute ) |
‣ RangeHom ( map ) | ( attribute ) |
Morphisms of 2-dimensional groups are implemented as 2-dimensional mappings. These have a pair of 2-dimensional groups as source and range, together with two group homomorphisms mapping between corresponding source and range groups. These functions return fail
when invalid data is supplied.
3.2 Morphisms of pre-crossed modules
3.2-1 IsXModMorphism
‣ IsXModMorphism ( map ) | ( property ) |
‣ IsPreXModMorphism ( map ) | ( property ) |
A morphism between two pre-crossed modules \(\mathcal{X}_{1} = (\partial_1 : S_1 \to R_1)\) and \(\mathcal{X}_{2} = (\partial_2 : S_2 \to R_2)\) is a pair \((\sigma, \rho)\), where \(\sigma : S_1 \to S_2\) and \(\rho : R_1 \to R_2\) commute with the two boundary maps and are morphisms for the two actions:
\[
\partial_2 \circ \sigma ~=~ \rho \circ \partial_1, \qquad
\sigma(s^r) ~=~ (\sigma s)^{\rho r}.
\]
Here is a diagram of the situation.
\[
\vcenter{\xymatrix{
S_1 \ar[rr]^{\sigma} \ar[dd]_{\partial_1}
&& S_2 \ar[dd]^{\partial_2} \\
&& \\
R_1 \ar[rr]_{\rho}
&& R_2
}}
\]
Here \(\sigma\) is the SourceHom
and \(\rho\) is the RangeHom
of the morphism. When \(\mathcal{X}_{1} = \mathcal{X}_{2}\) and \(\sigma, \rho\) are automorphisms then \((\sigma, \rho)\) is an automorphism of \(\mathcal{X}_1\). The group of automorphisms is denoted by \({\rm Aut}(\mathcal{X}_1 )\).
3.2-2 IsInjective
‣ IsInjective ( map ) | ( property ) |
‣ IsSurjective ( map ) | ( property ) |
‣ IsSingleValued ( map ) | ( property ) |
‣ IsTotal ( map ) | ( property ) |
‣ IsBijective ( map ) | ( property ) |
‣ IsEndo2DimensionalMapping ( map ) | ( property ) |
The usual properties of mappings are easily checked. It is usually sufficient to verify that both the SourceHom
and the RangeHom
have the required property.
3.2-3 XModMorphism
‣ XModMorphism ( args ) | ( function ) |
‣ XModMorphismByHoms ( X1, X2, sigma, rho ) | ( operation ) |
‣ PreXModMorphism ( args ) | ( function ) |
‣ PreXModMorphismByHoms ( P1, P2, sigma, rho ) | ( operation ) |
‣ InclusionMorphism2DimensionalDomains ( X1, S1 ) | ( operation ) |
‣ InnerAutomorphismXMod ( X1, r ) | ( operation ) |
‣ IdentityMapping ( X1 ) | ( attribute ) |
These are the constructors for morphisms of pre-crossed and crossed modules.
In the following example we construct a simple automorphism of the crossed module X1
constructed in the previous chapter.
gap> sigma1 := GroupHomomorphismByImages( c5, c5, [ (5,6,7,8,9) ]
[ (5,9,8,7,6) ] );;
gap> rho1 := IdentityMapping( Range( X1 ) );
IdentityMapping( PAut(c5) )
gap> mor1 := XModMorphism( X1, X1, sigma1, rho1 );
[[c5->PAut(c5))] => [c5->PAut(c5))]]
gap> Display( mor1 );
Morphism of crossed modules :-
: Source = [c5->PAut(c5))] with generating sets:
[ (5,6,7,8,9) ]
[ (1,2,3,4) ]
: Range = Source
: Source Homomorphism maps source generators to:
[ (5,9,8,7,6) ]
: Range Homomorphism maps range generators to:
[ (1,2,3,4) ]
gap> IsAutomorphism2DimensionalDomain( mor1 );
true
gap> Order( mor1 );
2
gap> RepresentationsOfObject( mor1 );
[ "IsComponentObjectRep", "IsAttributeStoringRep", "Is2DimensionalMappingRep" ]
gap> KnownPropertiesOfObject( mor1 );
[ "CanEasilyCompareElements", "CanEasilySortElements", "IsTotal",
"IsSingleValued", "IsInjective", "IsSurjective", "RespectsMultiplication",
"IsPreXModMorphism", "IsXModMorphism", "IsEndomorphism2DimensionalDomain",
"IsAutomorphism2DimensionalDomain" ]
gap> KnownAttributesOfObject( mor1 );
[ "Name", "Order", "Range", "Source", "SourceHom", "RangeHom" ]
3.2-4 IsomorphismPerm2DimensionalGroup
‣ IsomorphismPerm2DimensionalGroup ( obj ) | ( attribute ) |
‣ IsomorphismPc2DimensionalGroup ( obj ) | ( attribute ) |
‣ IsomorphismByIsomorphisms ( D, list ) | ( operation ) |
When \({\mathcal D}\) is a \(2\)-dimensional domain with source \(S\) and range \(R\) and \(\sigma : S \to S',~ \rho : R \to R'\) are isomorphisms, then IsomorphismByIsomorphisms(D,[sigma,rho])
returns an isomorphism \((\sigma,\rho) : {\mathcal D} \to {\mathcal D}'\) where \({\mathcal D}'\) has source \(S'\) and range \(R'\). Be sure to test IsBijective
for the two functions \(\sigma,\rho\) before applying this operation.
Using IsomorphismByIsomorphisms
with a pair of isomorphisms obtained using IsomorphismPermGroup
or IsomorphismPcGroup
, we may construct a crossed module or a cat1-group of permutation groups or pc-groups.
gap> q8 := SmallGroup(8,4);; ## quaternion group
gap> Xq8 := XModByAutomorphismGroup( q8 );
[Group( [ f1, f2, f3 ] )->Group( [ f1, f2, f3, f4 ] )]
gap> iso := IsomorphismPerm2DimensionalGroup( Xq8 );;
gap> Yq8 := Image( iso );
[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)
] )->Group( [ (2,6,5,4), (1,2,4)(3,5,6), (2,5)(4,6), (1,3)(2,5) ] )]
gap> s4 := SymmetricGroup(4);;
gap> isos4 := IsomorphismGroups( Range(Yq8), s4 );;
gap> id := IdentityMapping( Source( Yq8 ) );;
gap> IsBijective( id );; IsBijective( isos4 );;
gap> mor := IsomorphismByIsomorphisms( Yq8, [id,isos4] );;
gap> Zq8 := Image( mor );
[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)
] )->SymmetricGroup( [ 1 .. 4 ] )]
3.3 Morphisms of pre-cat1-groups
A morphism of pre-cat1-groups from \(\mathcal{C}_1 = (e_1;t_1,h_1 : G_1 \to R_1)\) to \(\mathcal{C}_2 = (e_2;t_2,h_2 : G_2 \to R_2)\) is a pair \((\gamma, \rho)\) where \(\gamma : G_1 \to G_2\) and \(\rho : R_1 \to R_2\) are homomorphisms satisfying
\[
h_2 \circ \gamma ~=~ \rho \circ h_1, \qquad
t_2 \circ \gamma ~=~ \rho \circ t_1, \qquad
e_2 \circ \rho ~=~ \gamma \circ e_1.
\]
3.3-1 IsCat1Morphism
‣ IsCat1Morphism ( map ) | ( property ) |
‣ IsPreCat1Morphism ( map ) | ( property ) |
‣ Cat1Morphism ( args ) | ( function ) |
‣ Cat1MorphismByHoms ( C1, C2, gamma, rho ) | ( operation ) |
‣ PreCat1Morphism ( args ) | ( function ) |
‣ PreCat1MorphismByHoms ( P1, P2, gamma, rho ) | ( operation ) |
‣ InclusionMorphism2DimensionalDomains ( C1, S1 ) | ( operation ) |
‣ InnerAutomorphismCat1 ( C1, r ) | ( operation ) |
‣ IdentityMapping ( C1 ) | ( attribute ) |
For an example we form a second cat1-group C2=[g18=>s3a]
, similar to C1
in 2.4-1, then construct an isomorphism \((\gamma,\rho)\) between them.
gap> t2 := GroupHomomorphismByImages(g18,s3a,g18gens,[(),(7,8,9),(8,9)]);;
gap> e2 := GroupHomomorphismByImages(s3a,g18,s3agens,[(4,5,6),(2,3)(5,6)]);;
gap> C2 := Cat1Group( t2, h1, e2 );;
gap> imgamma := [ (4,5,6), (1,2,3), (2,3)(5,6) ];;
gap> gamma := GroupHomomorphismByImages( g18, g18, g18gens, imgamma );;
gap> rho := IdentityMapping( s3a );;
gap> mor := Cat1Morphism( C1, C2, gamma, rho );;
gap> Display( mor );;
Morphism of cat1-groups :-
: Source = [g18=>s3a] with generating sets:
[ (1,2,3), (4,5,6), (2,3)(5,6) ]
[ (7,8,9), (8,9) ]
: Range = [g18=>s3a] with generating sets:
[ (1,2,3), (4,5,6), (2,3)(5,6) ]
[ (7,8,9), (8,9) ]
: Source Homomorphism maps source generators to:
[ (4,5,6), (1,2,3), (2,3)(5,6) ]
: Range Homomorphism maps range generators to:
[ (7,8,9), (8,9) ]
3.3-2 IsomorphismPermObject
‣ IsomorphismPermObject ( obj ) | ( function ) |
‣ IsomorphismPerm2DimensionalGroup ( 2DimensionalGroup ) | ( attribute ) |
‣ IsomorphismFp2DimensionalGroup ( 2DimensionalGroup ) | ( attribute ) |
‣ IsomorphismPc2DimensionalGroup ( 2DimensionalGroup ) | ( attribute ) |
‣ SmallerDegreePerm2DimensionalDomain ( 2DimensionalDomain ) | ( function ) |
The global function IsomorphismPermObject
calls IsomorphismPerm2DimensionalGroup
, which constructs a morphism whose SourceHom
and RangeHom
are calculated using IsomorphismPermGroup
on the source and range. Similarly SmallerDegreePermutationRepresentation
may be used on the two groups to obtain SmallerDegreePerm2DimensionalDomain
. Names are assigned automatically.
gap> iso2 := IsomorphismPerm2DimensionalGroup( C2 );
[[G2=>d12] => [..]]
gap> Display( iso2 );
Morphism of cat1-groups :-
: Source = [G2=>d12] with generating sets:
[ f1, f2, f3, f4, f5, f6, f7 ]
[ f1, f2, f3 ]
: Range = P[G2=>d12] with generating sets:
[ ( 6,12)( 8,15)( 9,16)(11,19)(13,26)(14,22)(17,27)(18,25)(20,21)(23,24),
( 2, 3)( 5,10)( 9,16)(11,18)(17,23)(19,25)(24,27),
( 4, 5, 7,10)( 6, 9,12,16)( 8,11,14,18)(13,17,20,23)(15,19,22,25)
(21,24,26,27), ( 4, 6, 7,12)( 5, 9,10,16)( 8,13,14,20)(11,17,18,23)
(15,21,22,26)(19,24,25,27), ( 4, 7)( 5,10)( 6,12)( 8,14)( 9,16)(11,18)
(13,20)(15,22)(17,23)(19,25)(21,26)(24,27), ( 1, 2, 3),
( 4, 8,15)( 5,11,19)( 6,13,21)( 7,14,22)( 9,17,24)(10,18,25)(12,20,26)
(16,23,27) ]
[ (2,6)(3,5), (1,2,3,4,5,6), (1,3,5)(2,4,6) ]
: Source Homomorphism maps source generators to:
[ ( 6,12)( 8,15)( 9,16)(11,19)(13,26)(14,22)(17,27)(18,25)(20,21)(23,24),
( 2, 3)( 5,10)( 9,16)(11,18)(17,23)(19,25)(24,27),
( 4, 5, 7,10)( 6, 9,12,16)( 8,11,14,18)(13,17,20,23)(15,19,22,25)
(21,24,26,27), ( 4, 6, 7,12)( 5, 9,10,16)( 8,13,14,20)(11,17,18,23)
(15,21,22,26)(19,24,25,27), ( 4, 7)( 5,10)( 6,12)( 8,14)( 9,16)(11,18)
(13,20)(15,22)(17,23)(19,25)(21,26)(24,27), ( 1, 2, 3),
( 4, 8,15)( 5,11,19)( 6,13,21)( 7,14,22)( 9,17,24)(10,18,25)(12,20,26)
(16,23,27) ]
: Range Homomorphism maps range generators to:
[ (2,6)(3,5), (1,2,3,4,5,6), (1,3,5)(2,4,6) ]
3.4 Operations on morphisms
3.4-1 CompositionMorphism
‣ CompositionMorphism ( map2, map1 ) | ( operation ) |
Composition of morphisms (written (<map1> * <map2>)
when maps act on the right) calls the CompositionMorphism
function for maps (acting on the left), applied to the appropriate type of 2d-mapping.
gap> H2 := Subgroup(G2,[G2.3,G2.4,G2.6,G2.7]); SetName( H2, "H2" );
Group([ f3, f4, f6, f7 ])
gap> c6 := Subgroup( d12, [b,c] ); SetName( c6, "c6" );
Group([ f2, f3 ])
gap> SC2 := Sub2DimensionalGroup( C2, H2, c6 );
[H2=>c6]
gap> IsCat1Group( SC2 );
true
gap> inc2 := InclusionMorphism2DimensionalDomains( C2, SC2 );
[[H2=>c6] => [G2=>d12]]
gap> CompositionMorphism( iso2, inc );
[[H2=>c6] => P[G2=>d12]]
3.4-2 Kernel
‣ Kernel ( map ) | ( operation ) |
‣ Kernel2DimensionalMapping ( map ) | ( attribute ) |
The kernel of a morphism of crossed modules is a normal subcrossed module whose groups are the kernels of the source and target homomorphisms. The inclusion of the kernel is a standard example of a crossed square, but these have not yet been implemented.
gap> c2 := Group( (19,20) );
Group([ (19,20) ])
gap> X0 := XModByNormalSubgroup( c2, c2 ); SetName( X0, "X0" );
[Group( [ (19,20) ] )->Group( [ (19,20) ] )]
gap> SX2 := Source( X2 );;
gap> genSX2 := GeneratorsOfGroup( SX2 );
[ f1, f4, f5, f7 ]
gap> sigma0 := GroupHomomorphismByImages(SX2,c2,genSX2,[(19,20),(),(),()]);
[ f1, f4, f5, f7 ] -> [ (19,20), (), (), () ]
gap> rho0 := GroupHomomorphismByImages(d12,c2,[a1,a2,a3],[(19,20),(),()]);
[ f1, f2, f3 ] -> [ (19,20), (), () ]
gap> mor0 := XModMorphism( X2, X0, sigma0, rho0 );;
gap> K0 := Kernel( mor0 );;
gap> StructureDescription( K0 );
[ "C12", "C6" ]