The Whitehead monoid rm{Der}({cal X}) of {cal X} was defined in
xmodW2 to be the monoid of all it derivations from R to S,
that is the set of all maps R to S, with composition circ ,
satisfying
textbfDer 1: & chi(qr) & =
& (chi q)^{r} ; (chi r)
textbfDer 2: & (chi_1 circ chi_2)(r) & =
& (chi_1 r)(chi_2 r)(chi_1 partial chi_2 r).
noindent The zero map is the identity for this composition. Invertible elements in the monoid are called em regular. The Whitehead group of {cal X} is the group of regular derivations in rm{Der}({cal X} ). In section refAbout actors the em actor of {cal X} is defined as a crossed module whose source and range are permutation representations of the Whitehead group and the automorphism group of {cal X}.
The construction for cat1-groups equivalent to the derivation of a
crossed module is the em section. The monoid of sections of {cal
C} is the set of group homomorphisms xi : R to G, with
composition circ , satisfying:
textbfSect 1: & t xi = mathrm{id}_R,
textbfSect 2: & (xi_1 circ xi_2)(r) =
(xi_{2}r)(e h xi_{2}r)^{-1}(xi_{1} h xi_{2}r).
The embedding e is the identity for this composition, and h(xi_1
circ xi_2) = (h xi_1)(h xi_2). A section is em regular when
h xi is an automorphism and, of course, the group of regular
sections is isomorphic to the Whitehead group.
Derivations are stored like group homomorphisms by specifying the
images of a generating set. Images of the remaining elements may then
be obtained using axiom textbfDer 1. The function IsDerivation
is automatically called to check that this procedure is well-defined.
gap> X1; Crossed module [c5->PermAut(c5)] gap> chi1 := XModDerivationByImages( X1, [ () ] ); XModDerivationByImages( PermAut(c5), c5, [ (1,2,4,3) ], [ () ] ) gap> IsDerivation( chi1 ); true
A derivation is stored as a record chi
with fields:
chi.source
, & the range group R of {cal X},
chi.range
, & the source group S of {cal X},
chi.generators
, & a fixed generating set for R,
chi.genimages
, & the chosen images of the generators,
chi.xmod
, & the crossed module {cal X},
chi.operations
, & special set of operations XModDerivationByImagesOps
,
chi.isDerivation
,& a boolean flag, normally true
.
Sections emphare group homomorphisms, and are stored as such, but
with a modified set of operations Cat1SectionByImagesOps
which
includes a special .Print
function to display the section in the
manner shown below. Functions SectionDerivation
and
DerivationSection
convert derivations to sections, and vice-versa,
calling Cat1XMod
and XModCat1
automatically.
The equation xi r = (er)(chi r) determines a section xi of mathcal{C}, given a derivation chi of mathcal{X}, and conversely.
gap> xi1 := SectionDerivation( chi1 ); Cat1SectionByImages( PermAut(c5), Perm(PermAut(c5)
|
X c5), [ (1,2,4,3) ], [ (2,3,5,4) ] ) gap> xi1.cat1; cat1-group [Perm(PermAut(c5)
|
X c5) ==> PermAut(c5)]
There are two functions to determine all the elements of the Whitehead
group and the Whitehead monoid of {cal X}, namely
RegularDerivations
and AllDerivations
. If the whole monoid is
needed at some stage, then the latter function should be used. A
field D = X.derivations
is created which stores all the required
information:
D.areDerivations
, & a boolean flag, normally true
,
D.isReg
, & true
when only the regular derivations are known,
D.isAll
, & true
when all the derivations have been found,
D.generators
, & a emphcopy of R.generators
,
D.genimageList
, & a list of .genimages
lists for the derivations,
D.regular
, & the number of regular derivations (if known),
D.xmod
, & the crossed module {cal X},
D.operations
, & a special set of operations XModDerivationsOps
.
Using our standard example X1
we find that there are just five
derivations, all of them regular, so the associated group is cyclic of
size 5.
gap> RegularDerivations( X1 ); RegularDerivations record for crossed module [c5->PermAut(c5)], : 5 regular derivations, others not found. gap> AllDerivations( X1 ); AllDerivations record for crossed module [c5->PermAut(c5)], : 5 derivations found but unsorted. gap> DerivationsSorted( X1 ); true gap> imder1 := X1.derivations.genimageList; [ [()], [(1,2,3,4,5)], [(1,3,5,2,4)], [(1,4,2,5,3)], [(1,5,4,3,2)] ]
The functions RegularSections
and AllSections
perform
corresponding tasks for a cat1-group. Two strategies for calculating
derivations and sections are implemented, see xmodAW1. The default
method for AllDerivations
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. The function
DerivationsSorted
sorts the .genImageList
field, placing the
regular ones at the top of the list and adding the .regular
field.
The default method for AllSections( C )
computes all endomorphisms
on the range group R
of C
as possibilities for the composite
hxi. A backtrack method then finds possible images for such a
section. When either the set of derivations or the set of sections
already exists, the other set is computed using SectionDerivation
or
DerivationSection
.
gap> CX1 := Cat1XMod( X1 ); cat1-group [Perm(PermAut(c5)
|
X c5) ==> PermAut(c5)] gap> CX1.source.name := "Hol(c5)";; Cat1Name( CX1 ); gap> RegularSections( CX1 ); RegularSections record for cat1-group [Hol(c5) ==> PermAut(c5)], : 5 regular sections, others not found. gap> CX1.sections.genimageList; [ [(2,3,5,4)], [(1,2,4,3)], [(1,3,2,5)], [(1,4,5,2)], [(1,5,3,4)] ]
The derivation images and the composition table may be listed as follows.
gap> chi2 := XModDerivationByImages( X1, imder1[2] ); XModDerivationByImages( PermAut(c5), c5, [(1,2,4,3)], [(1,2,3,4,5)] ) gap> DerivationImage( chi2, (1,4)(2,3) ); ( 1, 4, 2, 5, 3) gap> DerivationImages( chi2 ); [ 1, 2, 3, 4 ] gap> PrintList( DerivationTable( X1 ) ) [ 1, 1, 1, 1 ] [ 1, 2, 3, 4 ] [ 1, 3, 5, 2 ] [ 1, 4, 2, 5 ] [ 1, 5, 4, 3 ] gap> PrintList( WhiteheadGroupTable( X1 ) ); [ 1, 2, 3, 4, 5 ] [ 2, 3, 4, 5, 1 ] [ 3, 4, 5, 1, 2 ] [ 4, 5, 1, 2, 3 ] [ 5, 1, 2, 3, 4 ]
Each chi or xi determines endomorphisms of R, S, G, {cal X}
and {cal C}, namely:
rho & : & R to R,
& r mapsto r(partial chi r) = h xi r,
sigma & : & S to S,
& s mapsto s(chi partial s),
gamma & : & G to G,
& g mapsto (eh xi tg)(xi tg^{-1})g(ehg^{-1})(xi hg),
(sigma,rho) & : & {cal X} to {cal X},
(gamma,rho) & : & {cal C} to {cal C}.
When these endomorphisms are automorphisms, the derivation is regular. When the boundary of {cal X} is the zero map, both sigma and rho are identity homomorphisms, and every derivation is regular, which is the case in this example.
gap> sigma2 := SourceEndomorphismDerivation( chi2 ); GroupHomomorphismByImages( c5, c5, [ (1,2,3,4,5) ], [ (1,2,3,4,5) ] ) gap> rho2 := RangeEndomorphismDerivation( chi2 ); GroupHomomorphismByImages( PermAut(c5), PermAut(c5), [ (1,2,4,3) ], [ (1,2,4,3) ] ) gap> xi2 := SectionDerivation( chi2 );; gap> gamma2 := SourceEndomorphismSection( xi2 ); GroupHomomorphismByImages( Hol(c5), Hol(c5), [(2,3,5,4),(1,2,3,4,5)], [(2,3,5,4),(1,2,3,4,5)] ) gap> mor2 := XModMorphism( X1, X1, [sigma2,rho2] ); Morphism of crossed modules <[c5->PermAut(c5)] >-> [c5->PermAut(c5)]> gap> mu2 := Cat1Morphism( CX1, CX1, [gamma2,rho2] ); Morphism of cat1-groups <[Hol(c5) ==> PermAut(c5)]--> [Hol(c5) ==> PermAut(c5)]>
GAP 3.4.4