<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --> <!-- --> <!-- gp3obj.xml XMOD documentation Chris Wensley --> <!-- & Murat Alp --> <!-- --> <!-- $Id: gp3obj.xml,v 2.11 2008/04/30 gap Exp $ --> <!-- --> <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --> <?xml version="1.0" encoding="ISO-8859-15"?> <!-- $Id: gp3obj.xml,v 2.11 Exp $ --> <Chapter Label="chap-obj3"> <Heading>Crossed squares and their morphisms</Heading> <Index>crossed module</Index> <Index>cat2-group</Index> <Index>3d-object</Index> Crossed squares were introduced by Guin-Wal\'ery and Loday (see, for example, <Cite Key="brow:lod"/>) as fundamental crossed squares of commutative squares of spaces, but are also of purely algebraic interest. We denote by <M>[n]</M> the set <M>\{1,2,\ldots,n\}</M>. We use the <M>n=2</M> version of the definition of crossed <M>n</M>-cube as given by Ellis and Steiner <Cite Key="ell:st"/>. <P/> A <E>crossed square</E> <M>\mathcal{R}</M> consists of the following: <List> <Item> Groups <M>R_J</M> for each of the four subsets <M>J \subseteq [2]</M>; </Item> <Item> a commutative diagram of group homomorphisms: <Display> \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}; </Display> </Item> <Item> actions of <M>R_{\emptyset}</M> on <M>R_{\{1\}}, R_{\{2\}}</M> and <M>R_{[2]}</M> which determine actions of <M>R_{\{1\}}</M> on <M>R_{\{2\}}</M> and <M>R_{[2]}</M> via <M>\dot{\partial}_1</M> and actions of <M>R_{\{2\}}</M> on <M>R_{\{1\}}</M> and <M>R_{[2]}</M> via <M>\dot{\partial}_2</M>~; </Item> <Item> a function ~ <M>\boxtimes : R_{\{1\}} \times R_{\{2\}} \to R_{[2]}</M>~. </Item> </List> The following axioms must be satisfied for all <M>l \in R_{[2]},\; m,m_1,m_2 \in R_{\{1\}},\; n,n_1,n_2 \in R_{\{2\}},\; p \in R_{\emptyset}</M>~: <List> <Item> the homomorphisms <M>\ddot{\partial}_1, \ddot{\partial}_2</M> preserve the action of <M>R_{\emptyset}</M>~; </Item> <Item> each of <Display> \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}), </Display> and the diagonal <Display> \mathcal{R}_{12} = (\partial_{12} := \dot{\partial}_1\ddot{\partial}_2 = \dot{\partial}_2\ddot{\partial}_1 : R_{[2]} \to R_{\emptyset}) </Display> are crossed modules (with actions via <M>R_{\emptyset}</M>); </Item> <Item> <Index>crossed pairing</Index> <M>\boxtimes</M> is a \emph{crossed pairing}: <List> <Item> <M>(m_1m_2 \boxtimes n)\;=\;{(m_1 \boxtimes n)}^{m_2}\;(m_2 \boxtimes n)</M>~, </Item> <Item> <M>(m \boxtimes n_1n_2) \;=\; (m \boxtimes n_2)\;{(m \boxtimes n_1)}^{n_2}</M>~, </Item> <Item> <M>(m \boxtimes n)^{p} \;=\; (m^p \boxtimes n^p)</M>~; </Item> </List> </Item> <Item> <M>\ddot{\partial}_1 (m \boxtimes n) \;=\; (n^{-1})^{m}\;n</M> \quad \mbox{and} \quad <M>\ddot{\partial}_2 (m \boxtimes n) \;=\; m^{-1}\;m^{n}</M>~, </Item> <Item> <M>(m \boxtimes \ddot{\partial}_1 l) \;=\; (l^{-1})^{m}\;l</M> \quad \mbox{and} \quad <M>(\ddot{\partial}_2 l \boxtimes n) \;=\; l^{-1}\;l^n</M>~. </Item> </List> Note that the actions of <M>R_{\{1\}}</M> on <M>R_{\{2\}}</M> and <M>R_{\{2\}}</M> on <M>R_{\{1\}}</M> via <M>R_{\emptyset}</M> are compatible since <Display> {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~. </Display> <Section><Heading>Constructions for crossed squares</Heading> Analogously to the data structure used for crossed modules, crossed squares are implemented as <C>3d-objects</C>. 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. <ManSection> <Func Name="XSq" Arg="args" /> <Oper Name="XSqByNormalSubgroups" Arg="P N M L" /> <Oper Name="ActorXSq" Arg="X0" /> <Attr Name="Transpose3dObject" Arg="S0" /> <Attr Name="Name" Arg="S0" /> <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --> <!-- <Oper Name="XSqByAutomorphismGroup" --> <!-- Arg="grp" /> --> <!-- <Oper Name="XSqByXMods" --> <!-- Arg="X1 X2 X3 X4 action pairing" /> --> <!-- <Oper Name="AsXSq" --> <!-- Arg="obj" /> --> <Description> Here are some standard examples of crossed squares. <List> <Item> If <M>M, N</M> are normal subgroups of a group <M>P</M>, and <M>L = M \cap N</M>, then the four inclusions, <M>L \to N,~ L \to M,~ M \to P,~ N \to P</M>, together with the actions of <M>P</M> on <M>M, N</M> and <M>L</M> given by conjugation, and the crossed pairing <Display> \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 </Display> is a crossed square. This construction is implemented as <C>XSqByNormalSubgroups(P,N,M,L);</C>. </Item> <Item> The actor <M>\mathcal{A}(\mathcal{X}_0)</M> of a crossed module <M>\mathcal{X}_0</M> has been described in Chapter 5. The crossed pairing is given by <Display> \boxtimes \;:\; R \times W \,\to\, S, \quad (r,\chi) \,\mapsto\, \chi r~. </Display> This is implemented as <C>ActorXSq( X0 );</C>. </Item> <Item> The <E>transpose</E> of <M>\mathcal{R}</M> is the crossed square <M>\tilde{\mathcal{R}}</M> obtained by interchanging <M>R_{\{1\}}</M> with <M>R_{\{2\}}</M>, <M>\ddot{\partial}_1</M> with <M>\ddot{\partial}_2</M>, and <M>\dot{\partial}_1</M> with <M>\dot{\partial}_2</M>. The crossed pairing is given by <Display> \tilde{\boxtimes} \;:\; R_{\{2\}} \times R_{\{1\}} \to R_{[2]}, \quad (n,m) \;\mapsto\; n\,\tilde{\boxtimes}\,m := (m \boxtimes n)^{-1}~. </Display> </Item> </List> The following constructions will be implemented in the next release. <List> <Item> If <M>M, N</M> are ordinary <M>P</M>-modules and <M>A</M> is an arbitrary abelian group on which <M>P</M> acts trivially, then there is a crossed square with sides <Display> 0 : A \to N,\quad 0 : A \to M,\quad 0 : M \to P,\quad 0 : N \to P. </Display> </Item> <Item> For a group <M>L</M>, the automorphism crossed module <M>{\rm Act}\ L = (\iota : L \to {\rm Aut}\ L)</M> splits to form the square with <M>(\iota_1 : L \to {\rm Inn}\ L)</M> on two sides, and <M>(\iota_2 : {\rm Inn}\ L \to {\rm Aut}\ L)</M> on the other two sides, where <M>\iota_1</M> maps <M>l \in L</M> to the inner automorphism <M>\beta_l : L \to L,\; l^{\prime} \mapsto l^{-1}l^{\prime}l</M>, and $\iota_2$ is the inclusion of <M>{\rm Inn}\ L</M> in <M>{\rm Aut}\ L</M>. The actions are standard, and the crossed pairing is <Display> \boxtimes \;:\; {\rm Inn}\ L \times {\rm Inn}\ L \to L, \quad (\beta_l, \beta_{l^{\prime}}) \;\mapsto\; [l, l^{\prime}]~. </Display> </Item> </List> </Description> </ManSection> <Example> <![CDATA[ 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] ]]> </Example> <ManSection> <Prop Name="IsXSq" Arg="obj" /> <!-- <Prop Name="IsCat2" --> <!-- Arg="obj" /> --> <Prop Name="Is3dObject" Arg="obj" /> <Prop Name="IsPerm3dObject" Arg="obj" /> <Prop Name="IsPc3dObject" Arg="obj" /> <Prop Name="IsFp3dObject" Arg="obj" /> <Prop Name="IsPreXSq" Arg="obj" /> <Description> These are the basic properties for 3dobjects, and crossed squares in particular. </Description> </ManSection> <ManSection> <Attr Name="Up2dObject" Arg="XS" /> <Attr Name="Left2dObject" Arg="XS" /> <Attr Name="Down2dObject" Arg="XS" /> <Attr Name="Right2dObject" Arg="XS" /> <Attr Name="DiagonalAction" Arg="XS" /> <Attr Name="XPair" Arg="XS" /> <Oper Name="ImageElmXPair" Arg="XS pair" /> <Description> In this implementation the attributes used in the construction of a crossed square <C>XS</C> are the four crossed modules (2d-objects) on the sides of the square; the diagonal action of <M>P</M> on <M>L</M>, and the crossed pairing. <P/> The &GAP; development team have suggested that crossed pairings should be implemented as a special case of <C>BinaryMappings</C> -- a structure which does not yet exist in &GAP;. As a temporary measure, crossed pairings have been implemented using <C>Mapping2ArgumentsByFunction</C>. </Description> </ManSection> <P/> <Example> <![CDATA[ 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) ] ] ]]> </Example> </Section> <Section><Heading>Morphisms of crossed squares</Heading> <Index>morphism of 3d-object</Index> <Index>crossed square morphism</Index> <Index>3d-mapping</Index> This section describes an initial implementation of morphisms of (pre-)crossed squares. <ManSection> <Attr Name="Source" Arg="map" /> <Attr Name="Range" Arg="map" /> <Attr Name="Up2dMorphism" Arg="map" /> <Attr Name="Left2dMorphism" Arg="map" /> <Attr Name="Down2dMorphism" Arg="map" /> <Attr Name="Right2dMorphism" Arg="map" /> <Description> Morphisms of <C>3dObjects</C> are implemented as <C>3dMappings</C>. 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 <C>fail</C> when invalid data is supplied. </Description> </ManSection> <ManSection> <Prop Name="IsXSqMorphism" Arg="map" /> <!-- <Prop Name="IsCat2Morphism" --> <!-- Arg="map" /> --> <Prop Name="IsPreXSqMorphism" Arg="map" /> <!-- <Prop Name="IsPreCat2Morphism" --> <!-- Arg="map" /> --> <Prop Name="IsBijective" Arg="mor" /> <Prop Name="IsAutomorphism3dObject" Arg="mor" /> <Description> A morphism <C>mor</C> between two pre-crossed squares <M>\mathcal{R}_{1}</M> and <M>\mathcal{R}_{2}</M> consists of four crossed module morphisms <C>Up2dMorphism( mor )</C>, mapping the <C>Up2dObject</C> of <M>\mathcal{R}_1</M> to that of <M>\mathcal{R}_2</M>, <C>Left2dMorphism( mor )</C>, <C>Down2dMorphism( mor )</C> and <C>Right2dMorphism( mor )</C>. These four morphisms are required to commute with the four boundary maps and to preserve the rest of the structure. The current version of <C>IsXSqMorphism</C> does not perform all the required checks. </Description> </ManSection> <Example> <![CDATA[ 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 ]]> </Example> </Section> </Chapter>