Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Bib Ind

### 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 $$\calX_{1} = (\partial_1 : S_1 \to R_1)$$ and $$\calX_{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 $$\sigma$$ is the SourceHom (3.1-1) and $$\rho$$ is the RangeHom (3.1-1) of the morphism. When $$\calX_{1} = \calX_{2}$$ and $$\sigma, \rho$$ are automorphisms then $$(\sigma, \rho)$$ is an automorphism of $$\calX_1$$. The group of automorphisms is denoted by $${\rm Aut}(\calX_1 )$$.

##### 3.2-2 IsInjective
 ‣ IsInjective( map ) ( method )
 ‣ IsSurjective( map ) ( method )
 ‣ IsSingleValued( map ) ( method )
 ‣ IsTotal( map ) ( method )
 ‣ IsBijective( map ) ( method )
 ‣ IsEndo2DimensionalMapping( map ) ( property )

The usual properties of mappings are easily checked. It is usually sufficient to verify that both the SourceHom (3.1-1) and the RangeHom (3.1-1) have the required property.

##### 3.2-3 XModMorphism
 ‣ XModMorphism( args ) ( function )
 ‣ XModMorphismByGroupHomomorphisms( X1, X2, sigma, rho ) ( operation )
 ‣ PreXModMorphism( args ) ( function )
 ‣ PreXModMorphismByGroupHomomorphisms( 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 X5 constructed in the previous chapter.


gap> sigma5 := GroupHomomorphismByImages( c5, c5, [ (5,6,7,8,9) ]
[ (5,9,8,7,6) ] );;
gap> rho5 := IdentityMapping( Range( X1 ) );
IdentityMapping( PAut(c5) )
gap> mor5 := XModMorphism( X5, X5, sigma5, rho5 );
[[c5->Aut(c5))] => [c5->Aut(c5))]]
gap> Display( mor5 );
Morphism of crossed modules :-
: Source = [c5->Aut(c5)] with generating sets:
[ (5,6,7,8,9) ]
[ GroupHomomorphismByImages( c5, c5, [ (5,6,7,8,9) ], [ (5,7,9,6,8) ] ) ]
: Range = Source
: Source Homomorphism maps source generators to:
[ (5,9,8,7,6) ]
: Range Homomorphism maps range generators to:
[ GroupHomomorphismByImages( c5, c5, [ (5,6,7,8,9) ], [ (5,7,9,6,8) ] ) ]
gap> IsAutomorphism2DimensionalDomain( mor5 );
true
gap> Order( mor5 );
2
gap> RepresentationsOfObject( mor5 );
[ "IsComponentObjectRep", "IsAttributeStoringRep", "Is2DimensionalMappingRep" ]
gap> KnownPropertiesOfObject( mor5 );
[ "CanEasilyCompareElements", "CanEasilySortElements", "IsTotal",
"IsSingleValued", "IsInjective", "IsSurjective", "RespectsMultiplication",
"IsPreXModMorphism", "IsXModMorphism", "IsEndomorphism2DimensionalDomain",
"IsAutomorphism2DimensionalDomain" ]
gap> KnownAttributesOfObject( mor5 );
[ "Name", "Order", "Range", "Source", "SourceHom", "RangeHom" ]



##### 3.2-4 IsomorphismPerm2DimensionalGroup
 ‣ IsomorphismPerm2DimensionalGroup( obj ) ( attribute )
 ‣ IsomorphismPc2DimensionalGroup( obj ) ( attribute )
 ‣ IsomorphismByIsomorphisms( D, list ) ( operation )

