[Up] [Previous] [Next] [Index]

# 3 2d-mappings

### Sections

1. Morphisms of pre-crossed modules
2. Morphisms of pre-cat1-groups
3. Operations on morphisms

This chapter describes morphisms of (pre-)crossed modules and (pre-)cat1-groups.

- `Source(` map`) A`
- `Range(` map`) 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.

  ## 3.1 Morphisms of pre-crossed modules

  A morphism between two pre-crossed modules X1 = (¶1 : S1 ® R1) and X2 = (¶2 : S2 ® R2) is a pair (s, r), where s: S1 ® S2 and r: R1 ® R2 commute with the two boundary maps and are morphisms for the two actions:

  ¶2 s = r¶1, s(sr) = (s s)r r·

  Thus s is the `SourceHom` and r is the `RangeHom`.

  When X1 = X2 and s, r are automorphisms then (s, r) is an automorphism of X1. The group of automorphisms is denoted by Aut(X1 )·

  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`) O`
- `InnerAutomorphism(` X1, r`) O`
- `IdentityMapping(` X1`) A`
- `IsomorphismPermGroup(` obj`) A`

  In the following example we construct a simple automorphism of the crossed module X1 constructed in the previous chapter.

      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

  ## 3.2 Morphisms of pre-cat1-groups

  A morphism of pre-cat1-groups from C1 = (e1;t1,h1 : G1 ® R1) to C2 = (e2;t2,h2 : G2 ® R2) is a pair (g, r) where g: G1 ® G2 and r: R1 ® R2 are homomorphisms satisfying

  h2 g = r h1 , t2 g = r t1 , e2 r = g e1 .

- `PreCat1Morphism(` args`) F`
- `Cat1Morphism(` args`) F`
- `PreCat1MorphismByHoms(` P1, P2, gamma, rho`) O`
- `Cat1MorphismByHoms(` C1, C2, gamma, rho`) O`
- `InclusionMorphism(` C1, S1`) O`
- `InnerAutomorphism(` C1, r`) O`
- `IdentityMapping(` C1`) A`
- `IsomorphismPermGroup(` obj`) A`

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

      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) ]

  ## 3.3 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.

      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

  [Up] [Previous] [Next] [Index]