Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 5e1854624d3bc613bdd0dd13d1ef9ac7 > files > 3523

gap-system-4.4.12-5mdv2010.0.i586.rpm

  
  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 mathcalR consists of the following:
  
  --    Groups R_J for each of the four subsets J subseteq [2];
  
  --    a commutative diagram of group homomorphisms:
  
  
             \ddot{\partial}_1 : R_{[2]} \to R_{\{2\}}, \quad
             \ddot{\partial}_2 : R_{[2]} \to R_{\{1\}}, \quad
             \dot{\partial}_1 : R_{\{1\}} \to R_{\emptyset}, \quad
             \dot{\partial}_2 : R_{\{2\}} \to R_{\emptyset};
  
  
  --    actions  of  R_emptyset  on  R_{1},  R_{2}  and  R_[2] which determine
        actions  of  R_{1}  on R_{2} and R_[2] via dotpartial_1 and actions of
        R_{2} on R_{1} and R_[2] via dotpartial_2~;
  
  --    a function ~ boxtimes : R_{1} x R_{2} -> R_[2]~.
  
  The  following  axioms  must  be  satisfied for all l in R_[2], m,m_1,m_2 in
  R_{1}, n,n_1,n_2 in R_{2}, p in R_emptyset~:
  
  --    the  homomorphisms ddotpartial_1, ddotpartial_2 preserve the action of
        R_emptyset~;
  
  --    each of
  
  
             \ddot{\mathcal{R}}_1 = (\ddot{\partial}_1 : R_{[2]} \to
             R_{\{2\}}),~ \ddot{\mathcal{R}}_2 = (\ddot{\partial}_2 :
             R_{[2]} \to R_{\{1\}}), ~ \dot{\mathcal{R}}_1 =
             (\dot{\partial}_1 : R_{\{1\}} \to R_{\emptyset}),~
             \dot{\mathcal{R}}_2 = (\dot{\partial}_2 : R_{\{2\}} \to
             R_{\emptyset}),
  
  
        and the diagonal
  
  
             \mathcal{R}_{12} = (\partial_{12} :=
             \dot{\partial}_1\ddot{\partial}_2 =
             \dot{\partial}_2\ddot{\partial}_1 : R_{[2]} \to
             R_{\emptyset})
  
  
        are crossed modules (with actions via R_emptyset);
  
  --    boxtimes is a \emph{crossed pairing}:
  
  --          (m_1m_2 boxtimes n) = (m_1 boxtimes n)^m_2 (m_2 boxtimes n)~,
  
  --          (m boxtimes n_1n_2) = (m boxtimes n_2) (m boxtimes n_1)^n_2~,
  
  --          (m boxtimes n)^p = (m^p boxtimes n^p)~;
  
  --    ddotpartial_1  (m  boxtimes  n)  =  (n^-1)^m  n \quad \mbox{and} \quad
        ddotpartial_2 (m boxtimes n) = m^-1 m^n~,
  
  --    (m  boxtimes  ddotpartial_1  l)  =  (l^-1)^m  l \quad \mbox{and} \quad
        (ddotpartial_2 l boxtimes n) = l^-1 l^n~.
  
  Note  that  the  actions of R_{1} on R_{2} and R_{2} on R_{1} via R_emptyset
  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-objects. 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
  > Transpose3dObject( S0 ) _________________________________________attribute
  > Name( S0 ) ______________________________________________________attribute
  
  Here are some standard examples of crossed squares.
  
  --    If  M,  N are normal subgroups of a group P, and L = M cap N, then the
        four  inclusions, L -> N,~ L -> M,~ M -> P,~ N -> P, together with the
        actions  of  P  on  M,  N  and L given by conjugation, and the crossed
        pairing
  
  
             \boxtimes \;:\; M \times N \to M\cap N, \quad (m,n) \mapsto
             [m,n] \,=\, m^{-1}n^{-1}mn \,=\,(n^{-1})^mn \,=\, m^{-1}m^n
  
  
        is   a   crossed   square.   This   construction   is  implemented  as
        XSqByNormalSubgroups(P,N,M,L);.
  
  --    The actor mathcalA(mathcalX_0) of a crossed module mathcalX_0 has been
        described in Chapter 5. The crossed pairing is given by
  
  
             \boxtimes \;:\; R \times W \,\to\, S, \quad (r,\chi)
             \,\mapsto\, \chi r~.
  
  
        This is implemented as ActorXSq( X0 );.
  
  --    The  transpose  of  mathcalR  is  the  crossed  square  tildemathcalR}
        obtained   by  interchanging  R_{1}  with  R_{2},  ddotpartial_1  with
        ddotpartial_2, and dotpartial_1 with dotpartial_2. The crossed pairing
        is given by
  
  
             \tilde{\boxtimes} \;:\; R_{\{2\}} \times R_{\{1\}} \to
             R_{[2]}, \quad (n,m) \;\mapsto\; n\,\tilde{\boxtimes}\,m :=
             (m \boxtimes n)^{-1}~.
  
  
  The following constructions will be implemented in the next release.
  
  --    If  M, N are ordinary P-modules and A is an arbitrary abelian group on
        which P acts trivially, then there is a crossed square with sides
  
  
             0 : A \to N,\quad 0 : A \to M,\quad 0 : M \to P,\quad 0 : N
             \to P.
  
  
  --    For  a  group  L, the automorphism crossed module Act L = (iota : L ->
        Aut  L)  splits  to  form the square with (iota_1 : L -> Inn L) on two
        sides,  and  (iota_2  :  Inn L -> Aut L) on the other two sides, where
        iota_1  maps  l in L to the inner automorphism beta_l : L -> L, l^' ->
        l^-1l^'l,  and  $\iota_2$  is  the  inclusion  of  Inn L in Aut L. The
        actions are standard, and the crossed pairing is
  
  
             \boxtimes \;:\; {\rm Inn}\ L \times {\rm Inn}\ L \to L,
             \quad (\beta_l, \beta_{l^{\prime}}) \;\mapsto\; [l,
             l^{\prime}]~.
  
  
  ---------------------------  Example  ----------------------------
    
    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 := Transpose3dObject( 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]
       right = Actor[s3a->d12]
        down = Norrie[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  3dobjects,  and  crossed squares in
  particular.
  
  7.1-3 Up2dObject
  
  > Up2dObject( XS ) ________________________________________________attribute
  > Left2dObject( XS ) ______________________________________________attribute
  > Down2dObject( XS ) ______________________________________________attribute
  > Right2dObject( 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-objects) 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.
  
  ---------------------------  Example  ----------------------------
    
    gap> Up2dObject( XSconj );
    [c3->s3b]
    gap> Right2dObject( XSact );
    Actor[s3a->d12]
    gap> xpconj := XPair( XSconj );;
    gap> ImageElmXPair( xpconj, [ (1,6)(2,5)(3,4), (2,6)(3,5) ] );
    (1,3,5)(2,4,6)
    gap> diag := DiagonalAction( XSact );
    [ (2,3)(6,8)(7,9), (1,2)(4,6)(5,7) ] ->
    [ [ (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-objects  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
  > IsAutomorphism3dObject( mor ) ____________________________________property
  
  A  morphism  mor  between  two pre-crossed squares mathcalR_1 and mathcalR_2
  consists  of  four crossed module morphisms Up2dMorphism( mor ), mapping the
  Up2dObject  of  mathcalR_1  to  that  of  mathcalR_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.
  
  ---------------------------  Example  ----------------------------
    
    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 := Up2dObject( XSconj );;
    gap> leftconj := Left2dObject( XSconj );; 
    gap> downconj := Down2dObject( XSconj );; 
    gap> rightconj := Right2dObject( 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
    
  ------------------------------------------------------------------