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

7 Crossed squares and their morphisms
 7.1 Constructions for crossed squares
 7.2 Morphisms of crossed squares

7 Crossed squares and their morphisms

Crossed squares were introduced by Guin-Wal\'ery and Loday (see, for example, [BL87]) as fundamental crossed squares of commutative squares of spaces, but are also of purely algebraic interest. We denote by [n] the set {1,2,...,n}. We use the n=2 version of the definition of crossed n-cube as given by Ellis and Steiner [ES87].

A crossed square mathcalS consists of the following:

The following axioms must be satisfied for all l ∈ S_[2], m,m_1,m_2 ∈ S_{1}, n,n_1,n_2 ∈ S_{2}, p ∈ S_∅:

Note that the actions of S_{1} on S_{2} and S_{2} on S_{1} via S_∅ are compatible since

{m_1}^{(n^m)} \;=\; {m_1}^{\dot{\partial}_2(n^m)} \;=\; {m_1}^{m^{-1}(\dot{\partial}_2 n)m} \;=\; (({m_1}^{m^{-1}})^n)^m.

7.1 Constructions for crossed squares

Analogously to the data structure used for crossed modules, crossed squares are implemented as 3d-groups. When times allows, cat2-groups will also be implemented, with conversion between the two types of structure. Some standard constructions of crossed squares are listed below. At present, a limited number of constructions are implemented. Morphisms of crossed squares have also been implemented, though there is a lot still to do.

7.1-1 XSq
‣ XSq( args )( function )
‣ XSqByNormalSubgroups( P, N, M, L )( operation )
‣ ActorXSq( X0 )( operation )
‣ Transpose3dGroup( S0 )( attribute )
‣ Name( S0 )( attribute )

Here are some standard examples of crossed squares.


gap> c := (11,12,13,14,15,16);;
gap> d := (12,16)(13,15);;
gap> cd := c*d;;
gap> d12 := Group( [ c, d ] );;
gap> s3a := Subgroup( d12, [ c^2, d ] );;
gap> s3b := Subgroup( d12, [ c^2, cd ] );;
gap> c3 := Subgroup( d12, [ c^2 ] );;
gap> SetName( d12, "d12");  SetName( s3a, "s3a" );
gap> SetName( s3b, "s3b" );  SetName( c3, "c3" );
gap> XSconj := XSqByNormalSubgroups( d12, s3b, s3a, c3 );
[  c3 -> s3b ]
[  |      |  ]
[ s3a -> d12 ]
gap> Name( XSconj );
"[c3->s3b,s3a->d12]"
gap> XStrans := Transpose3dGroup( XSconj );
[  c3 -> s3a ]
[  |      |  ]
[ s3b -> d12 ]
gap> X12 := XModByNormalSubgroup( d12, s3a );
[s3a->d12]
gap> XSact := ActorXSq( X12 );
crossed square with:
      up = Whitehead[s3a->d12]
    left = [s3a->d12]
    down = Norrie[s3a->d12]
   right = Actor[s3a->d12]

7.1-2 IsXSq
‣ IsXSq( obj )( property )
‣ Is3dObject( obj )( property )
‣ IsPerm3dObject( obj )( property )
‣ IsPc3dObject( obj )( property )
‣ IsFp3dObject( obj )( property )
‣ IsPreXSq( obj )( property )

These are the basic properties for 3d-groups, and crossed squares in particular.

7.1-3 Up2dGroup
‣ Up2dGroup( XS )( attribute )
‣ Left2dGroup( XS )( attribute )
‣ Down2dGroup( XS )( attribute )
‣ Right2dGroup( XS )( attribute )
‣ DiagonalAction( XS )( attribute )
‣ XPair( XS )( attribute )
‣ ImageElmXPair( XS, pair )( operation )

In this implementation the attributes used in the construction of a crossed square XS are the four crossed modules (2d-groups) on the sides of the square; the diagonal action of P on L, and the crossed pairing.

The GAP development team have suggested that crossed pairings should be implemented as a special case of BinaryMappings -- a structure which does not yet exist in GAP. As a temporary measure, crossed pairings have been implemented using Mapping2ArgumentsByFunction.


