%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%W  map2.tex                   XMOD documentation               Chris Wensley
%W                                                                & Murat Alp
%%
%H  $Id: map2.tex,v 2.001 2002/04/17 gap Exp $
%%
%Y  Copyright (C) 1999,2001 University of St. Andrews, North Haugh,
%Y                          St. Andrews, Fife KY16 9SS, Scotland
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Chapter{2d-mappings}

\atindex{2d-mapping}{@2d-mapping}
This chapter describes morphisms of (pre-)crossed modules
and (pre-)cat1-groups.

\> Source( <map> )!{of morphism} A
\> Range( <map> )!{of morphism} A
\> SourceHom( <map> ) A
\> RangeHom( <map> ) A

Morphisms of `2dObjects' are implemented as `2dMappings'.
These have a pair of 2d-objects as source and range, together with two
group homomorphisms mapping between corresponding source and range groups.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Morphisms of pre-crossed modules}

\atindex{crossed module morphism}{@crossed module morphism}
A morphism between two pre-crossed modules 
${\cal X}_{1} = (\partial_1 : S_1 \to R_1)$ and  
${\cal 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 \sigma = \rho \partial_1, \qquad
\sigma(s^r) = (\sigma s)^{\rho r}.
$$
Thus  $\sigma$ is the `SourceHom'  and  $\rho$  is the `RangeHom'.

When ${\cal X}_{1} = {\cal X}_{2}$
and $ \sigma, \rho $ are automorphisms then 
$(\sigma, \rho)$  is an automorphism of ${\cal X}_1$. 
The group of automorphisms is denoted 
by ${\rm Aut}({\cal X}_1 ).$ 

The usual properties of mappings may be checked:

\> IsInjective( <map> ) P
\> IsSurjective( <map> ) P
\> IsSingleValued( <map> ) P
\> IsTotal( <map> ) P
\> IsBijective( <map> ) P
\> IsEndomorphism( <map> ) P
\> IsAutomorphism( <map> ) P

Constructors for morphisms of pre-crossed modules include:

\> PreXModMorphism( <args> ) F
\> XModMorphism( <args> ) F
\> PreXModMorphismByHoms( <P1, P2, sigma, rho> ) O
\> XModMorphismByHoms( < X1, X2, sigma, rho> ) O
\> InclusionMorphism( <X1, S1> )!{of pre-crossed modules} O
\> InnerAutomorphism( <X1, r> )!{of pre-crossed modules} O
\> IdentityMapping( <X1> )!{of pre-crossed modules} A
\> IsomorphismPermGroup( <obj> )!{of pre-crossed modules} A

In the following example we construct a simple automorphism of 
the crossed module  ${\cal X}_1$  constructed in the previous chapter.

\beginexample
gap> sigma1 := GroupHomomorphismByImages( c5, c5, [ (1,2,3,4,5) ]
        [ (1,5,4,3,2) ] );;
gap> rho1 := IdentityMapping( Range( X1 ) );
IdentityMapping( PermAut(c5) )
gap> mor1 := XModMorphism( X1, X1, sigma1, rho1 );
[[c5->PermAut(c5)] => [c5->PermAut(c5)]]
gap> Display( mor1 );
Morphism of crossed modules :-
: Source = [c5->PermAut(c5)] with generating sets:
  [ (1,2,3,4,5) ]
  [ (1,2,4,3) ]
: Range = Source
: Source Homomorphism maps source generators to:
  [ (1,5,4,3,2) ]
: Range Homomorphism maps range generators to:
  [ (1,2,4,3) ]
gap> IsAutomorphism( mor1 );
true 
\endexample

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Morphisms of pre-cat1-groups}

