[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. These functions return `fail` when invalid data is supplied.

  ## 3.1 Morphisms of pre-crossed modules

- `IsPreXModMorphism(` map`) P`
- `IsXModMorphism(` map`) P`
- `IsPreCat1Morphism(` map`) P`
- `IsCat1Morphism(` map`) P`

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

- `IsInjective(` map`) P`
- `IsSurjective(` map`) P`
- `IsSingleValued(` map`) P`
- `IsTotal(` map`) P`
- `IsBijective(` map`) P`
- `IsEndomorphism2dObject(` map`) P`
- `IsAutomorphism2dObject(` map`) P`

  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.

  Constructors for morphisms of pre-crossed and crossed modules include:

- `PreXModMorphism(` args`) F`
- `XModMorphism(` args`) F`
- `PreXModMorphismByHoms(` P1, P2, sigma, rho`) O`
- `XModMorphismByHoms(` X1, X2, sigma, rho`) O`
- `InclusionMorphism2dObjects(` X1, S1`) O`
- `InnerAutomorphismXMod(` X1, r`) O`
- `IdentityMapping(` X1`) A`
- `IsomorphismPermObject(` obj`) F`

  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,4,3) ]
      : Range = Source
      : Source Homomorphism maps source generators to:
        [ (5,9,8,7,6) ]
      : Range Homomorphism maps range generators to:
        [ (1,2,4,3) ]
      gap> IsAutomorphism2dObject( mor1 );
      true
      gap> Print( RepresentationsOfObject(mor1), "\n" );
      [ "IsComponentObjectRep", "IsAttributeStoringRep", "Is2dMappingRep" ]
      gap> Print( KnownPropertiesOfObject(mor1), "\n" );
      [ "IsTotal", "IsSingleValued", "IsInjective", "IsSurjective", "Is2dMapping",
        "IsPreXModMorphism", "IsXModMorphism", "IsEndomorphism2dObject",
        "IsAutomorphism2dObject" ]
      gap> Print( KnownAttributesOfObject(mor1), "\n" );
      [ "Name", "Range", "Source", "SourceHom", "RangeHom" ]

  ## 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`
- `InclusionMorphism2dObjects(` C1, S1`) O`
- `InnerAutomorphismCat1(` C1, r`) O`
- `IdentityMapping(` C1`) A`
- `IsomorphismPermObject(` obj`) F`
- `SmallerDegreePerm2dObject(` obj`) F`

  The global function `IsomorphismPermObject` calls `IsomorphismPermPreCat1` which constructs a morphism whose `SourceHom` and `RangeHom` are calculated using `IsomorphismPermGroup` on the source and range. Similarly `SmallerDegreePermutationRepresentation` is used on the two groups to obtain `SmallerDegreePerm2dObject`. Names are assigned automatically.

      gap> iso2 := IsomorphismPermObject( C2 );
      [[s3c4=>s3] => [Ps3c4=>Ps3]]
      gap> Display( iso2 );
      Morphism of cat1-groups :-
      : Source = [s3c4=>s3] with generating sets:
        [ f1, f2, f3, f4 ]
        [ f1, f2 ]
      :  Range = [Ps3c4=>Ps3] with generating sets:
        [ ( 5, 9)( 6,10)( 7,11)( 8,12), ( 1, 5, 9)( 2, 6,10)( 3, 7,11)( 4, 8,12),
        ( 1, 3, 2, 4)( 5, 7, 6, 8)( 9,11,10,12), ( 1, 2)( 3, 4)( 5, 6)( 7, 8)( 9,10)
          (11,12) ]
        [ (2,3), (1,2,3) ]
      : Source Homomorphism maps source generators to:
        [ ( 5, 9)( 6,10)( 7,11)( 8,12), ( 1, 5, 9)( 2, 6,10)( 3, 7,11)( 4, 8,12),
        ( 1, 3, 2, 4)( 5, 7, 6, 8)( 9,11,10,12), ( 1, 2)( 3, 4)( 5, 6)( 7, 8)( 9,10)
          (11,12) ]
      : Range Homomorphism maps range generators to:
        [ (2,3), (1,2,3) ]

  ## 3.3 Operations on morphisms

- `Order(` auto`) A`
- `CompositionMorphism(` map2, map1`) O`

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

      gap> Order( mor1 );
      2
      gap> GeneratorsOfGroup( d16 );
      [ (11,12,13,14,15,16,17,18), (12,18)(13,17)(14,16) ]
      gap> d8 := Subgroup( d16, [ c^2, d ] );;
      gap> c4 := Subgroup( d8, [ c^2 ] );;
      gap> SetName( d8, "d8" );  SetName( c4, "c4" );
      gap> X16 := XModByNormalSubgroup( d16, d8 );
      [d8->d16]
      gap> X8 := XModByNormalSubgroup( d8, c4 );
      [c4->d8]
      gap> IsSubXMod( X16, X8 );
      true
      gap> inc8 := InclusionMorphism2dObjects( X16, X8 );
      [[c4->d8] => [d8->d16]]
      gap> rho := GroupHomomorphismByImages( d16, d16, [c,d], [c,d^(c^2)] );;
      gap> sigma := GroupHomomorphismByImages( d8, d8, [c^2,d], [c^2,d^(c^2)] );;
      gap> mor := XModMorphismByHoms( X16, X16, sigma, rho );
      [[d8->d16] => [d8->d16]]
      gap> comp := inc8 * mor;
      [[c4->d8] => [d8->d16]]
      gap> comp = CompositionMorphism( mor, inc8 );
      true

- `Kernel(` map`) O`
- `Kernel2dMapping(` map`) A`

  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) );;
      gap> i2 := Subgroup( c2, [()] );;
      gap> X9 := XModByNormalSubgroup( c2, i2 );;
      gap> sigma9 := GroupHomomorphismByImages( c4, i2, [c^2], [()] );;
      gap> rho9 := GroupHomomorphismByImages( d8, c2, [c^2,d], [(),(19,20)] );;
      gap> mor9 := XModMorphism( X8, X9, sigma9, rho9 );
      [[c4->d8] => [..]]
      gap> K9 := Kernel( mor9 );
      [Group( [ (11,13,15,17)(12,14,16,18) ] )->Group( [ (11,13,15,17)(12,14,16,18)
       ] )]

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