8 3d-groups and 3d-mappings : crossed squares and cat^2-groups The term 3d-group refers to a set of equivalent categories of which the most common are the categories of crossed squares and cat^2-groups. 8.1 Definition of a crossed square and a crossed n-cube of groups 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,...,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:  groups S_J for each of the four subsets J ⊆ [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_∅ on S_{1}, S_{2} and S_[2] which determine actions of S_{1} on S_{2} and S_[2] via dot∂_1 and actions of S_{2} on S_{1} and S_[2] via dot∂_2;  a function ⊠ : S_{1} × S_{2} -> S_[2]. Here is a picture of the situation: \vcenter{\xymatrix{ & & S_{[2]} \ar[rr]^{\ddot{\partial}_1} \ar[dd]_{\ddot{\partial}_2} && S_{\{2\}} \ar[dd]^{\dot{\partial}_2} & \\ \mathcal{S} & = & && \\ & & S_{\{1\}} \ar[rr]_{\dot{\partial}_1} && S_{\emptyset} }} }}  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_∅:  the homomorphisms ddot∂_1, ddot∂_2 preserve the action of S_∅;  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_∅);  ⊠ is a crossed pairing:  (m_1m_2 ⊠ n) = (m_1 ⊠ n)^m_2 (m_2 ⊠ n),  (m ⊠ n_1n_2) = (m ⊠ n_2) (m ⊠ n_1)^n_2,  (m ⊠ n)^p = (m^p ⊠ n^p);  ddot∂_1 (m ⊠ n) = (n^-1)^m n quad mboxand quad ddot∂_2 (m ⊠ n) = m^-1 m^n,  (m ⊠ ddot∂_1 l) = (l^-1)^m l quad mboxand quad (ddot∂_2 l ⊠ n) = l^-1 l^n. 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.  (A precrossed square is a similar structure which satisfies some subset of these axioms. [More needed here.]) In what follows we shall generally use the following notation for the S_J, namely L = S_[2];~ M = S_{1};~ N = S_{2} and P = S_∅. Crossed squares are the n=2 case of a crossed n-cube of groups, defined as follows. (This is an attempt to translate Definition 2.1 in Ronnie's Computing homotopy types using crossed n-cubes of groups into right actions -- but this definition is not yet completely understood!) A crossed n-cube of groups consists of the following:  groups S_A for every subset A ⊆ [n];  a commutative diagram of group homomorphisms ∂_i : S_A -> S_A ∖ {i}, i ∈ [n]; with composites ∂_B : S_A -> S_A ∖ B, B ⊆ [n];  actions of S_∅ on each S_A; and hence actions of S_B on S_A via ∂_B for each B ⊆ [n];  functions ⊠_A,B : S_A × S_B -> S_A ∪ B, (A,B ⊆ [n]). The following axioms must be satisfied (long list to be added). 8.2 Constructions for crossed squares Analogously to the data structure used for crossed modules, crossed squares are implemented as 3d-groups. When times allows, cat^2-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. 8.2-1 CrossedSquare 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 ∩ 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, 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 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 ActorCrossedSquare( X0 );.  The transpose of mathcalS is the crossed square tildemathcalS} obtained by interchanging S_{1} with S_{2}, ddot∂_1 with ddot∂_2, and dot∂_1 with dot∂_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}~.   Example   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]   8.2-2 CentralQuotient CentralQuotient( X0 )  attribute The central quotient of a crossed module mathcalX = (∂ : S -> R) is the crossed square where:  the left crossed module is mathcalX;  the right crossed module is the quotient mathcalX/Z(mathcalX) (see CentreXMod (4.1-7));  the top and bottom homomorphisms are the natural homomorphisms onto the quotient groups;  the crossed pairing ⊠ : (R × F) -> S, where F = Fix(mathcalX,S,R), is the displacement element ⊠(r,Fs) = ⟨ r,s ⟩ = (s^-1)^rsquad (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 ⊴ X24, constructed in section 4.1.  Example   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 ] ] ]   8.2-3 IsCrossedSquare 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. 8.2-4 Up2DimensionalGroup Up2DimensionalGroup( XS )  attribute Left2DimensionalGroup( XS )  attribute Down2DimensionalGroup( XS )  attribute Right2DimensionalGroup( XS )  attribute DiagonalAction( XS )  attribute CrossedPairing( XS )  attribute ImageElmCrossedPairing( 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 (up; down, left; and right); 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> Up2DimensionalGroup( XSconj ); [c5d->d10b] gap> Right2DimensionalGroup( XSact ); Actor[d10a->d20] gap> xpconj := CrossedPairing( XSconj );; gap> ImageElmCrossedPairing( 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) ]   8.3 Morphisms of crossed squares This section describes an initial implementation of morphisms of (pre-)crossed squares. 8.3-1 Source Source( map )  attribute Range( map )  attribute Up2DimensionalMorphism( map )  attribute Left2DimensionalMorphism( map )  attribute Down2DimensionalMorphism( map )  attribute Right2DimensionalMorphism( 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. 8.3-2 IsCrossedSquareMorphism IsCrossedSquareMorphism( map )  property IsPreCrossedSquareMorphism( 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 Up2DimensionalMorphism(mor), mapping the Up2DimensionalGroup of mathcalS_1 to that of mathcalS_2, Left2DimensionalMorphism(mor), Down2DimensionalMorphism(mor) and Right2DimensionalMorphism(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.  Example   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 := Up2DimensionalGroup( XSconj );; gap> leftconj := Left2DimensionalGroup( XSconj );;  gap> downconj := Down2DimensionalGroup( XSconj );;  gap> rightconj := Right2DimensionalGroup( 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> IsAutomorphismHigherDimensionalDomain( autoconj ); true gap> KnownPropertiesOfObject( autoconj ); [ "CanEasilyCompareElements", "CanEasilySortElements", "IsTotal",   "IsSingleValued", "IsInjective", "IsSurjective",   "IsPreCrossedSquareMorphism", "IsCrossedSquareMorphism",   "IsEndomorphismHigherDimensionalDomain",   "IsAutomorphismHigherDimensionalDomain" ]   8.4 Definitions and constructions for cat^2-groups and their morphisms We shall give three definitions of cat^2-groups and show that they are equivalent. When we come to define cat^n-groups we shall give a similar set of three definitions. Firstly, we take the definition of a cat^2-group from Section 5 of Brown and Loday [BL87], suitably modified. A cat^2-group mathcalC = (C_[2],C_{2},C_{1},C_∅) comprises four groups (one for each of the subsets of [2]) and 15 homomorphisms, as shown in the following diagram: \vcenter{\xymatrix{ & C_{[2]} \ar[ddd] <-1.2ex> \ar[ddd] <-2.0ex>_{\ddot{t}_2,\ddot{h}_2} \ar[rrr] <+1.2ex> \ar[rrr] <+2.0ex>^{\ddot{t}_1,\ddot{h}_1} \ar[dddrrr] <-0.2ex> \ar[dddrrr] <-1.0ex>_(0.55){t_{[2]},h_{[2]}} &&& C_{\{2\}} \ar[lll]^{\ddot{e}_1} \ar[ddd]<+1.2ex> \ar[ddd] <+2.0ex>^{\dot{t}_2,\dot{h}_2} \\ \mathcal{C} \quad = \quad & &&& \\ & &&& \\ & C_{\{1\}} \ar[uuu]_{\ddot{e}_2} \ar[rrr] <-1.2ex> \ar[rrr] <-2.0ex>_{\dot{t}_1,\dot{h}_1} &&& C_{\emptyset} \ar[uuu]^{\dot{e}_2} \ar[lll]_{\dot{e}_1} \ar[uuulll] <-1.0ex>_{e_{[2]}} \\ }}  The following axioms are satisfied by these homomorphisms:  the four sides of the square are cat^1-groups, denoted ddotmathcalC}_1, ddotmathcalC}_2, dotmathcalC}_1, dotmathcalC}_2,  dott_1∘ddoth_2 = doth_2∘ddott_1, ~ dott_2∘ddoth_1 = doth_1∘ddott_2, ~ dote_1∘dott_2 = ddott_2∘ddote_1, ~ dote_2∘dott_1 = ddott_1∘ddote_2, ~ dote_1∘doth_2 = ddoth_2∘ddote_1, ~ dote_2∘doth_1 = ddoth_1∘ddote_2,  dott_1∘ddott_2 = dott_2∘ddott_1 = t_[2], ~ doth_1∘ddoth_2 = doth_2∘ddoth_1 = h_[2], ~ dote_1∘ddote_2 = dote_2∘ddote_1 = e_[2], making the diagonal a cat^1-group (e_[2]; t_[2], h_[2] : C_[2] -> C_∅). It follows from these identities that (ddott_1,dott_1),(ddoth_1,doth_1) and (ddote_1,dote_1) are morphisms of cat^1-groups. Secondly, we give the simplest of the three definitions, adapted from Ellis-Steiner [ES87]. A cat^2-group mathcalC consists of groups G, R_1,R_2 and six homomorphisms t_1,h_1 : G -> R_2,~ e_1 : R_2 -> G,~ t_2,h_2 : G -> R_1,~ e_2 : R_1 -> G, satisfying the following axioms for all 1 leqslant i leqslant 2,  (t_i ∘ e_i)r = r,~ (h_i ∘ e_i)r = r,~ ∀ r ∈ R_[2] ∖ {i}, quad [ker t_i, ker h_i] = 1,  (e_1 ∘ t_1) ∘ (e_2 ∘ t_2) = (e_2 ∘ t_2) ∘ (e_1 ∘ t_1), quad (e_1 ∘ h_1) ∘ (e_2 ∘ h_2) = (e_2 ∘ h_2) ∘ (e_1 ∘ h_1),  (e_1 ∘ t_1) ∘ (e_2 ∘ h_2) = (e_2 ∘ h_2) ∘ (e_1 ∘ t_1), quad (e_2 ∘ t_2) ∘ (e_1 ∘ h_1) = (e_1 ∘ h_1) ∘ (e_2 ∘ t_2). Our third definition defines a cat^2-group as a "cat^1-group of cat^1-groups". A cat^2-group mathcalC consists of two cat^1-groups mathcalC_1 = (e_1;t_1,h_1 : G_1 -> R_1) and mathcalC_2 = (e_2;t_2,h_2 : G_2 -> R_2) and cat^1-morphisms t = (ddott,dott), h = (ddoth,doth) : mathcalC_1 -> mathcalC_2, e = (ddote,dote) : mathcalC_2 -> mathcalC_1, subject to the following conditions: (t \circ e) ~\mbox{and}~ (h \circ e) ~\mbox{are the identity mapping on}~ \mathcal{C}_2, \qquad [\ker t, \ker h] = \{ 1_{\mathcal{C}_1} \},  where ker t = (ker ddott, ker dott), and similarly for ker h. 8.4-1 Cat2Group Cat2Group( args )  function PreCat2Group( args )  function PreCat2GroupByPreCat1Groups( L )  operation The global functions Cat2Group and PreCat2Group are normally called with a single argument, a list of cat1-groups.  Example   gap> CC6 := Cat2Group( Cat1Group(6,2,2), Cat1Group(6,2,3) ); generating (pre-)cat1-groups: 1 : [C6=>Group( [ f1 ] )] 2 : [C6=>Group( [ f2 ] )]  gap> IsCat2Group( CC6 ); true   8.4-2 Cat2GroupOfCrossedSquare Cat2GroupOfCrossedSquare( xsq )  attribute CrossedSquareOfCat2Group( CC )  attribute These functions are very experimental, and should not be relied on! These functions provide the conversion from crossed square to cat2-group, and conversely. (They are the 3-dimensional equivalents of Cat1GroupOfXMod and XModOfCat1Group.)  Example   gap> xsCC6 := CrossedSquareOfCat2Group( CC6 ); crossed square with:  up = [Group( () )->Group( [ (1,2) ] )]  left = [Group( () )->Group( [ (), (3,4,5) ] )]  down = [Group( [ (), (3,4,5) ] ) -> Group( () )]  right = [Group( [ (1,2) ] ) -> Group( () )] gap> Cat2GroupOfCrossedSquare( XSact ); Warning: these conversion functions are still under development fail   8.5 Definition and constructions for cat^n-groups and their morphisms In this chapter we are interested in cat^2-groups, but it is convenient in this section to give the more general definition. There are three equivalent description of a cat^n-group. A cat^n-group consists of the following.  2^n groups G_A, one for each subset A of [n], the vertices of an n-cube.  Group homomorphisms forming n2^n-1 commuting cat^1-groups,  \mathcal{C}_{A,i} ~=~ (e_{A,i};\; t_{A,i},\; h_{A,i} \ :\ G_A \to G_{A \setminus \{i\}}), \quad\mbox{for all} \quad A \subseteq [n],~ i \in A,  the edges of the cube.  These cat^1-groups combine (in sets of 4) to form n(n-1)2^n-3 cat^2-groups mathcalC_A,{i,j} for all {i,j} ⊆ A ⊆ [n],~ i ≠ j, the faces of the cube. Note that, since the t_A,i, h_A,i and e_A,i commute, composite homomorphisms t_A,B, h_A,B : G_A -> G_A ∖ B and e_A,B : G_A ∖ B -> G_A are well defined for all B ⊆ A ⊆ [n]. Secondly, we give the simplest of the three descriptions, again adapted from Ellis-Steiner [ES87]. A cat^n-group mathcalC consists of 2^n groups G_A, one for each subset A of [n], and 3n homomorphisms t_{[n],i}, h_{[n],i} : G_{[n]} \to G_{[n] \setminus \{i\}},~ e_{[n],i} : G_{[n] \setminus \{i\}} \to G_{[n]},  satisfying the following axioms for all 1 leqslant i leqslant n,}  the mathcalC_[n],i ~=~ (e_[n],i; t_[n],i, h_[n],i : G_[n] -> G_[n] ∖ {i})~ are commuting cat^1-groups, so that:  (e_1 ∘ t_1) ∘ (e_2 ∘ t_2) = (e_2 ∘ t_2) ∘ (e_1 ∘ t_1), quad (e_1 ∘ h_1) ∘ (e_2 ∘ h_2) = (e_2 ∘ h_2) ∘ (e_1 ∘ h_1),  (e_1 ∘ t_1) ∘ (e_2 ∘ h_2) = (e_2 ∘ h_2) ∘ (e_1 ∘ t_1), quad (e_2 ∘ t_2) ∘ (e_1 ∘ h_1) = (e_1 ∘ h_1) ∘ (e_2 ∘ t_2). Our third description defines a cat^n-group as a "cat^1-group of cat^(n-1)-groups". A cat^n-group mathcalC consists of two cat^(n-1)-groups:  mathcalA with groups G_A, A ⊆ [n-1], and homomorphisms ddott_A,i, ddoth_A,i, ddote_A,i,  mathcalB with groups H_B, B ⊆ [n-1], and homomorphisms dott_B,i, doth_B,i, dote_B,i, and  cat^(n-1)-morphisms t,h : mathcalA -> mathcalB and e : mathcalB -> mathcalA subject to the following conditions:  (t \circ e) ~\mbox{and}~ (h \circ e) ~\mbox{are the identity mapping on}~ \mathcal{B}, \qquad [\ker t, \ker h] = \{ 1_{\mathcal{A}} \}.