The Whitehead monoid 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 χ : R -> S, with Whitehead product ⋆ (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).
It easily follows that χ 1 = 1 and χ(r^-1) = ((χ r)^-1)^r^-1}, and that 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 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 cat^1-groups equivalent to the derivation of a crossed module is the section. The monoid of sections of calC = (e;t,h : G -> R) is the set of group homomorphisms ξ : R -> G, with Whitehead multiplication ⋆ (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(ξ_1 ⋆ ξ_2) = (h ξ_1)(h ξ_2). A section is regular when h ξ is an automorphism, and the group of regular sections is isomorphic to the Whitehead group.
If ϵ denotes the inclusion of S = ker t in G then ∂ = h ϵ : S -> R and
\xi r ~=~ (e r)(\epsilon \chi r), \quad\mbox{which equals}\quad (r, \chi r) ~\in~ R \ltimes S,
determines a section ξ of calC in terms of the corresponding derivation χ of calX, and conversely.
‣ DerivationByImages ( X0, ims ) | ( operation ) |
‣ IsDerivation ( map ) | ( property ) |
‣ IsUp2DimensionalMapping ( chi ) | ( property ) |
‣ UpGeneratorImages ( chi ) | ( attribute ) |
‣ UpImagePositions ( chi ) | ( attribute ) |
‣ Object2d ( chi ) | ( attribute ) |
‣ DerivationImage ( chi, r ) | ( operation ) |
A derivation χ 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 χ. The function IsDerivation
is automatically called to check that this procedure is well-defined. The attribute Object2d
(χ) returns the underlying crossed module.
Images of the remaining elements may be obtained using axiom Der 1. UpImagePositions(chi)
is the list of the images under χ of Elements(R)
and DerivationImage(chi,r)
returns χ r.
In the following example a cat^1-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 χ_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> Object2d( chi1 ); [c3->s3] 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 ∈ S is the derivation η_s : R -> S, r ↦ (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 ( xi ) | ( property ) |
‣ UpHomomorphism ( xi ) | ( attribute ) |
‣ SectionByDerivation ( chi ) | ( operation ) |
‣ DerivationBySection ( xi ) | ( operation ) |
Sections are group homomorphisms but, although they do not require a special representation, one is provided in the category IsUp2DimensionalMapping
having attributes Object2d
, UpHomomorphism
and UpGeneratorsImages
. 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 ξ. 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> Object2d( xi2 ); [g18 => s3] gap> UpHomomorphism( xi2 ); [ (4,5,6), (2,3)(5,6) ] -> [ (1,3,2)(4,6,5), (1,2)(4,6) ] gap> UpGeneratorImages( xi2 ); [ (1,3,2)(4,6,5), (1,2)(4,6) ] 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 ( upi, upj ) | ( operation ) |
‣ WhiteheadOrder ( up ) | ( operation ) |
The WhiteheadProduct
, defined in section 5.1, may be applied to two derivations to form χ_i ⋆ χ_j, or to two sections to form ξ_i ⋆ ξ_j. The WhiteheadOrder
of a regular derivation χ is the smallest power of χ, 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,3,2)(4,5,6), () ] ) gap> xi12 := WhiteheadProduct( xi1, xi2 ); SectionByHomomorphism( s3, g18, [ (4,5,6), (2,3)(5,6) ], [ (1,3,2)(4,6,5), (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 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 ) |
‣ ImagesList ( obj ) | ( attribute ) |
‣ DerivationClass ( mon ) | ( attribute ) |
‣ ImagesTable ( obj ) | ( attribute ) |
Using our example X3
we find that there are just nine derivations. Here AllDerivations
returns a collection of up mappings with attributes:
Object2d
- the crossed modules calX;
ImagesList
- a list, for each derivation, of the images of the generators of the range group;
DerivationClass
- the string "all"; other classes include "regular" and "principal";
ImagesTable
- this is a table whose [i,j]-th entry is the position in the list of elements of S of the image under the i-th derivation of the j-th element of R.
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 ]
‣ WhiteheadMonoidTable ( X0 ) | ( attribute ) |
‣ WhiteheadTransformationMonoid ( X0 ) | ( attribute ) |
The WhiteheadMonoidTable
of calX is the multiplication table whose [i,j]-th entry is the position k in the list of derivations of the Whitehead product χ_i*χ_j = χ_k.
Using the rows of the table as transformations, we may construct the WhiteheadTransformationMonoid
of calX.
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 ) |
‣ WhiteheadGroupTable ( X0 ) | ( attribute ) |
‣ WhiteheadPermGroup ( X0 ) | ( attribute ) |
‣ IsWhiteheadPermGroup ( G ) | ( property ) |
‣ WhiteheadRegularGroup ( X0 ) | ( attribute ) |
‣ WhiteheadGroupIsomorphism ( X0 ) | ( attribute ) |
RegularDerivations
are those derivations which are invertible in the monoid. The multiplication table for a Whitehead group - a subtable of the Whitehead monoid table - enables the construction of a permutation representation WhiteheadPermGroup
WcalX of calX. This group satisfies the property IsWhiteheadPermGroup
. and calX is its attribute Object2d
.
Of the nine derivations of X3
just six are regular. The associated group is isomorphic to the symmetric group s3
.
Taking the rows of the WhiteheadGroupTable
as permutations, we may construct the WhiteheadRegularGroup
of calX. Then, seeking a SmallerDegreePermutationRepresentation
, we obtain the WhiteheadGroupIsomorphism
whose image is the WhiteheadPermGroup
of calX.
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> DerivationClass( reg3 ); "regular" 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), (1,2) ]) gap> IsWhiteheadPermGroup( wpg3 ); true gap> Object2d( wpg3 ); [c3->s3] gap> WhiteheadRegularGroup( X3 ); Group([ (1,2,3)(4,5,6), (1,4)(2,6)(3,5) ]) gap> MappingGeneratorsImages( WhiteheadGroupIsomorphism( X3 ) ); [ [ (1,2,3)(4,5,6), (1,4)(2,6)(3,5) ], [ (1,2,3), (1,2) ] ]
‣ PrincipalDerivations ( X0 ) | ( attribute ) |
‣ PrincipalDerivationSubgroup ( X0 ) | ( attribute ) |
‣ WhiteheadHomomorphism ( X0 ) | ( attribute ) |
The principal derivations form a subgroup of the Whitehead group. The PrincipalDerivationSubgroup
is the corresponding subgroup of the WhiteheadPermGroup
.
The Whitehead homomorphism η : S -> WcalX, s ↦ η_s for calX maps the source group of calX to the Whitehead group of calX.
gap> PDX3 := PrincipalDerivations( X3 ); monoid of derivations with images list: [ (), () ] [ (), (1,3,2)(4,5,6) ] [ (), (1,2,3)(4,6,5) ] gap> PDSX3 := PrincipalDerivationSubgroup( X3 ); Group([ (1,2,3) ]) gap> Whom3 := WhiteheadHomomorphism( X3 ); [ (1,2,3)(4,6,5) ] -> [ (1,2,3) ]
Exercise:~ Use the two crossed module axioms to show that η_s_1 ⋆ η_s_2 = η_s_1s_2.
‣ SourceEndomorphism ( chi ) | ( operation ) |
A derivation χ of calX = (∂ : S -> R) determines an endomorphism σ_χ : S -> S,~ s ↦ s(χ ∂ s). We may verify that σ_χ is a homomorphism by:
\sigma_{\chi}(s_1s_2) ~=~ s_1s_2\chi((\partial s_1)(\partial s_2)) ~=~ s_1s_2(\chi\partial s_1)^{\partial s_2}(\chi\partial s_2) ~=~ s_1(\chi\partial s_1)s_2(\chi\partial s_2) ~=~ (\sigma_{\chi}s_1)(\sigma_{\chi}s_2).
gap> sigma2 := SourceEndomorphism( chi2 ); [ (1,2,3)(4,6,5) ] -> [ (1,3,2)(4,5,6) ]
‣ RangeEndomorphism ( chi ) | ( operation ) |
A derivation χ of calX = (∂ : S -> R) determines an endomorphism ρ_χ : R -> R,~ r ↦ r(∂ χ r).
gap> rho2 := RangeEndomorphism( chi2 ); [ (4,5,6), (2,3)(5,6) ] -> [ (4,6,5), (2,3)(4,6) ]
‣ Object2dEndomorphism ( chi ) | ( operation ) |
A derivation χ of calX = (∂ : S -> R) determines an endomorphism α_χ : calX -> calX whose source and range endomorphisms are given by the previous two operations.
gap> alpha2 := Object2dEndomorphism( chi2 );; gap> Display( alpha2 ); Morphism of crossed modules :- : Source = [c3->s3] with generating sets: [ (1,2,3)(4,6,5) ] [ (4,5,6), (2,3)(5,6) ] : Range = Source : Source Homomorphism maps source generators to: [ (1,3,2)(4,5,6) ] : Range Homomorphism maps range generators to: [ (4,6,5), (2,3)(4,6) ]
‣ AllSections ( C0 ) | ( attribute ) |
‣ RegularSections ( C0 ) | ( attribute ) |
These operations are currently obtained by running the equivalent operation for derivations and then converting the result to sections.
gap> AllSections( C3 ); monoid of sections with images list: [ (4,5,6), (2,3)(5,6) ] [ (4,5,6), (1,3)(4,5) ] [ (4,5,6), (1,2)(4,6) ] [ (1,3,2)(4,6,5), (2,3)(5,6) ] [ (1,3,2)(4,6,5), (1,3)(4,5) ] [ (1,3,2)(4,6,5), (1,2)(4,6) ] [ (1,2,3), (2,3)(5,6) ] [ (1,2,3), (1,3)(4,5) ] [ (1,2,3), (1,2)(4,6) ] gap> RegularSections( C3 ); monoid of sections with images list: [ (4,5,6), (2,3)(5,6) ] [ (4,5,6), (1,3)(4,5) ] [ (4,5,6), (1,2)(4,6) ] [ (1,3,2)(4,6,5), (2,3)(5,6) ] [ (1,3,2)(4,6,5), (1,3)(4,5) ] [ (1,3,2)(4,6,5), (1,2)(4,6) ]
generated by GAPDoc2HTML