GAP (XMod) - Chapter 3: 2d-mappings

Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 Bib Ind
[Top of Book] [Contents] [Previous Chapter] [Next Chapter]

[MathJax off]

3 2d-mappings
3.1 Morphisms of 2-dimensional groups
3.1-1 Source
3.2 Morphisms of pre-crossed modules
3.2-1 IsXModMorphism
3.2-2 IsInjective
3.2-3 XModMorphism
3.2-4 IsomorphismPerm2DimensionalGroup
3.3 Morphisms of pre-cat1-groups
3.3-1 IsCat1Morphism
3.3-2 IsomorphismPermObject
3.4 Operations on morphisms
3.4-1 CompositionMorphism
3.4-2 Kernel

### 3 2d-mappings

#### 3.1 Morphisms of 2-dimensional groups

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

##### 3.1-1 Source

`‣ Source`( map ) | ( attribute )

`‣ Range`( map ) | ( attribute )

`‣ SourceHom`( map ) | ( attribute )

`‣ RangeHom`( map ) | ( attribute )

Morphisms of 2-dimensional groups are implemented as 2-dimensional mappings. These have a pair of 2-dimensional groups 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.2 Morphisms of pre-crossed modules

##### 3.2-1 IsXModMorphism

`‣ IsXModMorphism`( map ) | ( property )

`‣ IsPreXModMorphism`( map ) | ( property )

