  
  [1X3 [33X[0;0Y2d-mappings[133X[101X
  
  
  [1X3.1 [33X[0;0YMorphisms of 2d-groups[133X[101X
  
  [33X[0;0YThis    chapter   describes   morphisms   of   (pre-)crossed   modules   and
  (pre-)cat1-groups.[133X
  
  [1X3.1-1 Source[101X
  
  [29X[2XSource[102X( [3Xmap[103X ) [32X attribute
  [29X[2XRange[102X( [3Xmap[103X ) [32X attribute
  [29X[2XSourceHom[102X( [3Xmap[103X ) [32X attribute
  [29X[2XRangeHom[102X( [3Xmap[103X ) [32X attribute
  
  [33X[0;0YMorphisms  of [13X2d-groups[113X are implemented as [13X2d-mappings[113X. These have a pair of
  2d-groups as source and range, together with two group homomorphisms mapping
  between  corresponding  source and range groups. These functions return [10Xfail[110X
  when invalid data is supplied.[133X
  
  
  [1X3.2 [33X[0;0YMorphisms of pre-crossed modules[133X[101X
  
  [1X3.2-1 IsXModMorphism[101X
  
  [29X[2XIsXModMorphism[102X( [3Xmap[103X ) [32X property
  [29X[2XIsPreXModMorphism[102X( [3Xmap[103X ) [32X property
  
  [33X[0;0YA  morphism  between two pre-crossed modules [22XmathcalX_1 = (∂_1 : S_1 -> R_1)[122X
  and  [22XmathcalX_2  = (∂_2 : S_2 -> R_2)[122X is a pair [22X(σ, ρ)[122X, where [22Xσ : S_1 -> S_2[122X
  and  [22Xρ : R_1 -> R_2[122X commute with the two boundary maps and are morphisms for
  the two actions:[133X
  
  
        [33X[1;6Y[24X[33X[0;0Y\partial_2 \circ \sigma ~=~ \rho \circ \partial_1, \qquad \sigma(s^r)
        ~=~ (\sigma s)^{\rho r}.[133X [124X[133X
  
  
  [33X[0;0YThus  [22Xσ[122X is the [10XSourceHom[110X and [22Xρ[122X is the [10XRangeHom[110X. When [22XmathcalX_1 = mathcalX_2[122X
  and [22Xσ, ρ[122X are automorphisms then [22X(σ, ρ)[122X is an automorphism of [22XmathcalX_1[122X. The
  group of automorphisms is denoted by [22XAut(mathcalX_1 )[122X.[133X
  
  [1X3.2-2 IsInjective[101X
  
  [29X[2XIsInjective[102X( [3Xmap[103X ) [32X property
  [29X[2XIsSurjective[102X( [3Xmap[103X ) [32X property
  [29X[2XIsSingleValued[102X( [3Xmap[103X ) [32X property
  [29X[2XIsTotal[102X( [3Xmap[103X ) [32X property
  [29X[2XIsBijective[102X( [3Xmap[103X ) [32X property
  [29X[2XIsEndo2dMapping[102X( [3Xmap[103X ) [32X property
  
  [33X[0;0YThe  usual  properties  of  mappings  are  easily  checked.  It  is  usually
  sufficient  to  verify  that  both  the  [10XSourceHom[110X and the [10XRangeHom[110X have the
  required property.[133X
  
  [1X3.2-3 XModMorphism[101X
  
  [29X[2XXModMorphism[102X( [3Xargs[103X ) [32X function
  [29X[2XXModMorphismByHoms[102X( [3XX1[103X, [3XX2[103X, [3Xsigma[103X, [3Xrho[103X ) [32X operation
  [29X[2XPreXModMorphism[102X( [3Xargs[103X ) [32X function
  [29X[2XPreXModMorphismByHoms[102X( [3XP1[103X, [3XP2[103X, [3Xsigma[103X, [3Xrho[103X ) [32X operation
  [29X[2XInclusionMorphism2dDomains[102X( [3XX1[103X, [3XS1[103X ) [32X operation
  [29X[2XInnerAutomorphismXMod[102X( [3XX1[103X, [3Xr[103X ) [32X operation
  [29X[2XIdentityMapping[102X( [3XX1[103X ) [32X attribute
  [29X[2XIsomorphismPerm2dGroup[102X( [3Xobj[103X ) [32X function
  [29X[2XIsomorphismPc2dGroup[102X( [3Xobj[103X ) [32X function
  
  [33X[0;0YThese are the constructors for morphisms of pre-crossed and crossed modules.[133X
  
  [33X[0;0YIn  the  following example we construct a simple automorphism of the crossed
  module [10XX1[110X constructed in the previous chapter.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xsigma1 := GroupHomomorphismByImages( c5, c5, [ (5,6,7,8,9) ][127X[104X
    [4X[28X        [ (5,9,8,7,6) ] );;[128X[104X
    [4X[25Xgap>[125X [27Xrho1 := IdentityMapping( Range( X1 ) );[127X[104X
    [4X[28XIdentityMapping( PAut(c5) )[128X[104X
    [4X[25Xgap>[125X [27Xmor1 := XModMorphism( X1, X1, sigma1, rho1 );[127X[104X
    [4X[28X[[c5->PAut(c5))] => [c5->PAut(c5))]] [128X[104X
    [4X[25Xgap>[125X [27XDisplay( mor1 );[127X[104X
    [4X[28XMorphism of crossed modules :-[128X[104X
    [4X[28X: Source = [c5->PAut(c5))] with generating sets:[128X[104X
    [4X[28X  [ (5,6,7,8,9) ][128X[104X
    [4X[28X  [ (1,2,3,4) ][128X[104X
    [4X[28X: Range = Source[128X[104X
    [4X[28X: Source Homomorphism maps source generators to:[128X[104X
    [4X[28X  [ (5,9,8,7,6) ][128X[104X
    [4X[28X: Range Homomorphism maps range generators to:[128X[104X
    [4X[28X  [ (1,2,3,4) ][128X[104X
    [4X[25Xgap>[125X [27XIsAutomorphism2dDomain( mor1 );[127X[104X
    [4X[28Xtrue [128X[104X
    [4X[25Xgap>[125X [27XOrder( mor1 );[127X[104X
    [4X[28X2[128X[104X
    [4X[25Xgap>[125X [27XRepresentationsOfObject( mor1 );[127X[104X
    [4X[28X[ "IsComponentObjectRep", "IsAttributeStoringRep", "Is2dMappingRep" ][128X[104X
    [4X[25Xgap>[125X [27XKnownPropertiesOfObject( mor1 );[127X[104X
    [4X[28X[ "CanEasilyCompareElements", "CanEasilySortElements", "IsTotal", [128X[104X
    [4X[28X  "IsSingleValued", "IsInjective", "IsSurjective", "RespectsMultiplication", [128X[104X
    [4X[28X  "IsPreXModMorphism", "IsXModMorphism", "IsEndomorphism2dDomain", [128X[104X
    [4X[28X  "IsAutomorphism2dDomain" ][128X[104X
    [4X[25Xgap>[125X [27XKnownAttributesOfObject( mor1 );[127X[104X
    [4X[28X[ "Name", "Order", "Range", "Source", "SourceHom", "RangeHom" ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X3.3 [33X[0;0YMorphisms of pre-cat1-groups[133X[101X
  
  [33X[0;0YA  morphism  of pre-cat1-groups from [22XmathcalC_1 = (e_1;t_1,h_1 : G_1 -> R_1)[122X
  to [22XmathcalC_2 = (e_2;t_2,h_2 : G_2 -> R_2)[122X is a pair [22X(γ, ρ)[122X where [22Xγ : G_1 ->
  G_2[122X and [22Xρ : R_1 -> R_2[122X are homomorphisms satisfying[133X
  
  
        [33X[1;6Y[24X[33X[0;0Yh_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.[133X [124X[133X
  
  
  [1X3.3-1 IsCat1Morphism[101X
  
  [29X[2XIsCat1Morphism[102X( [3Xmap[103X ) [32X property
  [29X[2XIsPreCat1Morphism[102X( [3Xmap[103X ) [32X property
  [29X[2XCat1Morphism[102X( [3Xargs[103X ) [32X function
  [29X[2XCat1MorphismByHoms[102X( [3XC1[103X, [3XC2[103X, [3Xgamma[103X, [3Xrho[103X ) [32X operation
  [29X[2XPreCat1Morphism[102X( [3Xargs[103X ) [32X function
  [29X[2XPreCat1MorphismByHoms[102X( [3XP1[103X, [3XP2[103X, [3Xgamma[103X, [3Xrho[103X ) [32X operation
  [29X[2XInclusionMorphism2dDomains[102X( [3XC1[103X, [3XS1[103X ) [32X operation
  [29X[2XInnerAutomorphismCat1[102X( [3XC1[103X, [3Xr[103X ) [32X operation
  [29X[2XIdentityMapping[102X( [3XC1[103X ) [32X attribute
  [29X[2XSmallerDegreePerm2dDomain[102X( [3Xobj[103X ) [32X function
  
  [33X[0;0YThe  global  function  [10XIsomorphismPermObject[110X  calls  [10XIsomorphismPerm2dGroup[110X,
  which  constructs  a  morphism  whose  [10XSourceHom[110X and [10XRangeHom[110X are calculated
  using    [10XIsomorphismPermGroup[110X   on   the   source   and   range.   Similarly
  [10XSmallerDegreePermutationRepresentation[110X  is  used on the two groups to obtain
  [10XSmallerDegreePerm2dDomain[110X. Names are assigned automatically.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xiso2 := IsomorphismPerm2dGroup( C2 );[127X[104X
    [4X[28X[[G2=>d12] => [..]][128X[104X
    [4X[25Xgap>[125X [27XDisplay( iso2 );[127X[104X
    [4X[28XMorphism of cat1-groups :- [128X[104X
    [4X[28X: Source = [G2=>d12] with generating sets:[128X[104X
    [4X[28X  [ f1, f2, f3, f4, f5, f6, f7 ][128X[104X
    [4X[28X  [ f1, f2, f3 ][128X[104X
    [4X[28X:  Range = P[G2=>d12] with generating sets:[128X[104X
    [4X[28X  [ ( 6,12)( 8,15)( 9,16)(11,19)(13,26)(14,22)(17,27)(18,25)(20,21)(23,24), [128X[104X
    [4X[28X  ( 2, 3)( 5,10)( 9,16)(11,18)(17,23)(19,25)(24,27), [128X[104X
    [4X[28X  ( 4, 5, 7,10)( 6, 9,12,16)( 8,11,14,18)(13,17,20,23)(15,19,22,25)[128X[104X
    [4X[28X    (21,24,26,27), ( 4, 6, 7,12)( 5, 9,10,16)( 8,13,14,20)(11,17,18,23)[128X[104X
    [4X[28X    (15,21,22,26)(19,24,25,27), ( 4, 7)( 5,10)( 6,12)( 8,14)( 9,16)(11,18)[128X[104X
    [4X[28X    (13,20)(15,22)(17,23)(19,25)(21,26)(24,27), ( 1, 2, 3), [128X[104X
    [4X[28X  ( 4, 8,15)( 5,11,19)( 6,13,21)( 7,14,22)( 9,17,24)(10,18,25)(12,20,26)[128X[104X
    [4X[28X    (16,23,27) ][128X[104X
    [4X[28X  [ (2,6)(3,5), (1,2,3,4,5,6), (1,3,5)(2,4,6) ][128X[104X
    [4X[28X: Source Homomorphism maps source generators to:[128X[104X
    [4X[28X  [ ( 6,12)( 8,15)( 9,16)(11,19)(13,26)(14,22)(17,27)(18,25)(20,21)(23,24), [128X[104X
    [4X[28X  ( 2, 3)( 5,10)( 9,16)(11,18)(17,23)(19,25)(24,27), [128X[104X
    [4X[28X  ( 4, 5, 7,10)( 6, 9,12,16)( 8,11,14,18)(13,17,20,23)(15,19,22,25)[128X[104X
    [4X[28X    (21,24,26,27), ( 4, 6, 7,12)( 5, 9,10,16)( 8,13,14,20)(11,17,18,23)[128X[104X
    [4X[28X    (15,21,22,26)(19,24,25,27), ( 4, 7)( 5,10)( 6,12)( 8,14)( 9,16)(11,18)[128X[104X
    [4X[28X    (13,20)(15,22)(17,23)(19,25)(21,26)(24,27), ( 1, 2, 3), [128X[104X
    [4X[28X  ( 4, 8,15)( 5,11,19)( 6,13,21)( 7,14,22)( 9,17,24)(10,18,25)(12,20,26)[128X[104X
    [4X[28X    (16,23,27) ][128X[104X
    [4X[28X: Range Homomorphism maps range generators to:[128X[104X
    [4X[28X  [ (2,6)(3,5), (1,2,3,4,5,6), (1,3,5)(2,4,6) ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X3.4 [33X[0;0YOperations on morphisms[133X[101X
  
  [1X3.4-1 CompositionMorphism[101X
  
  [29X[2XCompositionMorphism[102X( [3Xmap2[103X, [3Xmap1[103X ) [32X operation
  
  [33X[0;0YComposition  of  morphisms  (written  [10X(<map1> * <map2>)[110X when maps act on the
  right) calls the [10XCompositionMorphism[110X function for maps (acting on the left),
  applied to the appropriate type of 2d-mapping.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XH2 := Subgroup(G2,[G2.3,G2.4,G2.6,G2.7]);  SetName( H2, "H2" );[127X[104X
    [4X[28XGroup([ f3, f4, f6, f7 ])[128X[104X
    [4X[25Xgap>[125X [27Xc6 := Subgroup( d12, [b,c] );  SetName( c6, "c6" );[127X[104X
    [4X[28XGroup([ f2, f3 ])[128X[104X
    [4X[25Xgap>[125X [27XSC2 := Sub2dGroup( C2, H2, c6 );[127X[104X
    [4X[28X[H2=>c6][128X[104X
    [4X[25Xgap>[125X [27XIsCat1( SC2 );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xinc2 := InclusionMorphism2dDomains( C2, SC2 );[127X[104X
    [4X[28X[[H2=>c6] => [G2=>d12]][128X[104X
    [4X[25Xgap>[125X [27XCompositionMorphism( iso2, inc );                  [127X[104X
    [4X[28X[[H2=>c6] => P[G2=>d12]][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X3.4-2 Kernel[101X
  
  [29X[2XKernel[102X( [3Xmap[103X ) [32X operation
  [29X[2XKernel2dMapping[102X( [3Xmap[103X ) [32X attribute
  
  [33X[0;0YThe  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.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xc2 := Group( (19,20) );                                    [127X[104X
    [4X[28XGroup([ (19,20) ])[128X[104X
    [4X[25Xgap>[125X [27XX0 := XModByNormalSubgroup( c2, c2 );  SetName( X0, "X0" );[127X[104X
    [4X[28X[Group( [ (19,20) ] )->Group( [ (19,20) ] )][128X[104X
    [4X[25Xgap>[125X [27X SX2 := Source( X2 );;[127X[104X
    [4X[25Xgap>[125X [27XgenSX2 := GeneratorsOfGroup( SX2 ); [127X[104X
    [4X[28X[ f1, f4, f5, f7 ][128X[104X
    [4X[25Xgap>[125X [27Xsigma0 := GroupHomomorphismByImages(SX2,c2,genSX2,[(19,20),(),(),()]);[127X[104X
    [4X[28X[ f1, f4, f5, f7 ] -> [ (19,20), (), (), () ][128X[104X
    [4X[25Xgap>[125X [27Xrho0 := GroupHomomorphismByImages(d12,c2,[a1,a2,a3],[(19,20),(),()]);[127X[104X
    [4X[28X[ f1, f2, f3 ] -> [ (19,20), (), () ][128X[104X
    [4X[25Xgap>[125X [27Xmor0 := XModMorphism( X2, X0, sigma0, rho0 );;           [127X[104X
    [4X[25Xgap>[125X [27XK0 := Kernel( mor0 );[127X[104X
    [4X[28X[Group( [ <identity> of ..., f4, f5, f7 ] )->Group( [128X[104X
    [4X[28X[ <identity> of ..., f2, f3 ] )][128X[104X
    [4X[28X ] )][128X[104X
  [4X[32X[104X
  
