This chapter describes morphisms of (pre-)crossed modules and (pre-)cat1-groups.
\[
\partial_2 \circ \sigma ~=~ \rho \circ \partial_1, \qquad
\sigma(s^r) ~=~ (\sigma s)^{\rho r}.
\]
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.
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> IsAutomorphism2dDomain( mor1 );
true
gap> Order( mor1 );
2
gap> RepresentationsOfObject( mor1 );
[ "IsComponentObjectRep", "IsAttributeStoringRep", "Is2dMappingRep" ]
gap> KnownPropertiesOfObject( mor1 );
[ "CanEasilyCompareElements", "CanEasilySortElements", "IsTotal",
"IsSingleValued", "IsInjective", "IsSurjective", "RespectsMultiplication",
"IsPreXModMorphism", "IsXModMorphism", "IsEndomorphism2dDomain",
"IsAutomorphism2dDomain" ]
gap> KnownAttributesOfObject( mor1 );
[ "Name", "Order", "Range", "Source", "SourceHom", "RangeHom" ]
\[
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.
\]
gap> iso2 := IsomorphismPerm2dGroup( 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) ]
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 );
[Group( [ <identity> of ..., f4, f5, f7 ] )->Group(
[ <identity> of ..., f2, f3 ] )]
] )]