\atindex{cat1-group morphism}{@cat1-group morphism}
A morphism of pre-cat1-groups from 
${\cal C}_1 = (e_1;t_1,h_1 : G_1 \to R_1)$
to  ${\cal 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 \gamma = \rho h_1~, \qquad %
t_2 \gamma = \rho t_1~, \qquad %
e_2 \rho = \gamma e_1~\.
$$

\> PreCat1Morphism( <args> ) F
\> Cat1Morphism( <args> ) F
\> PreCat1MorphismByHoms( <P1, P2, gamma, rho> ) O
\> Cat1MorphismByHoms( <C1, C2, gamma, rho> ) O
\> InclusionMorphism( <C1, S1> )!{of pre-cat1-groups} O
\> InnerAutomorphism( <C1, r> )!{of pre-cat1-groups} O
\> IdentityMapping( <C1> )!{of pre-cat1-groups} A
\> IsomorphismPermGroup( <obj> )!{of pre-cat1-groups} A

The function `IsomorphismPermGroup' constructs a morphism
whose `SourceHom' and `RangeHom' are the `IsomorphismPermGroup's
of the source and range.

\beginexample
gap> iso := IsomorphismPermGroup( C2 );
[[..] => [..]]
gap> Display( iso );
Morphism of cat1-groups :-
: Source = [s3c4=>s3] with generating sets:
  [ f1, f2, f3, f4 ]
  [ f1, f2 ]
:  Range = [Group(
[ ( 1,13)( 2,14)( 3,15)( 4,16)( 5,21)( 6,22)( 7,23)( 8,24)( 9,17)(10,18)
    (11,19)(12,20), ( 1, 5, 9)( 2, 6,10)( 3, 7,11)( 4, 8,12)(13,17,21)
    (14,18,22)(15,19,23)(16,20,24), ( 1, 3, 2, 4)( 5, 7, 6, 8)( 9,11,10,12)
    (13,15,14,16)(17,19,18,20)(21,23,22,24),
  ( 1, 2)( 3, 4)( 5, 6)( 7, 8)( 9,10)(11,12)(13,14)(15,16)(17,18)(19,20)
    (21,22)(23,24) ] )=>Group( [ (1,4)(2,6)(3,5), (1,2,3)(4,5,6)
 ] )] with generating sets:
  [ ( 1,13)( 2,14)( 3,15)( 4,16)( 5,21)( 6,22)( 7,23)( 8,24)( 9,17)(10,18)
    (11,19)(12,20), ( 1, 5, 9)( 2, 6,10)( 3, 7,11)( 4, 8,12)(13,17,21)
    (14,18,22)(15,19,23)(16,20,24), ( 1, 3, 2, 4)( 5, 7, 6, 8)( 9,11,10,12)
    (13,15,14,16)(17,19,18,20)(21,23,22,24),
  ( 1, 2)( 3, 4)( 5, 6)( 7, 8)( 9,10)(11,12)(13,14)(15,16)(17,18)(19,20)
    (21,22)(23,24) ]
  [ (1,4)(2,6)(3,5), (1,2,3)(4,5,6) ]
: Source Homomorphism maps source generators to:
  [ ( 1,13)( 2,14)( 3,15)( 4,16)( 5,21)( 6,22)( 7,23)( 8,24)( 9,17)(10,18)
    (11,19)(12,20), ( 1, 5, 9)( 2, 6,10)( 3, 7,11)( 4, 8,12)(13,17,21)
    (14,18,22)(15,19,23)(16,20,24), ( 1, 3, 2, 4)( 5, 7, 6, 8)( 9,11,10,12)
    (13,15,14,16)(17,19,18,20)(21,23,22,24),
  ( 1, 2)( 3, 4)( 5, 6)( 7, 8)( 9,10)(11,12)(13,14)(15,16)(17,18)(19,20)
    (21,22)(23,24) ]
: Range Homomorphism maps range generators to:
  [ (1,4)(2,6)(3,5), (1,2,3)(4,5,6) ]
\endexample

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Operations on morphisms}

\> CompositionMapping( <map2, map1> ) O
\> Order( <auto> ) A
\> Kernel( <map> ) O
\> Kernel2dMapping( <map> ) A

Composition of morphisms, written `(<map1> * <map2>)' for maps acting of the right,
calls the `CompositionMapping' function for maps acting on the left,
applied to the appropriate type of 2d-mapping.

\beginexample
gap> mor1;
[[c5->PermAut(c5)] => [c5->PermAut(c5)]]
gap> Order(mor1);
2 
gap> mor23;
[[nq8->sl23] => [k4->a4]]
gap> k23 := Kernel( mor23 );
[Group( [ ( 1, 6)( 2, 3)( 4, 5)( 7, 8) ] )->Group(
[ ( 1, 6)( 2, 3)( 4, 5)( 7, 8) ] )]
gap> Display(k23);
Crossed module [..->..] :-
: Source group has generators:
  [ ( 1, 6)( 2, 3)( 4, 5)( 7, 8) ]
: Range group has generators:
  [ ( 1, 6)( 2, 3)( 4, 5)( 7, 8) ]
: Boundary homomorphism maps source generators to:
  [ (1,6)(2,3)(4,5)(7,8) ]
  The automorphism group is trivial
gap> IsNormal( Source(mor23), k23 );
true
\endexample

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%E
