The Whitehead monoid \({\rm Der}(\calX)\) of \(\calX\) was defined in [Whi48] to be the monoid of all *derivations* from \(R\) to \(S\), that is the set of all maps \(\chi : R \to S\), with *Whitehead multiplication* \(\star\) (on the *right*) satisfying:

\[ {\bf Der\ 1}: \chi(qr) ~=~ (\chi q)^{r} \; (\chi r), \qquad {\bf Der\ 2}: (\chi_1 \star \chi_2)(r) ~=~ (\chi_2 r)(\chi_1 r)(\chi_2 \partial \chi_1 r). \]

The zero map is the identity for this composition. Invertible elements in the monoid are called *regular*. The Whitehead group of \(\calX\) is the group of regular derivations in \({\rm Der}(\calX )\). In the next chapter the *actor* of \(\calX\) is defined as a crossed module whose source and range are permutation representations of the Whitehead group and the automorphism group of \(\calX\).

The construction for cat1-groups equivalent to the derivation of a crossed module is the *section*. The monoid of sections of \(\calC = (e;t,h : G \to R)\) is the set of group homomorphisms \(\xi : R \to G\), with Whitehead multiplication \(\star\) (on the *right*) satisfying:

\[ {\bf Sect\ 1}: t \circ \xi ~=~ {\rm id}_R, \quad {\bf Sect\ 2}: (\xi_1 \star \xi_2)(r) ~=~ (\xi_1 r)(e h \xi_1 r)^{-1}(\xi_2 h \xi_1 r) ~=~ (\xi_2 h \xi_1 r)(e h \xi_1 r)^{-1}(\xi_1 r). \]

The embedding \(e\) is the identity for this composition, and \(h(\xi_1 \star \xi_2) = (h \xi_1)(h \xi_2)\). A section is *regular* when \(h \xi\) is an automorphism, and the group of regular sections is isomorphic to the Whitehead group.

If \(\epsilon\) denotes the inclusion of \(S = \ker\ t\) in \(G\) then \(\partial = h \epsilon : S \to R\) and

\[ \xi r ~=~ (e r)(e \chi r), \quad\mbox{which equals}\quad (r, \chi r) ~\in~ R \ltimes S, \]

determines a section \(\xi\) of \(\calC\) in terms of the corresponding derivation \(\chi\) of \(\calX\), and conversely.

`‣ DerivationByImages` ( X0, ims ) | ( operation ) |

`‣ IsDerivation` ( map ) | ( property ) |

`‣ IsUp2DimensionalMapping` ( chi ) | ( property ) |

`‣ UpGeneratorImages` ( chi ) | ( attribute ) |

`‣ UpImagePositions` ( chi ) | ( attribute ) |

`‣ DerivationImage` ( chi, r ) | ( operation ) |

A derivation \(\chi\) is stored like a group homomorphisms by specifying the images of the generating set `StrongGeneratorsStabChain( StabChain(R) )`

of the range \(R\). This set of images is stored as the attribute `UpGeneratorImages`

of \(\chi\). The function `IsDerivation`

is automatically called to check that this procedure is well-defined.

Images of the remaining elements may be obtained using axiom \({\bf Der\ 1}\). `UpImagePositions(chi)`

is the list of the images under \(\chi\) of `Elements(R)`

and `DerivationImage(chi,r)`

returns \(\chi r\).

In the following example a cat1-group `C3`

and the associated crossed module `X3`

are constructed, where `X3`

is isomorphic to the inclusion of the normal cyclic group `c3`

in the symmetric group `s3`

. The derivation \(\chi_1\) maps `c3`

to the identity and the other \(3\) elements to \((1,2,3)(4,6,5)\).

gap> g18 := Group( (1,2,3), (4,5,6), (2,3)(5,6) );; gap> SetName( g18, "g18" ); gap> gen18 := GeneratorsOfGroup( g18 );; gap> g1 := gen18[1];; g2 := gen18[2];; g3 := gen18[3];; gap> s3 := Subgroup( g18, gen18{[2..3]} );; gap> SetName( s3, "s3" );; gap> t := GroupHomomorphismByImages( g18, s3, gen18, [g2,g2,g3] );; gap> h := GroupHomomorphismByImages( g18, s3, gen18, [(),g2,g3] );; gap> e := GroupHomomorphismByImages( s3, g18, [g2,g3], [g2,g3] );; gap> C3 := Cat1Group( t, h, e ); [g18=>s3] gap> SetName( Kernel(t), "c3" );; gap> X3 := XModOfCat1Group( C3 ); [c3->s3] gap> R3 := Range( X3 );; gap> StrongGeneratorsStabChain( StabChain( R3 ) ); [ (4,5,6), (2,3)(5,6) ] gap> chi1 := DerivationByImages( X3, [ (), (1,2,3)(4,6,5) ] ); DerivationByImages( s3, c3, [ (4,5,6), (2,3)(5,6) ], [ (), (1,2,3)(4,6,5) ] ) gap> [ IsUp2DimensionalMapping( chi1 ), IsDerivation( chi1 ) ]; [ true, true ] gap> UpGeneratorImages( chi1 ); [ (), (1,2,3)(4,6,5) ] gap> UpImagePositions( chi1 ); [ 1, 1, 1, 2, 2, 2 ] gap> DerivationImage( chi1, (2,3)(4,5) ); (1,2,3)(4,6,5)