When $$\calD$$ 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) : \calD \to \calD'$$ where $$\calD'$$ 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> XAq8 := XModByAutomorphismGroup( q8 );
[Group( [ f1, f2, f3 ] )->Group( [ Pcgs([ f1, f2, f3 ]) -> [ f1*f2, f2, f3 ],
Pcgs([ f1, f2, f3 ]) -> [ f2, f1*f2, f3 ],
Pcgs([ f1, f2, f3 ]) -> [ f1*f3, f2, f3 ],
Pcgs([ f1, f2, f3 ]) -> [ f1, f2*f3, f3 ] ] )]
gap> iso := IsomorphismPerm2DimensionalGroup( XAq8 );;
gap> YAq8 := 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( [ (1,3,4,6), (1,2,3)(4,5,6), (1,4)(3,6), (2,5)(3,6) ] )]
gap> s4 := SymmetricGroup(4);;
gap> isos4 := IsomorphismGroups( Range(YAq8), s4 );;
gap> id := IdentityMapping( Source( YAq8 ) );;
gap> IsBijective( id );;  IsBijective( isos4 );;
gap> mor := IsomorphismByIsomorphisms( YAq8, [id,isos4] );;
gap> ZAq8 := 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.2-5 MorphismOfPullback
 ‣ MorphismOfPullback( xmod ) ( attribute )

Let $$\calX_1 = (\lambda : L \to N)$$ be the pullback crossed module obtained from a crossed module $$\calX_0 = (\mu : M \to P)$$ and a group homomorphism $$\nu : N \to P$$. Then the associated crossed module morphism is $$(\kappa,\nu) : \calX_1 \to \calX_0$$ where $$\kappa$$ is the projection from $$L$$ to $$M$$.

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

