Crossed squares were introduced by Guin-Waléry 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,\ldots,n\}\). We use the \(n=2\) version of the definition of crossed \(n\)-cube as given by Ellis and Steiner [ES87].
A crossed square \(\mathcal{S}\) consists of the following:
Groups \(S_J\) for each of the four subsets \(J \subseteq [2]\);
a commutative diagram of group homomorphisms:
\[ \ddot{\partial}_1 : S_{[2]} \to S_{\{2\}}, \quad \ddot{\partial}_2 : S_{[2]} \to S_{\{1\}}, \quad \dot{\partial}_1 : S_{\{1\}} \to S_{\emptyset}, \quad \dot{\partial}_2 : S_{\{2\}} \to S_{\emptyset}; \]
actions of \(S_{\emptyset}\) on \(S_{\{1\}}, S_{\{2\}}\) and \(S_{[2]}\) which determine actions of \(S_{\{1\}}\) on \(S_{\{2\}}\) and \(S_{[2]}\) via \(\dot{\partial}_1\) and actions of \(S_{\{2\}}\) on \(S_{\{1\}}\) and \(S_{[2]}\) via \(\dot{\partial}_2\;\);
a function \(\boxtimes : S_{\{1\}} \times S_{\{2\}} \to S_{[2]}\).
The following axioms must be satisfied for all \(l \in S_{[2]},\; m,m_1,m_2 \in S_{\{1\}},\; n,n_1,n_2 \in S_{\{2\}},\; p \in S_{\emptyset}\):
the homomorphisms \(\ddot{\partial}_1, \ddot{\partial}_2\) preserve the action of \(S_{\emptyset}\;\);
each of the upper, left-hand, lower, and right-hand sides of the square,
\[ \ddot{\mathcal{S}}_1 = (\ddot{\partial}_1 : S_{[2]} \to S_{\{2\}}), \ddot{\mathcal{S}}_2 = (\ddot{\partial}_2 : S_{[2]} \to S_{\{1\}}), \dot{\mathcal{S}}_1 = (\dot{\partial}_1 : S_{\{1\}} \to S_{\emptyset}), \dot{\mathcal{S}}_2 = (\dot{\partial}_2 : S_{\{2\}} \to S_{\emptyset}), \]
and the diagonal
\[ \mathcal{S}_{12} = (\partial_{12} := \dot{\partial}_1\ddot{\partial}_2 = \dot{\partial}_2\ddot{\partial}_1 : S_{[2]} \to S_{\emptyset}) \]
are crossed modules (with actions via \(S_{\emptyset}\));
\(\boxtimes\) is a 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)\);
\(\ddot{\partial}_1 (m \boxtimes n) \;=\; (n^{-1})^{m}\;n \quad \mbox{and} \quad \ddot{\partial}_2 (m \boxtimes n) \;=\; m^{-1}\;m^{n}\),
\((m \boxtimes \ddot{\partial}_1 l) \;=\; (l^{-1})^{m}\;l \quad \mbox{and} \quad (\ddot{\partial}_2 l \boxtimes n) \;=\; l^{-1}\;l^n\).
Note that the actions of \(S_{\{1\}}\) on \(S_{\{2\}}\) and \(S_{\{2\}}\) on \(S_{\{1\}}\) via \(S_{\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. \]
(A precrossed square is a similar structure which satisfies some subset of these axioms.)
[More needed here.]
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 be done.
‣ CrossedSquare ( args ) | ( function ) |
‣ CrossedSquareByNormalSubgroups ( P, N, M, L ) | ( operation ) |
‣ ActorCrossedSquare ( X0 ) | ( operation ) |
‣ Transpose3dGroup ( 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 \to N,~ L \to M,~ M \to P,~ N \to P\), together with the actions of \(P\) on \(M, N\) and \(L\) given by conjugation, form a crossed square with 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\,. \]
This construction is implemented as CrossedSquareByNormalSubgroups(P,N,M,L);
.
The actor \(\mathcal{A}(\mathcal{X}_0)\) of a crossed module \(\mathcal{X}_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 ActorCrossedSquare( X0 );
.
The transpose of \(\mathcal{S}\) is the crossed square \(\tilde{\mathcal{S}}\) obtained by interchanging \(S_{\{1\}}\) with \(S_{\{2\}}\), \(\ddot{\partial}_1\) with \(\ddot{\partial}_2\), and \(\dot{\partial}_1\) with \(\dot{\partial}_2\). The crossed pairing is given by
\[ \tilde{\boxtimes} \;:\; S_{\{2\}} \times S_{\{1\}} \to S_{[2]}, \quad (n,m) \;\mapsto\; n\,\tilde{\boxtimes}\,m := (m \boxtimes n)^{-1}~. \]
gap> d20 := DihedralGroup( IsPermGroup, 20 );; gap> gend20 := GeneratorsOfGroup( d20 ); [ (1,2,3,4,5,6,7,8,9,10), (2,10)(3,9)(4,8)(5,7) ] gap> p1 := gend20[1];; p2 := gend20[2];; p12 := p1*p2; (1,10)(2,9)(3,8)(4,7)(5,6) gap> d10a := Subgroup( d20, [ p1^2, p2 ] );; gap> d10b := Subgroup( d20, [ p1^2, p12 ] );; gap> c5d := Subgroup( d20, [ p1^2 ] );; gap> SetName( d20, "d20" ); SetName( d10a, "d10a" ); gap> SetName( d10b, "d10b" ); SetName( c5d, "c5d" ); gap> XSconj := CrossedSquareByNormalSubgroups( d20, d10b, d10a, c5d ); [ c5d -> d10b ] [ | | ] [ d10a -> d20 ] gap> Name( XSconj ); "[c5d->d10b,d10a->d20]" gap> XStrans := Transpose3dGroup( XSconj ); [ c5d -> d10a ] [ | | ] [ d10b -> d20 ] gap> X20 := XModByNormalSubgroup( d20, d10a ); [d10a->d20] gap> XSact := ActorCrossedSquare( X20 ); crossed square with: up = Whitehead[d10a->d20] left = [d10a->d20] down = Norrie[d10a->d20] right = Actor[d10a->d20]
‣ CentralQuotient ( X0 ) | ( attribute ) |
The central quotient of a crossed module \(\mathcal{X} = (\partial : S \to R)\) is the crossed square where:
the left crossed module is \(\mathcal{X}\);
the right crossed module is the quotient \(\mathcal{X}/Z(\mathcal{X})\) (see CentreXMod
(4.1-7));
the top and bottom homomorphisms are the natural homomorphisms onto the quotient groups;
the crossed pairing \(\boxtimes : (R \times F) \to S\), where \(F = Fix(\mathcal{X},S,R)\), is the displacement element \(\boxtimes(r,Fs) = \langle r,s \rangle = (s^{-1})^rs\quad\) (see Displacement
(4.1-3) and section 4.3).
This is the special case of an intended function CrossedSquareByCentralExtension
which has not yet been implemented. In the example Xn7
\(\unlhd\) X24
, constructed in section 4.1.
gap> pos7 := Position( ids, [ [12,2], [24,5] ] );; gap> Xn7 := nsx[pos7]; [Group( [ f2, f3, f4 ] )->Group( [ f1, f2, f4, f5 ] )] gap> IdGroup( CentreXMod(Xn7) ); [ [ 4, 1 ], [ 4, 1 ] ] gap> CQXn7 := CentralQuotient( Xn7 ); crossed square with: up = [Group( [ f2, f3, f4 ] )->Group( [ f1 ] )] left = [Group( [ f2, f3, f4 ] )->Group( [ f1, f2, f4, f5 ] )] down = [Group( [ f1, f2, f4, f5 ] )->Group( [ f1, f2 ] )] right = [Group( [ f1 ] )->Group( [ f1, f2 ] )] gap> IdGroup( CQXn7 ); [ [ [ 12, 2 ], [ 3, 1 ] ], [ [ 24, 5 ], [ 6, 1 ] ] ]
‣ IsCrossedSquare ( obj ) | ( property ) |
‣ Is3dObject ( obj ) | ( property ) |
‣ IsPerm3dObject ( obj ) | ( property ) |
‣ IsPc3dObject ( obj ) | ( property ) |
‣ IsFp3dObject ( obj ) | ( property ) |
‣ IsPreCrossedSquare ( obj ) | ( property ) |
These are the basic properties for 3d-groups, and crossed squares in particular.
‣ Up2dGroup ( XS ) | ( attribute ) |
‣ Left2dGroup ( XS ) | ( attribute ) |
‣ Down2dGroup ( XS ) | ( attribute ) |
‣ Right2dGroup ( XS ) | ( attribute ) |
‣ DiagonalAction ( XS ) | ( attribute ) |
‣ XPairing ( XS ) | ( attribute ) |
‣ ImageElmXPairing ( 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 ); [c5d->d10b] gap> Right2dGroup( XSact ); Actor[d10a->d20] gap> xpconj := XPairing( XSconj );; gap> ImageElmXPairing( xpconj, [ p2, p12 ] ); (1,9,7,5,3)(2,10,8,6,4) gap> diag := DiagonalAction( XSact ); [ (1,3,5,2,4)(6,10,14,8,12)(7,11,15,9,13), (1,2,5,4)(6,8,14,12)(7,11,13,9) ] -> [ (1,3,5,2,4)(6,10,14,8,12)(7,11,15,9,13), (1,2,5,4)(6,8,14,12)(7,11,13,9) ] -> [ ^(1,3,5,7,9)(2,4,6,8,10), ^(1,2,5,4)(3,8)(6,7,10,9) ]
This section describes an initial implementation of morphisms of (pre-)crossed squares.
‣ 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.
‣ IsCrossedSquareMorphism ( map ) | ( property ) |
‣ IsPreCrossedSquareMorphism ( map ) | ( property ) |
‣ IsBijective ( mor ) | ( property ) |
‣ IsEndomorphism3dObject ( mor ) | ( property ) |
‣ IsAutomorphism3dObject ( mor ) | ( property ) |
A morphism mor
between two pre-crossed squares \(\mathcal{S}_{1}\) and \(\mathcal{S}_{2}\) consists of four crossed module morphisms Up2dMorphism( mor )
, mapping the Up2dGroup
of \(\mathcal{S}_1\) to that of \(\mathcal{S}_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 IsCrossedSquareMorphism
does not perform all the required checks.
gap> ad20 := GroupHomomorphismByImages( d20, d20, [p1,p2], [p1,p2^p1] );; gap> ad10a := GroupHomomorphismByImages( d10a, d10a, [p1^2,p2], [p1^2,p2^p1] );; gap> ad10b := GroupHomomorphismByImages( d10b, d10b, [p1^2,p12], [p1^2,p12^p1] );; gap> idc5d := IdentityMapping( c5d );; gap> upconj := Up2dGroup( XSconj );; gap> leftconj := Left2dGroup( XSconj );; gap> downconj := Down2dGroup( XSconj );; gap> rightconj := Right2dGroup( XSconj );; gap> up := XModMorphismByHoms( upconj, upconj, idc5d, ad10b ); [[c5d->d10b] => [c5d->d10b]] gap> left := XModMorphismByHoms( leftconj, leftconj, idc5d, ad10a ); [[c5d->d10a] => [c5d->d10a]] gap> down := XModMorphismByHoms( downconj, downconj, ad10a, ad20 ); [[d10a->d20] => [d10a->d20]] gap> right := XModMorphismByHoms( rightconj, rightconj, ad10b, ad20 ); [[d10b->d20] => [d10b->d20]] gap> autoconj := CrossedSquareMorphism( XSconj, XSconj, up, left, right, down );; gap> ord := Order( autoconj );; gap> Display( autoconj ); Morphism of crossed squares :- : Source = [c5d->d10b,d10a->d20] : Range = [c5d->d10b,d10a->d20] : order = 5 : up-left: [ [ ( 1, 3, 5, 7, 9)( 2, 4, 6, 8,10) ], [ ( 1, 3, 5, 7, 9)( 2, 4, 6, 8,10) ] ] : up-right: [ [ ( 1, 3, 5, 7, 9)( 2, 4, 6, 8,10), ( 1,10)( 2, 9)( 3, 8)( 4, 7)( 5, 6) ], [ ( 1, 3, 5, 7, 9)( 2, 4, 6, 8,10), ( 1, 2)( 3,10)( 4, 9)( 5, 8)( 6, 7) ] ] : down-left: [ [ ( 1, 3, 5, 7, 9)( 2, 4, 6, 8,10), ( 2,10)( 3, 9)( 4, 8)( 5, 7) ], [ ( 1, 3, 5, 7, 9)( 2, 4, 6, 8,10), ( 1, 3)( 4,10)( 5, 9)( 6, 8) ] ] : down-right: [ [ ( 1, 2, 3, 4, 5, 6, 7, 8, 9,10), ( 2,10)( 3, 9)( 4, 8)( 5, 7) ], [ ( 1, 2, 3, 4, 5, 6, 7, 8, 9,10), ( 1, 3)( 4,10)( 5, 9)( 6, 8) ] ] gap> KnownPropertiesOfObject( autoconj ); [ "CanEasilyCompareElements", "CanEasilySortElements", "IsTotal", "IsSingleValued", "IsInjective", "IsSurjective", "IsPreCrossedSquareMorphism", "IsCrossedSquareMorphism", "IsEndomorphism3dDomain" ] gap> IsAutomorphism3dDomain( autoconj ); true
generated by GAPDoc2HTML