A morphism between two pre-crossed modules \(\mathcal{X}_{1} = (\partial_1 : S_1 \to R_1)\) and \(\mathcal{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 \circ \sigma ~=~ \rho \circ \partial_1, \qquad \sigma(s^r) ~=~ (\sigma s)^{\rho r}. \]

Here is a diagram of the situation.

\[ \vcenter{\xymatrix{ S_1 \ar[rr]^{\sigma} \ar[dd]_{\partial_1} && S_2 \ar[dd]^{\partial_2} \\ && \\ R_1 \ar[rr]_{\rho} && R_2 }} \]

Here \(\sigma\) is the `SourceHom` and \(\rho\) is the `RangeHom` of the morphism. When \(\mathcal{X}_{1} = \mathcal{X}_{2}\) and \(\sigma, \rho\) are automorphisms then \((\sigma, \rho)\) is an automorphism of \(\mathcal{X}_1\). The group of automorphisms is denoted by \({\rm Aut}(\mathcal{X}_1 )\).

##### 3.2-2 IsInjective

`‣ IsInjective`( map ) | ( property )

`‣ IsSurjective`( map ) | ( property )

`‣ IsSingleValued`( map ) | ( property )

`‣ IsTotal`( map ) | ( property )

`‣ IsBijective`( map ) | ( property )

`‣ IsEndo2DimensionalMapping`( map ) | ( property )

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.

##### 3.2-3 XModMorphism

`‣ XModMorphism`( args ) | ( function )

`‣ XModMorphismByHoms`( X1, X2, sigma, rho ) | ( operation )

`‣ PreXModMorphism`( args ) | ( function )

`‣ PreXModMorphismByHoms`( P1, P2, sigma, rho ) | ( operation )

`‣ InclusionMorphism2DimensionalDomains`( X1, S1 ) | ( operation )

`‣ InnerAutomorphismXMod`( X1, r ) | ( operation )

`‣ IdentityMapping`( X1 ) | ( attribute )

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> IsAutomorphism2DimensionalDomain( mor1 );
    true
    gap> Order( mor1 );
    2
    gap> RepresentationsOfObject( mor1 );
    [ "IsComponentObjectRep", "IsAttributeStoringRep", "Is2DimensionalMappingRep" ]
    gap> KnownPropertiesOfObject( mor1 );
    [ "CanEasilyCompareElements", "CanEasilySortElements", "IsTotal",
      "IsSingleValued", "IsInjective", "IsSurjective", "RespectsMultiplication",
      "IsPreXModMorphism", "IsXModMorphism", "IsEndomorphism2DimensionalDomain",
      "IsAutomorphism2DimensionalDomain" ]
    gap> KnownAttributesOfObject( mor1 );
    [ "Name", "Order", "Range", "Source", "SourceHom", "RangeHom" ]

##### 3.2-4 IsomorphismPerm2DimensionalGroup

`‣ IsomorphismPerm2DimensionalGroup`( obj ) | ( attribute )

`‣ IsomorphismPc2DimensionalGroup`( obj ) | ( attribute )

`‣ IsomorphismByIsomorphisms`( D, list ) | ( operation )

When \({\mathcal D}\) is a \(2\)-dimensional domain with source \(S\) and range \(R\) and \(\sigma : S \to S',~ \rho : R \to R'\) are isomorphisms, then `IsomorphismByIsomorphisms(D,[sigma,rho])` returns an isomorphism \((\sigma,\rho) : {\mathcal D} \to {\mathcal D}'\) where \({\mathcal D}'\) has source \(S'\) and range \(R'\). Be sure to test `IsBijective` for the two functions \(\sigma,\rho\) before applying this operation.

Using `IsomorphismByIsomorphisms` with a pair of isomorphisms obtained using `IsomorphismPermGroup` or `IsomorphismPcGroup`, we may construct a crossed module or a cat1-group of permutation groups or pc-groups.

    gap> q8 := SmallGroup(8,4);;   ## quaternion group
    gap> Xq8 := XModByAutomorphismGroup( q8 );
    [Group( [ f1, f2, f3 ] )->Group( [ f1, f2, f3, f4 ] )]
    gap> iso := IsomorphismPerm2DimensionalGroup( Xq8 );;
    gap> Yq8 := Image( iso );
    [Group( [ (1,2,4,6)(3,8,7,5), (1,3,4,7)(2,5,6,8), (1,4)(2,6)(3,7)(5,8)
     ] )->Group( [ (2,6,5,4), (1,2,4)(3,5,6), (2,5)(4,6), (1,3)(2,5) ] )]
    gap> s4 := SymmetricGroup(4);;
    gap> isos4 := IsomorphismGroups( Range(Yq8), s4 );;
    gap> id := IdentityMapping( Source( Yq8 ) );;
    gap> IsBijective( id );;  IsBijective( isos4 );;
    gap> mor := IsomorphismByIsomorphisms( Yq8, [id,isos4] );;
    gap> Zq8 := Image( mor );
    [Group( [ (1,2,4,6)(3,8,7,5), (1,3,4,7)(2,5,6,8), (1,4)(2,6)(3,7)(5,8)
     ] )->SymmetricGroup( [ 1 .. 4 ] )]

#### 3.3 Morphisms of pre-cat1-groups

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

##### 3.3-1 IsCat1Morphism

`‣ IsCat1Morphism`( map ) | ( property )

`‣ IsPreCat1Morphism`( map ) | ( property )

`‣ Cat1Morphism`( args ) | ( function )

`‣ Cat1MorphismByHoms`( C1, C2, gamma, rho ) | ( operation )

`‣ PreCat1Morphism`( args ) | ( function )

`‣ PreCat1MorphismByHoms`( P1, P2, gamma, rho ) | ( operation )

`‣ InclusionMorphism2DimensionalDomains`( C1, S1 ) | ( operation )

`‣ InnerAutomorphismCat1`( C1, r ) | ( operation )

`‣ IdentityMapping`( C1 ) | ( attribute )

For an example we form a second cat1-group `C2=[g18=>s3a]`, similar to `C1` in 2.4-1, then construct an isomorphism \((\gamma,\rho)\) between them.

    gap> t2 := GroupHomomorphismByImages(g18,s3a,g18gens,[(),(7,8,9),(8,9)]);;
    gap> e2 := GroupHomomorphismByImages(s3a,g18,s3agens,[(4,5,6),(2,3)(5,6)]);;
    gap> C2 := Cat1Group( t2, h1, e2 );;
    gap> imgamma := [ (4,5,6), (1,2,3), (2,3)(5,6) ];;
    gap> gamma := GroupHomomorphismByImages( g18, g18, g18gens, imgamma );;
    gap> rho := IdentityMapping( s3a );;
    gap> mor := Cat1Morphism( C1, C2, gamma, rho );;
    gap> Display( mor );;
    Morphism of cat1-groups :-
    : Source = [g18=>s3a] with generating sets:
      [ (1,2,3), (4,5,6), (2,3)(5,6) ]
      [ (7,8,9), (8,9) ]
    :  Range = [g18=>s3a] with generating sets:
      [ (1,2,3), (4,5,6), (2,3)(5,6) ]
      [ (7,8,9), (8,9) ]
    : Source Homomorphism maps source generators to:
      [ (4,5,6), (1,2,3), (2,3)(5,6) ]
    : Range Homomorphism maps range generators to:
      [ (7,8,9), (8,9) ]

##### 3.3-2 IsomorphismPermObject

`‣ IsomorphismPermObject`( obj ) | ( function )

`‣ IsomorphismPerm2DimensionalGroup`( 2DimensionalGroup ) | ( attribute )

`‣ IsomorphismFp2DimensionalGroup`( 2DimensionalGroup ) | ( attribute )

`‣ IsomorphismPc2DimensionalGroup`( 2DimensionalGroup ) | ( attribute )

`‣ SmallerDegreePerm2DimensionalDomain`( 2DimensionalDomain ) | ( function )

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

    gap> iso2 := IsomorphismPerm2DimensionalGroup( 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) ]

#### 3.4 Operations on morphisms

##### 3.4-1 CompositionMorphism

`‣ CompositionMorphism`( map2, map1 ) | ( operation )

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

    gap> H2 := Subgroup(G2,[G2.3,G2.4,G2.6,G2.7]);  SetName( H2, "H2" );
    Group([ f3, f4, f6, f7 ])
    gap> c6 := Subgroup( d12, [b,c] );  SetName( c6, "c6" );
    Group([ f2, f3 ])
    gap> SC2 := Sub2DimensionalGroup( C2, H2, c6 );
    [H2=>c6]
    gap> IsCat1Group( SC2 );
    true
    gap> inc2 := InclusionMorphism2DimensionalDomains( C2, SC2 );
    [[H2=>c6] => [G2=>d12]]
    gap> CompositionMorphism( iso2, inc );
    [[H2=>c6] => P[G2=>d12]]

##### 3.4-2 Kernel

`‣ Kernel`( map ) | ( operation )

`‣ Kernel2DimensionalMapping`( map ) | ( attribute )

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 );;
    gap> StructureDescription( K0 );
    [ "C12", "C6" ]

[Top of Book] [Contents] [Previous Chapter] [Next Chapter]
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 Bib Ind

generated by GAPDoc2HTML