A morphism of pre-cat1-groups from $$\calC_1 = (e_1;t_1,h_1 : G_1 \to R_1)$$ to $$\calC_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 IsCat1GroupMorphism
 ‣ IsCat1GroupMorphism( map ) ( property )
 ‣ IsPreCat1GroupMorphism( map ) ( property )
 ‣ Cat1GroupMorphism( args ) ( function )
 ‣ Cat1GroupMorphismByGroupHomomorphisms( C1, C2, gamma, rho ) ( operation )
 ‣ PreCat1GroupMorphism( args ) ( function )
 ‣ PreCat1GroupMorphismByGroupHomomorphisms( 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> t3 := GroupHomomorphismByImages(g18,s3a,g18gens,[(),(7,8,9),(8,9)]);;
gap> e3 := GroupHomomorphismByImages(s3a,g18,s3agens,[(4,5,6),(2,3)(5,6)]);;
gap> C3 := Cat1Group( t3, h1, e3 );;
gap> imgamma := [ (4,5,6), (1,2,3), (2,3)(5,6) ];;
gap> gamma := GroupHomomorphismByImages( g18, g18, g18gens, imgamma );;
gap> rho := IdentityMapping( s3a );;
gap> phi3 := Cat1GroupMorphism( C18, C3, gamma, rho );;
gap> Display( phi3 );;
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 Cat1GroupMorphismOfXModMorphism
 ‣ Cat1GroupMorphismOfXModMorphism( IsXModMorphism ) ( attribute )
 ‣ XModMorphismOfCat1GroupMorphism( IsCat1GroupMorphism ) ( attribute )

If $$(\sigma,\rho) : \calX_1 \to \calX_2$$ and $$\calC_1,\calC_2$$ are the cat$$^1$$-groups accociated to $$\calX_1, \calX_2$$, then the associated morphism of cat$$^1$$-groups is $$(\gamma,\rho)$$ where $$\gamma(r_1,s_1) = (\rho r_1, \sigma s_1)$$.

Similarly, given a morphism $$(\gamma,\rho) : \calC_1 \to \calC_2$$ of cat1-groups, the associated morphism of crossed modules is $$(\sigma,\rho) : \calX_1 \to \calX_2$$ where $$\sigma s_1 = \gamma(1,s_1)$$. .


gap> phi5 := Cat1GroupMorphismOfXModMorphism( mor5 );
[[(Aut(c5) |X c5)=>Aut(c5)] => [(Aut(c5) |X c5)=>Aut(c5)]]
gap> mor3 := XModMorphismOfCat1GroupMorphism( phi3 );;
gap> Display( mor3 );
Morphism of crossed modules :-
: Source = xmod([g18=>s3a]) with generating sets:
[ (4,5,6) ]
[ (7,8,9), (8,9) ]
:  Range = xmod([g18=>s3a]) with generating sets:
[ (1,2,3) ]
[ (7,8,9), (8,9) ]
: Source Homomorphism maps source generators to:
[ (1,2,3) ]
: Range Homomorphism maps range generators to:
[ (7,8,9), (8,9) ]



##### 3.3-3 IsomorphismPermObject
 ‣ IsomorphismPermObject( obj ) ( function )
 ‣ IsomorphismPerm2DimensionalGroup( 2DimensionalGroup ) ( attribute )
 ‣ IsomorphismFp2DimensionalGroup( 2DimensionalGroup ) ( attribute )
 ‣ IsomorphismPc2DimensionalGroup( 2DimensionalGroup ) ( attribute )
 ‣ RegularActionHomomorphism2DimensionalGroup( 2DimensionalGroup ) ( attribute )

The global function IsomorphismPermObject calls IsomorphismPerm2DimensionalGroup, which constructs a morphism whose SourceHom (3.1-1) and RangeHom (3.1-1) are calculated using IsomorphismPermGroup on the source and range.

The global function RegularActionHomomorphism2DimensionalGroup is similar, but uses RegularActionHomomorphism in place of IsomorphismPermGroup.


gap> iso8 := IsomorphismPerm2DimensionalGroup( C8 );
[[G8=>d12] => [..]]



##### 3.3-4 SmallerDegreePermutationRepresentation2DimensionalGroup
 ‣ SmallerDegreePermutationRepresentation2DimensionalGroup( Perm2DimensionalGroup ) ( attribute )

The attribute SmallerDegreePermutationRepresentation2DimensionalGroup is obtained by calling SmallerDegreePermutationRepresentation on the source and range to obtain the an isomorphism for the pre-xmod or pre-cat$$^1$$-group.


gap> G := Group( (1,2,3,4)(5,6,7,8) );;
gap> H := Subgroup( G, [ (1,3)(2,4)(5,7)(6,8) ] );;
gap> XG := XModByNormalSubgroup( G, H );
[Group( [ (1,3)(2,4)(5,7)(6,8) ] )->Group( [ (1,2,3,4)(5,6,7,8) ] )]
gap> sdpr := SmallerDegreePermutationRepresentation2DimensionalGroup( XG );;
gap> Range( sdpr );
[Group( [ (1,2) ] )->Group( [ (1,2,3,4) ] )]



#### 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> H8 := Subgroup(G8,[G8.3,G8.4,G8.6,G8.7]);  SetName( H8, "H8" );
Group([ f3, f4, f6, f7 ])
gap> c6 := Subgroup( d12, [b,c] );  SetName( c6, "c6" );
Group([ f2, f3 ])
gap> SC8 := Sub2DimensionalGroup( C8, H8, c6 );
[H8=>c6]
gap> IsCat1Group( SC8 );
true
gap> inc8 := InclusionMorphism2DimensionalDomains( C8, SC8 );
[[H8=>c6] => [G8=>d12]]
gap> CompositionMorphism( iso8, inc );
[[H8=>c6] => P[G8=>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> SX8 := Source( X8 );;
gap> genSX8 := GeneratorsOfGroup( SX8 );
[ f1, f4, f5, f7 ]
gap> sigma0 := GroupHomomorphismByImages(SX8,c2,genSX8,[(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( X8, X0, sigma0, rho0 );;
gap> K0 := Kernel( mor0 );;
gap> StructureDescription( K0 );
[ "C12", "C6" ]


#### 3.5 Quasi-isomorphisms

A morphism of crossed modules $$\phi : \calX = (\partial : S \to R) \to \calX' = (\partial' : S' \to R')$$ induces homomorphisms $$\pi_1(\phi) : \pi_1(\partial) \to \pi_1(\partial')$$ and $$\pi_2(\phi) : \pi_2(\partial) \to \pi_2(\partial')$$. A morphism $$\phi$$ is a quasi-isomorphism if both $$\pi_1(\phi)$$ and $$\pi_2(\phi)$$ are isomorphisms. Two crossed modules $$\calX,\calX'$$ are quasi-isomorphic is there exists a sequence of quasi-isomorphisms

$\calX ~=~ \calX_1 ~\leftrightarrow~ \calX_2 ~\leftrightarrow~ \calX_3 ~\leftrightarrow~ \cdots ~\longleftrightarrow~ \calX_{\ell} ~=~ \calX'$

of length $$\ell-1$$. Here $$\calX_i \leftrightarrow \calX_j$$ means that either $$\calX_i \to \calX_j$$ or $$\calX_j \to \calX_i$$. When $$\calX,\calX'$$ are quasi-isomorphic we write $$\calX \simeq \calX'$$. Clearly $$\simeq$$ is an equivalence relation. Mac\ Lane and Whitehead in [MLW50] showed that there is a one-to-one correspondence between homotopy $$2$$-types and quasi-isomorphism classes. We say that $$\calX$$ represents a trivial quasi-isomorphism class if $$\partial=0$$.

Two cat$$^1$$-groups are quasi-isomorphic if their corresponding crossed modules are. The procedure for constructing a representative for the quasi-isomorphism class of a cat$$^1$$-group $$\calC$$, as described by Ellis and Le in [EL14], is as follows. The quotient process consists of finding all normal sub-crossed modules $$\calN$$ of the crossed module $$\calX$$ associated to $$\calC$$; constructing the quotient crossed module morphisms $$\nu : \calX \to \calX/\calN$$; and converting these $$\nu$$ to morphisms from $$\calC$$.

The sub-crossed module process consists of finding all sub-crossed modules $$\calS$$ of $$\calX$$ such that the inclusion $$\iota : \calS \to \calX$$ is a quasi-isomorphism; then converting $$\iota$$ to a morphism to $$\calC$$.

The procedure for finding all quasi-isomorphism reductions consists of repeating the quotient process, followed by the sub-crossed module process, until no further reductions are possible.

It may happen that $$\calC_1 \simeq \calC_2$$ without either having a quasi-isomorphism reduction. In this case it is necessary to find a suitable $$\calC_3$$ with reductions $$\calC_3 \to \calC_1$$ and $$\calC_3 \to \calC_2$$. No such automated process is available in XMod.

Functions for these computations were first implemented in the package HAP and are available as QuotientQuasiIsomorph, SubQuasiIsomorph and QuasiIsomorph.

##### 3.5-1 QuotientQuasiIsomorphism
 ‣ QuotientQuasiIsomorphism( cat1, bool ) ( operation )

This function implements the quotient process. The second parameter is a boolean which, when true, causes the results of some intermediate calculations to be printed. The output shows the identity of the reduced cat1-group, if there is one.


gap> C18a := Cat1Select( 18, 4, 4 );;
gap> StructureDescription( C18a );
[ "(C3 x C3) : C2", "S3" ]
gap> QuotientQuasiIsomorphism( C18a, true );
quo: [ f2 ][ f3 ], [ "1", "C2" ]
[ [ 2, 1 ], [ 2, 1 ] ], [ 2, 1, 1 ]
[ [ 2, 1, 1 ] ]



##### 3.5-2 SubQuasiIsomorphism
 ‣ SubQuasiIsomorphism( cat1, bool ) ( operation )

This function implements the sub-crossed module process.


gap> SubQuasiIsomorphism( C18a, false );
[ [ 2, 1, 1 ], [ 2, 1, 1 ], [ 2, 1, 1 ] ]



##### 3.5-3 QuasiIsomorphism
 ‣ QuasiIsomorphism( cat1, list, bool ) ( operation )

This function implements the general process.


gap> L18a := QuasiIsomorphism( C18a, [18,4,4], false );
[ [ 2, 1, 1 ], [ 18, 4, 4 ] ]



The logs above show that C18a has just one normal sub-crossed module $$\calN$$ leading to a reduction, and that there are three sub-crossed modules $$\calS$$ all giving the same reduction. The conclusion is that C18a is quasi-isomorphic to the identity cat1-group on the cyclic group of order $$2$$.

Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Bib Ind

generated by GAPDoc2HTML