  
  [1X5 [33X[0;0YDerivations and Sections[133X[101X
  
  
  [1X5.1 [33X[0;0YWhitehead Multiplication[133X[101X
  
  [1X5.1-1 IsDerivation[101X
  
  [29X[2XIsDerivation[102X( [3Xmap[103X ) [32X property
  [29X[2XIsSection[102X( [3Xmap[103X ) [32X property
  [29X[2XIsUp2DimensionalMapping[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
  
  
  [24X[33X[0;6Y{\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
  
  [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
  
  
  [24X[33X[0;6Y{\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).[133X
  
  [124X
  
  [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
  
  
  [24X[33X[0;6Y\xi r ~=~ (e r)(e \chi r), \quad\mbox{which equals}\quad (r, \chi r) ~\in~ R
  \ltimes S,[133X
  
  [124X
  
  [33X[0;0Ydetermines  a section [22Xξ[122X of [22XmathcalC[122X in terms of the corresponding derivation
  [22Xχ[122X of [22XmathcalX[122X, and conversely.[133X
  
  [1X5.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  [22XDer  1[122X.  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
  
  [1X5.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 early versions 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
  
  
  [1X5.2 [33X[0;0YWhitehead Groups and Monoids[133X[101X
  
  [1X5.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  a  crossed module, 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. (In fact,
  six  of  them  regular,  as we shall see in the next section. The associated
  group is isomorphic to the symmetric group [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,3,2)(4,5,6) ],[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,3,2)(4,5,6), (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,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,2,3)(4,6,5), (1,2,3)(4,6,5) ][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, 3, 3, 3 ],[128X[104X
    [4X[28X  [ 1, 1, 1, 2, 2, 2 ],[128X[104X
    [4X[28X  [ 1, 3, 2, 1, 3, 2 ],[128X[104X
    [4X[28X  [ 1, 3, 2, 3, 2, 1 ],[128X[104X
    [4X[28X  [ 1, 3, 2, 2, 1, 3 ],[128X[104X
    [4X[28X  [ 1, 2, 3, 1, 2, 3 ],[128X[104X
    [4X[28X  [ 1, 2, 3, 3, 1, 2 ],[128X[104X
    [4X[28X  [ 1, 2, 3, 2, 3, 1 ][128X[104X
    [4X[28X  ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X5.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 );;  Length( imder3 );[127X[104X
    [4X[28X6[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,3,2)(4,5,6) ] )[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, 3, 2, 1 ][128X[104X
    [4X[25Xgap>[125X [27Xchi45 := chi4 * chi5;[127X[104X
    [4X[28XDerivationByImages( s3, c3, [ (4,5,6), (2,3)(5,6) ], [ (), (1,3,2)(4,5,6) ] )[128X[104X
    [4X[25Xgap>[125X [27Xim45 := UpImagePositions( chi45 );[127X[104X
    [4X[28X[ 1, 1, 1, 3, 3, 3 ][128X[104X
    [4X[25Xgap>[125X [27XPosition( imder3, UpGeneratorImages( chi45 ) );[127X[104X
    [4X[28X2[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X5.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, 6, 5, 1, 3, 2, 7, 9, 8 ],[128X[104X
    [4X[28X  [ 5, 4, 6, 2, 1, 3, 8, 7, 9 ],[128X[104X
    [4X[28X  [ 6, 5, 4, 3, 2, 1, 9, 8, 7 ],[128X[104X
    [4X[28X  [ 7, 7, 7, 7, 7, 7, 7, 7, 7 ],[128X[104X
    [4X[28X  [ 8, 8, 8, 8, 8, 8, 8, 8, 8 ],[128X[104X
    [4X[28X  [ 9, 9, 9, 9, 9, 9, 9, 9, 9 ][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, 6, 5, 1, 3, 2, 7, 9, 8 ] ), [128X[104X
    [4X[28X  Transformation( [ 7, 7, 7, 7, 7, 7, 7, 7, 7 ] ) ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
