  
  [1X4 [33X[0;0YDerivations and Sections[133X[101X
  
  
  [1X4.1 [33X[0;0YWhitehead Multiplication[133X[101X
  
  [1X4.1-1 IsDerivation[101X
  
  [29X[2XIsDerivation[102X( [3Xmap[103X ) [32X property
  [29X[2XIsSection[102X( [3Xmap[103X ) [32X property
  [29X[2XIsUp2dMapping[102X( [3Xmap[103X ) [32X property
  
  [33X[0;0YThe  Whitehead monoid [22XDer(mathcalX)[122X of [22XmathcalX[122X was defined in [Whi48] to be
  the monoid of all [13Xderivations[113X from [22XR[122X to [22XS[122X, that is the set of all maps [22Xχ : R
  -> S[122X, with [13XWhitehead multiplication[113X [22X⋆[122X (on the [13Xright[113X) satisfying:[133X
  
  
        [33X[1;6Y[24X[33X[0;0Y{\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).[133X [124X[133X
  
  
  [33X[0;0YThe  zero  map  is the identity for this composition. Invertible elements in
  the  monoid are called [13Xregular[113X. The Whitehead group of [22XmathcalX[122X is the group
  of  regular  derivations in [22XDer(mathcalX )[122X. In the next chapter the [13Xactor[113X of
  [22XmathcalX[122X  is  defined  as  a  crossed  module  whose  source  and  range are
  permutation  representations  of  the  Whitehead  group and the automorphism
  group of [22XmathcalX[122X.[133X
  
  [33X[0;0YThe  construction  for cat1-groups equivalent to the derivation of a crossed
  module is the [13Xsection[113X. The monoid of sections of [22XmathcalC = (e;t,h : G -> R)[122X
  is  the set of group homomorphisms [22Xξ : R -> G[122X, with Whitehead multiplication
  [22X⋆[122X, (on the [13Xright[113X) satisfying:[133X
  
  
        [33X[1;6Y[24X[33X[0;0Y{\bf Sect\ 1}: t \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).[133X [124X[133X
  
  
  [33X[0;0YThe  embedding [22Xe[122X is the identity for this composition, and [22Xh(ξ_1 ⋆ ξ_2) = (h
  ξ_1)(h ξ_2)[122X. A section is [13Xregular[113X when [22Xh ξ[122X is an automorphism, and the group
  of regular sections is isomorphic to the Whitehead group.[133X
  
  [33X[0;0YIf [22Xϵ[122X denotes the inclusion of [22XS = ker t[122X in [22XG[122X then [22X∂ = h ϵ : S -> R[122X and[133X
  
  
        [33X[1;6Y[24X[33X[0;0Y\xi r ~=~ (e r)(e \chi r) ~=~ (r, \chi r)[133X [124X[133X
  
  
  [33X[0;0Ydetermines  a section [22Xξ[122X of [22XmathcalC[122X in terms of the corresponding derivation
  [22Xχ[122X of [22XmathcalX[122X, and conversely.[133X
  
  [1X4.1-2 DerivationByImages[101X
  
  [29X[2XDerivationByImages[102X( [3XX0[103X, [3Xims[103X ) [32X operation
  
  [33X[0;0YDerivations  are stored like group homomorphisms by specifying the images of
  a  generating  set.  Images  of  the remaining elements may then be obtained
  using  axiom {\bf Der\ 1}. The function [10XIsDerivation[110X is automatically called
  to check that this procedure is well-defined.[133X
  
  [33X[0;0YIn  the  following example a cat1-group [10XC3[110X and the associated crossed module
  [10XX3[110X  are  constructed,  where [10XX3[110X is isomorphic to the inclusion of the normal
  cyclic group [10Xc3[110X in the symmetric group [10Xs3[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xg18 := Group( (1,2,3), (4,5,6), (2,3)(5,6) );;[127X[104X
    [4X[25Xgap>[125X [27XSetName( g18, "g18" );[127X[104X
    [4X[25Xgap>[125X [27Xgen18 := GeneratorsOfGroup( g18 );;[127X[104X
    [4X[25Xgap>[125X [27Xg1 := gen18[1];;  g2 := gen18[2];;  g3 := gen18[3];;[127X[104X
    [4X[25Xgap>[125X [27Xs3 := Subgroup( g18, gen18{[2..3]} );;[127X[104X
    [4X[25Xgap>[125X [27XSetName( s3, "s3" );;[127X[104X
    [4X[25Xgap>[125X [27Xt := GroupHomomorphismByImages( g18, s3, gen18, [g2,g2,g3] );;[127X[104X
    [4X[25Xgap>[125X [27Xh := GroupHomomorphismByImages( g18, s3, gen18, [(),g2,g3] );;[127X[104X
    [4X[25Xgap>[125X [27Xe := GroupHomomorphismByImages( s3, g18, [g2,g3], [g2,g3] );;[127X[104X
    [4X[25Xgap>[125X [27XC3 := Cat1( t, h, e );[127X[104X
    [4X[28X[g18=>s3][128X[104X
    [4X[25Xgap>[125X [27XSetName( Kernel(t), "c3" );;[127X[104X
    [4X[25Xgap>[125X [27XX3 := XModOfCat1( C3 );;[127X[104X
    [4X[25Xgap>[125X [27XDisplay( X3 );[127X[104X
    [4X[28XCrossed module [c3->s3] :- [128X[104X
    [4X[28X: Source group has generators:[128X[104X
    [4X[28X  [ (1,2,3)(4,6,5) ][128X[104X
    [4X[28X: Range group has generators:[128X[104X
    [4X[28X  [ (4,5,6), (2,3)(5,6) ][128X[104X
    [4X[28X: Boundary homomorphism maps source generators to:[128X[104X
    [4X[28X  [ (4,6,5) ][128X[104X
    [4X[28X: Action homomorphism maps range generators to automorphisms:[128X[104X
    [4X[28X  (4,5,6) --> { source gens --> [ (1,2,3)(4,6,5) ] }[128X[104X
    [4X[28X  (2,3)(5,6) --> { source gens --> [ (1,3,2)(4,5,6) ] }[128X[104X
    [4X[28X  These 2 automorphisms generate the group of automorphisms.[128X[104X
    [4X[28X: associated cat1-group is [g18=>s3][128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Ximchi := [ (1,2,3)(4,6,5), (1,2,3)(4,6,5) ];;[127X[104X
    [4X[25Xgap>[125X [27Xchi := DerivationByImages( X3, imchi );[127X[104X
    [4X[28XDerivationByImages( s3, c3, [ (4,5,6), (2,3)(5,6) ],[128X[104X
    [4X[28X[ (1,2,3)(4,6,5), (1,2,3)(4,6,5) ] )[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X4.1-3 SectionByImages[101X
  
  [29X[2XSectionByImages[102X( [3XC[103X, [3Xims[103X ) [32X operation
  [29X[2XSectionByDerivation[102X( [3Xchi[103X ) [32X operation
  [29X[2XDerivationBySection[102X( [3Xxi[103X ) [32X operation
  
  [33X[0;0YSections  [13Xare[113X  group homomorphisms, so do not need a special representation.
  Operations  [10XSectionByDerivation[110X  and [10XDerivationBySection[110X convert derivations
  to   sections,   and   vice-versa,   calling   [10XCat1OfXMod[110X   and   [10XXModOfCat1[110X
  automatically.[133X
  
  [33X[0;0YTwo strategies for calculating derivations and sections are implemented, see
  [AW00].  The default method for [10XAllDerivations[110X 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 the [5XGAP[105X3 version of this
  package,  the  default  method  for  [10XAllSections(  <C>  )[110X was to compute all
  endomorphisms on the range group [10XR[110X of [10XC[110X as possibilities for the composite [22Xh
  ξ[122X.  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
  [10XSectionByDerivation[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xxi := SectionByDerivation( chi );[127X[104X
    [4X[28XSectionByImages( s3, g18, [ (4,5,6), (2,3)(5,6) ], [ (1,2,3), (1,2)(4,6) ] )[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X4.2 [33X[0;0YWhitehead Groups and Monoids[133X[101X
  
  [1X4.2-1 RegularDerivations[101X
  
  [29X[2XRegularDerivations[102X( [3XX0[103X ) [32X attribute
  [29X[2XAllDerivations[102X( [3XX0[103X ) [32X attribute
  [29X[2XRegularSections[102X( [3XC0[103X ) [32X attribute
  [29X[2XAllSections[102X( [3XC0[103X ) [32X attribute
  [29X[2XImagesList[102X( [3Xobj[103X ) [32X attribute
  [29X[2XImagesTable[102X( [3Xobj[103X ) [32X attribute
  
  [33X[0;0YThere are two functions to determine the elements of the Whitehead group and
  the   Whitehead   monoid   of   [22XmathcalX0[122X,   namely  [10XRegularDerivations[110X  and
  [10XAllDerivations[110X.  (The  functions  [10XRegularSections[110X  and  [10XAllSections[110X  perform
  corresponding tasks for a cat1-group.)[133X
  
  [33X[0;0YUsing  our  example  [10XX3[110X we find that there are just nine derivations, six of
  them regular, and the associated group is isomorphic to [10Xs3[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xall3 := AllDerivations( X3 );;[127X[104X
    [4X[25Xgap>[125X [27Ximall3 := ImagesList( all3 );; [127X[104X
    [4X[25Xgap>[125X [27XPrintListOneItemPerLine( imall3 );[127X[104X
    [4X[28X[ [ (), () ],[128X[104X
    [4X[28X  [ (), (1,2,3)(4,6,5) ],[128X[104X
    [4X[28X  [ (), (1,3,2)(4,5,6) ],[128X[104X
    [4X[28X  [ (1,2,3)(4,6,5), () ],[128X[104X
    [4X[28X  [ (1,2,3)(4,6,5), (1,2,3)(4,6,5) ],[128X[104X
    [4X[28X  [ (1,2,3)(4,6,5), (1,3,2)(4,5,6) ],[128X[104X
    [4X[28X  [ (1,3,2)(4,5,6), () ],[128X[104X
    [4X[28X  [ (1,3,2)(4,5,6), (1,2,3)(4,6,5) ],[128X[104X
    [4X[28X  [ (1,3,2)(4,5,6), (1,3,2)(4,5,6) ][128X[104X
    [4X[28X  ][128X[104X
    [4X[25Xgap>[125X [27XKnownAttributesOfObject( all3 );[127X[104X
    [4X[28X[ "Object2d", "ImagesList", "AllOrRegular", "ImagesTable" ][128X[104X
    [4X[25Xgap>[125X [27XPrintListOneItemPerLine( ImagesTable( all3 ) );[127X[104X
    [4X[28X[ [ 1, 1, 1, 1, 1, 1 ],[128X[104X
    [4X[28X  [ 1, 1, 1, 2, 2, 2 ],[128X[104X
    [4X[28X  [ 1, 1, 1, 3, 3, 3 ],[128X[104X
    [4X[28X  [ 1, 2, 3, 1, 2, 3 ],[128X[104X
    [4X[28X  [ 1, 2, 3, 2, 3, 1 ],[128X[104X
    [4X[28X  [ 1, 2, 3, 3, 1, 2 ],[128X[104X
    [4X[28X  [ 1, 3, 2, 1, 3, 2 ],[128X[104X
    [4X[28X  [ 1, 3, 2, 2, 1, 3 ],[128X[104X
    [4X[28X  [ 1, 3, 2, 3, 2, 1 ][128X[104X
    [4X[28X  ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X4.2-2 CompositeDerivation[101X
  
  [29X[2XCompositeDerivation[102X( [3Xchi1[103X, [3Xchi2[103X ) [32X operation
  [29X[2XUpImagePositions[102X( [3Xchi[103X ) [32X attribute
  [29X[2XUpGeneratorImages[102X( [3Xchi[103X ) [32X attribute
  [29X[2XCompositeSection[102X( [3Xxi1[103X, [3Xxi2[103X ) [32X operation
  
  [33X[0;0YThe  Whitehead  product  [22Xχ_1  ⋆  χ_2[122X  is implemented as [10XCompositeDerivation(
  <chi1>,  <chi2>  )[110X.  The  composite of two sections is just the composite of
  homomorphisms.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xreg3 := RegularDerivations( X3 );;[127X[104X
    [4X[25Xgap>[125X [27Ximder3 := ImagesList( reg3 ); [127X[104X
    [4X[28X[ [ (), () ], [ (), (1,2,3)(4,6,5) ], [ (), (1,3,2)(4,5,6) ], [128X[104X
    [4X[28X  [ (1,3,2)(4,5,6), () ], [ (1,3,2)(4,5,6), (1,2,3)(4,6,5) ], [128X[104X
    [4X[28X  [ (1,3,2)(4,5,6), (1,3,2)(4,5,6) ] ][128X[104X
    [4X[25Xgap>[125X [27Xchi4 := DerivationByImages( X3, imder3[4] );[127X[104X
    [4X[28XDerivationByImages( s3, c3, [ (4,5,6), (2,3)(5,6) ], [ (1,3,2)(4,5,6), () ] )[128X[104X
    [4X[25Xgap>[125X [27Xchi5 := DerivationByImages( X3, imder3[5] );[127X[104X
    [4X[28XDerivationByImages( s3, c3, [ (4,5,6), (2,3)(5,6) ], [128X[104X
    [4X[28X[ (1,3,2)(4,5,6), (1,2,3)(4,6,5) ] )[128X[104X
    [4X[25Xgap>[125X [27Xim4 := UpImagePositions( chi4 );[127X[104X
    [4X[28X[ 1, 3, 2, 1, 3, 2 ] [128X[104X
    [4X[25Xgap>[125X [27Xim5 := UpImagePositions( chi5 );[127X[104X
    [4X[28X[ 1, 3, 2, 2, 1, 3 ] [128X[104X
    [4X[25Xgap>[125X [27Xchi45 := chi4 * chi5;[127X[104X
    [4X[28XDerivationByImages( s3, c3, [ (4,5,6), (2,3)(5,6) ], [ (), (1,2,3)(4,6,5) ] )[128X[104X
    [4X[25Xgap>[125X [27Xim45 := UpImagePositions( chi45 );[127X[104X
    [4X[28X[ 1, 1, 1, 2, 2, 2 ]  [128X[104X
    [4X[25Xgap>[125X [27Xpos := Position( imder3, UpGeneratorImages( chi45 ) );[127X[104X
    [4X[28X2[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X4.2-3 WhiteheadGroupTable[101X
  
  [29X[2XWhiteheadGroupTable[102X( [3XX0[103X ) [32X attribute
  [29X[2XWhiteheadMonoidTable[102X( [3XX0[103X ) [32X attribute
  [29X[2XWhiteheadPermGroup[102X( [3XX0[103X ) [32X attribute
  [29X[2XWhiteheadTransMonoid[102X( [3XX0[103X ) [32X attribute
  
  [33X[0;0YMultiplication   tables  for  the  Whitehead  group  or  monoid  enable  the
  construction of permutation or transformation representations.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xwgt3 := WhiteheadGroupTable( X3 );; [127X[104X
    [4X[25Xgap>[125X [27XPrintListOneItemPerLine( wgt3 );[127X[104X
    [4X[28X[ [ 1, 2, 3, 4, 5, 6 ],[128X[104X
    [4X[28X  [ 2, 3, 1, 5, 6, 4 ],[128X[104X
    [4X[28X  [ 3, 1, 2, 6, 4, 5 ],[128X[104X
    [4X[28X  [ 4, 6, 5, 1, 3, 2 ],[128X[104X
    [4X[28X  [ 5, 4, 6, 2, 1, 3 ],[128X[104X
    [4X[28X  [ 6, 5, 4, 3, 2, 1 ][128X[104X
    [4X[28X  ][128X[104X
    [4X[25Xgap>[125X [27Xwpg3 := WhiteheadPermGroup( X3 );[127X[104X
    [4X[28XGroup([ (1,2,3)(4,5,6), (1,4)(2,6)(3,5) ])[128X[104X
    [4X[25Xgap>[125X [27Xwmt3 := WhiteheadMonoidTable( X3 );; [127X[104X
    [4X[25Xgap>[125X [27XPrintListOneItemPerLine( wmt3 );[127X[104X
    [4X[28X[ [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ],[128X[104X
    [4X[28X  [ 2, 3, 1, 5, 6, 4, 8, 9, 7 ],[128X[104X
    [4X[28X  [ 3, 1, 2, 6, 4, 5, 9, 7, 8 ],[128X[104X
    [4X[28X  [ 4, 4, 4, 4, 4, 4, 4, 4, 4 ],[128X[104X
    [4X[28X  [ 5, 5, 5, 5, 5, 5, 5, 5, 5 ],[128X[104X
    [4X[28X  [ 6, 6, 6, 6, 6, 6, 6, 6, 6 ],[128X[104X
    [4X[28X  [ 7, 9, 8, 4, 6, 5, 1, 3, 2 ],[128X[104X
    [4X[28X  [ 8, 7, 9, 5, 4, 6, 2, 1, 3 ],[128X[104X
    [4X[28X  [ 9, 8, 7, 6, 5, 4, 3, 2, 1 ][128X[104X
    [4X[28X  ][128X[104X
    [4X[25Xgap>[125X [27Xwtm3 := WhiteheadTransMonoid( X3 );[127X[104X
    [4X[28X<transformation monoid on 9 pts with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XGeneratorsOfMonoid( wtm3 ); [127X[104X
    [4X[28X[ Transformation( [ 2, 3, 1, 5, 6, 4, 8, 9, 7 ] ), [128X[104X
    [4X[28X  Transformation( [ 4, 4, 4, 4, 4, 4, 4, 4, 4 ] ), [128X[104X
    [4X[28X  Transformation( [ 7, 9, 8, 4, 6, 5, 1, 3, 2 ] ) ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