gap> Up2dGroup( XSconj );
[c3->s3b]
gap> Right2dGroup( XSact );
Actor[s3a->d12]
gap> xpconj := XPair( XSconj );;
gap> ImageElmXPair( xpconj, [ (12,16)(13,15), (11,16)(12,15)(13,14) ] );
(11,15,13)(12,16,14)
gap> diag := DiagonalAction( XSact );
[ (2,3)(5,6), (1,2)(4,6) ] -> 
[ [ (11,13,15)(12,14,16), (12,16)(13,15) ] -> [ (11,15,13)(12,16,14), 
      (12,16)(13,15) ], [ (11,13,15)(12,14,16), (12,16)(13,15) ] -> 
    [ (11,15,13)(12,16,14), (11,13)(14,16) ] ]

7.2 Morphisms of crossed squares

This section describes an initial implementation of morphisms of (pre-)crossed squares.

7.2-1 Source
‣ Source( map )( attribute )
‣ Range( map )( attribute )
‣ Up2dMorphism( map )( attribute )
‣ Left2dMorphism( map )( attribute )
‣ Down2dMorphism( map )( attribute )
‣ Right2dMorphism( map )( attribute )

Morphisms of 3dObjects are implemented as 3dMappings. These have a pair of 3d-groups as source and range, together with four 2d-morphisms mapping between the four pairs of crossed modules on the four sides of the squares. These functions return fail when invalid data is supplied.

7.2-2 IsXSqMorphism
‣ IsXSqMorphism( map )( property )
‣ IsPreXSqMorphism( map )( property )
‣ IsBijective( mor )( property )
‣ IsEndomorphism3dObject( mor )( property )
‣ IsAutomorphism3dObject( mor )( property )

A morphism mor between two pre-crossed squares mathcalS_1 and mathcalS_2 consists of four crossed module morphisms Up2dMorphism( mor ), mapping the Up2dGroup of mathcalS_1 to that of mathcalS_2, Left2dMorphism( mor ), Down2dMorphism( mor ) and Right2dMorphism( mor ). These four morphisms are required to commute with the four boundary maps and to preserve the rest of the structure. The current version of IsXSqMorphism does not perform all the required checks.


gap> ad12 := GroupHomomorphismByImages( d12, d12, [c,d], [c,d^c] );;
gap> as3a := GroupHomomorphismByImages( s3a, s3a, [c^2,d], [c^2,d^c] );;
gap> as3b := GroupHomomorphismByImages( s3b, s3b, [c^2,cd], [c^2,cd^c] );;
gap> idc3 := IdentityMapping( c3 );;
gap> upconj := Up2dGroup( XSconj );;
gap> leftconj := Left2dGroup( XSconj );; 
gap> downconj := Down2dGroup( XSconj );; 
gap> rightconj := Right2dGroup( XSconj );; 
gap> up := XModMorphismByHoms( upconj, upconj, idc3, as3b );
[[c3->s3b] => [c3->s3b]]
gap> left := XModMorphismByHoms( leftconj, leftconj, idc3, as3a );
[[c3->s3a] => [c3->s3a]]
gap> down := XModMorphismByHoms( downconj, downconj, as3a, ad12 );
[[s3a->d12] => [s3a->d12]]
gap> right := XModMorphismByHoms( rightconj, rightconj, as3b, ad12 );
[[s3b->d12] => [s3b->d12]]
gap> autoconj := XSqMorphism( XSconj, XSconj, up, left, down, right );; 
gap> ord := Order( autoconj );;
gap> Display( autoconj );
Morphism of crossed squares :-
:    Source = [c3->s3b,s3a->d12]
:     Range = [c3->s3b,s3a->d12]
:     order = 3
:    up-left: [ [ (11,13,15)(12,14,16) ], [ (11,13,15)(12,14,16) ] ]
:   up-right: [ [ (11,13,15)(12,14,16), (11,16)(12,15)(13,14) ],
  [ (11,13,15)(12,14,16), (11,12)(13,16)(14,15) ] ]
:  down-left: [ [ (11,13,15)(12,14,16), (12,16)(13,15) ],
  [ (11,13,15)(12,14,16), (11,13)(14,16) ] ]
: down-right: [ [ (11,12,13,14,15,16), (12,16)(13,15) ],
  [ (11,12,13,14,15,16), (11,13)(14,16) ] ]
gap> KnownPropertiesOfObject( autoconj );
[ "IsTotal", "IsSingleValued", "IsInjective", "IsSurjective", "Is3dMapping",
  "IsPreXSqMorphism", "IsXSqMorphism", "IsEndomorphism3dObject" ]
gap> IsAutomorphism3dObject( autoconj );
true

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

generated by GAPDoc2HTML