`‣ PrincipalDerivation` ( X0, s ) | ( operation ) |

The *principal derivation* determined by \(s \in S\) is the derivation \(\eta_s : R \to S,\; r \mapsto (s^{-1})^rs\).

gap> eta := PrincipalDerivation( X3, (1,2,3)(4,6,5) ); DerivationByImages( s3, c3, [ (4,5,6), (2,3)(5,6) ], [ (), (1,3,2)(4,5,6) ] )

`‣ SectionByHomomorphism` ( C, hom ) | ( operation ) |

`‣ IsSection` ( hom ) | ( property ) |

`‣ SectionByDerivation` ( chi ) | ( operation ) |

`‣ DerivationBySection` ( xi ) | ( operation ) |

Sections *are* group homomorphisms, so do not need a special representation. Operations `SectionByDerivation`

and `DerivationBySection`

convert derivations to sections, and vice-versa, calling `Cat1GroupOfXMod`

(2.5-3) and `XModOfCat1Group`

(2.5-3) automatically.

Two strategies for calculating derivations and sections are implemented, see [AW00]. The default method for `AllDerivations`

(5.2-1) is to search for all possible sets of images using a backtracking procedure, and when all the derivations are found it is not known which are regular. In early versions of this package, the default method for `AllSections( <C> )`

was to compute all endomorphisms on the range group `R`

of `C`

as possibilities for the composite \(h \xi\). A backtrack method then found possible images for such a section. In the current version the derivations of the associated crossed module are calculated, and these are all converted to sections using `SectionByDerivation`

.

gap> hom2 := GroupHomomorphismByImages( s3, g18, [ (4,5,6), (2,3)(5,6) ], > [ (1,3,2)(4,6,5), (1,2)(4,6) ] );; gap> xi2 := SectionByHomomorphism( C3, hom2 ); SectionByHomomorphism( s3, g18, [ (4,5,6), (2,3)(5,6) ], [ (1,3,2)(4,6,5), (1,2)(4,6) ] ) gap> [ IsUp2DimensionalMapping( xi2 ), IsSection( xi2 ) ]; [ true, true ] gap> chi2 := DerivationBySection( xi2 ); DerivationByImages( s3, c3, [ (4,5,6), (2,3)(5,6) ], [ (1,3,2)(4,5,6), (1,2,3)(4,6,5) ] ) gap> xi1 := SectionByDerivation( chi1 ); SectionByHomomorphism( s3, g18, [ (4,5,6), (2,3)(5,6) ], [ (1,2,3), (1,2)(4,6) ] )

`‣ IdentityDerivation` ( X0 ) | ( attribute ) |

`‣ IdentitySection` ( C0 ) | ( attribute ) |

The identity derivation maps the range group to the identity subgroup of the source, while the identity section is just the range embedding considered as a section.

gap> IdentityDerivation( X3 ); DerivationByImages( s3, c3, [ (4,5,6), (2,3)(5,6) ], [ (), () ] ) gap> IdentitySection(C3); SectionByHomomorphism( s3, g18, [ (4,5,6), (2,3)(5,6) ], [ (4,5,6), (2,3)(5,6) ] )

`‣ WhiteheadProduct` ( chi1, chi2 ) | ( operation ) |

`‣ WhiteheadOrder` ( chi ) | ( operation ) |

The `WhiteheadProduct`

may be applied to two derivations to form \(\chi_1 \star \chi_2\), or to two sections to form \(\xi_1 \star \xi_2\). The `WhiteheadOrder`

of a regular derivation \(\chi\) is the smallest power of \(\chi\), using this product, equal to the `IdentityDerivation`

(5.1-4).

gap> chi12 := WhiteheadProduct( chi1, chi2 ); DerivationByImages( s3, c3, [ (4,5,6), (2,3)(5,6) ], [ (1,2,3)(4,6,5), () ] ) gap> xi12 := WhiteheadProduct( xi1, xi2 ); SectionByHomomorphism( s3, g18, [ (4,5,6), (2,3)(5,6) ], [ (1,2,3), (2,3)(5,6) ] ) gap> xi12 = SectionByDerivation( chi12 ); true gap> [ WhiteheadOrder( chi2 ), WhiteheadOrder( xi2 ) ]; [ 2, 2 ]

As mentioned at the beginning of this chapter, the Whitehead monoid \({\rm Der}(\calX)\) of \(\calX\) is the monoid of all derivations from \(R\) to \(S\). Monoids of derivations have representation `IsMonoidOfUp2DimensionalMappingsObj`

. Multiplication tables for Whitehead monoids enable the construction of transformation representations.

`‣ AllDerivations` ( X0 ) | ( attribute ) |

`‣ ImagesTable` ( obj ) | ( attribute ) |

`‣ DerivationClass` ( mon ) | ( attribute ) |

`‣ WhiteheadMonoidTable` ( X0 ) | ( attribute ) |

`‣ WhiteheadTransformationMonoid` ( X0 ) | ( attribute ) |

Using our example `X3`

we find that there are just nine derivations.

gap> all3 := AllDerivations( X3 ); monoid of derivations with images list: [ (), () ] [ (), (1,3,2)(4,5,6) ] [ (), (1,2,3)(4,6,5) ] [ (1,3,2)(4,5,6), () ] [ (1,3,2)(4,5,6), (1,3,2)(4,5,6) ] [ (1,3,2)(4,5,6), (1,2,3)(4,6,5) ] [ (1,2,3)(4,6,5), () ] [ (1,2,3)(4,6,5), (1,3,2)(4,5,6) ] [ (1,2,3)(4,6,5), (1,2,3)(4,6,5) ] gap> DerivationClass( all3 ); "all" gap> Perform( ImagesTable( all3 ), Display ); [ 1, 1, 1, 1, 1, 1 ] [ 1, 1, 1, 3, 3, 3 ] [ 1, 1, 1, 2, 2, 2 ] [ 1, 3, 2, 1, 3, 2 ] [ 1, 3, 2, 3, 2, 1 ] [ 1, 3, 2, 2, 1, 3 ] [ 1, 2, 3, 1, 2, 3 ] [ 1, 2, 3, 3, 1, 2 ] [ 1, 2, 3, 2, 3, 1 ] gap> wmt3 := WhiteheadMonoidTable( X3 );; gap> Perform( wmt3, Display ); [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] [ 2, 3, 1, 5, 6, 4, 8, 9, 7 ] [ 3, 1, 2, 6, 4, 5, 9, 7, 8 ] [ 4, 6, 5, 1, 3, 2, 7, 9, 8 ] [ 5, 4, 6, 2, 1, 3, 8, 7, 9 ] [ 6, 5, 4, 3, 2, 1, 9, 8, 7 ] [ 7, 7, 7, 7, 7, 7, 7, 7, 7 ] [ 8, 8, 8, 8, 8, 8, 8, 8, 8 ] [ 9, 9, 9, 9, 9, 9, 9, 9, 9 ] gap> wtm3 := WhiteheadTransformationMonoid( X3 ); <transformation monoid of degree 9 with 3 generators> gap> GeneratorsOfMonoid( wtm3 ); [ Transformation( [ 2, 3, 1, 5, 6, 4, 8, 9, 7 ] ), Transformation( [ 4, 6, 5, 1, 3, 2, 7, 9, 8 ] ), Transformation( [ 7, 7, 7, 7, 7, 7, 7, 7, 7 ] ) ]

`‣ RegularDerivations` ( X0 ) | ( attribute ) |

`‣ ImagesList` ( obj ) | ( attribute ) |

`‣ WhiteheadGroupTable` ( X0 ) | ( attribute ) |

`‣ WhiteheadPermGroup` ( X0 ) | ( attribute ) |

`RegularDerivations`

are those derivations which are invertible in the monoid. Multiplication tables for the Whitehead group enable the construction of permutation representations.

Of the nine derivations of `X3`

just six are regular. The associated group is isomorphic to the symmetric group `s3`

.

gap> reg3 := RegularDerivations( X3 ); monoid of derivations with images list: [ (), () ] [ (), (1,3,2)(4,5,6) ] [ (), (1,2,3)(4,6,5) ] [ (1,3,2)(4,5,6), () ] [ (1,3,2)(4,5,6), (1,3,2)(4,5,6) ] [ (1,3,2)(4,5,6), (1,2,3)(4,6,5) ] gap> wgt3 := WhiteheadGroupTable( X3 );; gap> Perform( wgt3, Display ); [ [ 1, 2, 3, 4, 5, 6 ], [ 2, 3, 1, 5, 6, 4 ], [ 3, 1, 2, 6, 4, 5 ], [ 4, 6, 5, 1, 3, 2 ], [ 5, 4, 6, 2, 1, 3 ], [ 6, 5, 4, 3, 2, 1 ] ] gap> wpg3 := WhiteheadPermGroup( X3 ); Group([ (1,2,3)(4,5,6), (1,4)(2,6)(3,5) ])

`‣ PrincipalDerivations` ( X0 ) | ( attribute ) |

The principal derivations form a subgroup of the Whitehead group.

gap> PDX3 := PrincipalDerivations( X3 ); monoid of derivations with images list: [ (), () ] [ (), (1,3,2)(4,5,6) ] [ (), (1,2,3)(4,6,5) ]

`‣ AllSections` ( C0 ) | ( attribute ) |

`‣ RegularSections` ( C0 ) | ( attribute ) |

These operations have been declared but are not yet implemented. The interested user should, instead, work with the corresponding derivations.

generated by GAPDoc2HTML