<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>GAP (XMod) - Chapter 4: Derivations and Sections</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <meta name="generator" content="GAPDoc2HTML" /> <link rel="stylesheet" type="text/css" href="manual.css" /> </head> <body> <div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a> <a href="chap1.html">1</a> <a href="chap2.html">2</a> <a href="chap3.html">3</a> <a href="chap4.html">4</a> <a href="chap5.html">5</a> <a href="chap6.html">6</a> <a href="chap7.html">7</a> <a href="chap8.html">8</a> <a href="chap9.html">9</a> <a href="chapBib.html">Bib</a> <a href="chapInd.html">Ind</a> </div> <div class="chlinkprevnexttop"> <a href="chap0.html">Top of Book</a> <a href="chap3.html">Previous Chapter</a> <a href="chap5.html">Next Chapter</a> </div> <p><a id="X7C01AE7783898705" name="X7C01AE7783898705"></a></p> <div class="ChapSects"><a href="chap4.html#X7C01AE7783898705">4 <span class="Heading">Derivations and Sections</span></a> <div class="ContSect"><span class="nocss"> </span><a href="chap4.html#X78790B7D87D9FD73">4.1 <span class="Heading">Whitehead Multiplication</span></a> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X82FE679F79FDBF75">4.1-1 IsDerivation</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X83EC6F7780F5636E">4.1-2 DerivationByImages</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X79FE2BFD85FE88B3">4.1-3 SectionByImages</a></span> </div> <div class="ContSect"><span class="nocss"> </span><a href="chap4.html#X83886F9484B44B03">4.2 <span class="Heading">Whitehead Groups and Monoids</span></a> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X84CD856C84BDB019">4.2-1 RegularDerivations</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X804BC7FB7CD0B325">4.2-2 CompositeDerivation</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X7F4E9D127E188A63">4.2-3 WhiteheadGroupTable</a></span> </div> </div> <h3>4 <span class="Heading">Derivations and Sections</span></h3> <p><a id="X78790B7D87D9FD73" name="X78790B7D87D9FD73"></a></p> <h4>4.1 <span class="Heading">Whitehead Multiplication</span></h4> <p><a id="X82FE679F79FDBF75" name="X82FE679F79FDBF75"></a></p> <h5>4.1-1 IsDerivation</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsDerivation</code>( <var class="Arg">map</var> )</td><td class="tdright">( property )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsSection</code>( <var class="Arg">map</var> )</td><td class="tdright">( property )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsUp2dMapping</code>( <var class="Arg">map</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>The Whitehead monoid Der(mathcalX) of mathcalX was defined in <a href="chapBib.html#biBW2">[Whi48]</a> to be the monoid of all <em>derivations</em> from R to S, that is the set of all maps chi : R -> S, with <em>Whitehead multiplication</em> star (on the <em>right</em>) satisfying:</p> <p class="pcenter"> {\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). </p> <p>The zero map is the identity for this composition. Invertible elements in the monoid are called <em>regular</em>. The Whitehead group of mathcalX is the group of regular derivations in Der(mathcalX ). In the next chapter the <em>actor</em> of mathcalX is defined as a crossed module whose source and range are permutation representations of the Whitehead group and the automorphism group of mathcalX.</p> <p>The construction for cat1-groups equivalent to the derivation of a crossed module is the <em>section</em>. The monoid of sections of mathcalC = (e;t,h : G -> R) is the set of group homomorphisms xi : R -> G, with Whitehead multiplication star, (on the <em>right</em>) satisfying:</p> <p class="pcenter"> {\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). </p> <p>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 <em>regular</em> when h xi is an automorphism, and the group of regular sections is isomorphic to the Whitehead group.</p> <p>If epsilon denotes the inclusion of S = ker t in G then partial = h epsilon : S -> R and</p> <p class="pcenter"> \xi r ~=~ (e r)(e \chi r) ~=~ (r, \chi r) </p> <p>determines a section xi of mathcalC in terms of the corresponding derivation chi of mathcalX, and conversely.</p> <p><a id="X83EC6F7780F5636E" name="X83EC6F7780F5636E"></a></p> <h5>4.1-2 DerivationByImages</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> DerivationByImages</code>( <var class="Arg">X0, ims</var> )</td><td class="tdright">( operation )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> Object2d</code>( <var class="Arg">chi</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> GeneratorImages</code>( <var class="Arg">chi</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <p>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 {\bf Der\ 1}. The function <code class="code">IsDerivation</code> is automatically called to check that this procedure is well-defined.</p> <p>In the following example a cat1-group <code class="code">C3</code> and the associated crossed module <code class="code">X3</code> are constructed, where <code class="code">X3</code> is isomorphic to the inclusion of the normal cyclic group <code class="code">c3</code> in the symmetric group <code class="code">s3</code>.</p> <table class="example"> <tr><td><pre> 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 := Cat1( t, h, e ); [g18=>s3] gap> SetName( Kernel(t), "c3" );; gap> X3 := XModOfCat1( C3 );; gap> Display( X3 ); Crossed module [c3->s3] :- : Source group has generators: [ ( 1, 2, 3)( 4, 6, 5) ] : Range group has generators: [ (4,5,6), (2,3)(5,6) ] : Boundary homomorphism maps source generators to: [ (4,6,5) ] : Action homomorphism maps range generators to automorphisms: (4,5,6) --> { source gens --> [ (1,2,3)(4,6,5) ] } (2,3)(5,6) --> { source gens --> [ (1,3,2)(4,5,6) ] } These 2 automorphisms generate the group of automorphisms. : associated cat1-group is [g18=>s3] gap> imchi := [ (1,2,3)(4,6,5), (1,2,3)(4,6,5) ];; gap> chi := DerivationByImages( X3, imchi ); DerivationByImages( s3, c3, [ (4,5,6), (2,3)(5,6) ], [ (1,2,3)(4,6,5), (1,2,3)(4,6,5) ] ) </pre></td></tr></table> <p><a id="X79FE2BFD85FE88B3" name="X79FE2BFD85FE88B3"></a></p> <h5>4.1-3 SectionByImages</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> SectionByImages</code>( <var class="Arg">C, ims</var> )</td><td class="tdright">( operation )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> SectionByDerivation</code>( <var class="Arg">chi</var> )</td><td class="tdright">( operation )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> DerivationBySection</code>( <var class="Arg">xi</var> )</td><td class="tdright">( operation )</td></tr></table></div> <p>Sections <em>are</em> group homomorphisms, so do not need a special representation. Operations <code class="code">SectionByDerivation</code> and <code class="code">DerivationBySection</code> convert derivations to sections, and vice-versa, calling <code class="code">Cat1OfXMod</code> and <code class="code">XModOfCat1</code> automatically.</p> <p>Two strategies for calculating derivations and sections are implemented, see <a href="chapBib.html#biBAW1">[AW00]</a>. The default method for <code class="code">AllDerivations</code> 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 <strong class="pkg">GAP</strong>3 version of this package, the default method for <code class="code">AllSections( <C> )</code> was to compute all endomorphisms on the range group <code class="code">R</code> of <code class="code">C</code> 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 <code class="code">SectionByDerivation</code>.</p> <table class="example"> <tr><td><pre> gap> xi := SectionByDerivation( chi ); [ (4,5,6), (2,3)(5,6) ] -> [ (1,2,3), (1,2)(4,6) ] </pre></td></tr></table> <p><a id="X83886F9484B44B03" name="X83886F9484B44B03"></a></p> <h4>4.2 <span class="Heading">Whitehead Groups and Monoids</span></h4> <p><a id="X84CD856C84BDB019" name="X84CD856C84BDB019"></a></p> <h5>4.2-1 RegularDerivations</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> RegularDerivations</code>( <var class="Arg">X0</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> AllDerivations</code>( <var class="Arg">X0</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> RegularSections</code>( <var class="Arg">C0</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> AllSections</code>( <var class="Arg">C0</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> ImagesList</code>( <var class="Arg">obj</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> ImagesTable</code>( <var class="Arg">obj</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <p>There are two functions to determine the elements of the Whitehead group and the Whitehead monoid of mathcalX0, namely <code class="code">RegularDerivations</code> and <code class="code">AllDerivations</code>. (The functions <code class="code">RegularSections</code> and <code class="code">AllSections</code> perform corresponding tasks for a cat1-group.)</p> <p>Using our example <code class="code">X3</code> we find that there are just nine derivations, six of them regular, and the associated group is isomorphic to <code class="code">s3</code>.</p> <table class="example"> <tr><td><pre> gap> all3 := AllDerivations( X3 );; gap> imall3 := ImagesList( all3 );; Display( imall3 ); [ [ (), () ], [ (), ( 1, 2, 3)( 4, 6, 5) ], [ (), ( 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, 2, 3)( 4, 6, 5), ( 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, 3, 2)( 4, 5, 6), ( 1, 3, 2)( 4, 5, 6) ] ] gap> KnownAttributesOfObject( all3 ); [ "Object2d", "ImagesList", "AllOrRegular", "ImagesTable" ] gap> Display( ImagesTable( all3 ) ); [ [ 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 2, 2, 2 ], [ 1, 1, 1, 3, 3, 3 ], [ 1, 2, 3, 1, 2, 3 ], [ 1, 2, 3, 2, 3, 1 ], [ 1, 2, 3, 3, 1, 2 ], [ 1, 3, 2, 1, 3, 2 ], [ 1, 3, 2, 2, 1, 3 ], [ 1, 3, 2, 3, 2, 1 ] ] </pre></td></tr></table> <p><a id="X804BC7FB7CD0B325" name="X804BC7FB7CD0B325"></a></p> <h5>4.2-2 CompositeDerivation</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> CompositeDerivation</code>( <var class="Arg">chi1, chi2</var> )</td><td class="tdright">( operation )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> ImagePositions</code>( <var class="Arg">chi</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> CompositeSection</code>( <var class="Arg">xi1, xi2</var> )</td><td class="tdright">( operation )</td></tr></table></div> <p>The Whitehead product chi_1 star chi_2 is implemented as <code class="code">CompositeDerivation( <chi1>, <chi2> )</code>. The composite of two sections is just the composite of homomorphisms.</p> <table class="example"> <tr><td><pre> gap> reg3 := RegularDerivations( X3 );; gap> imder3 := ImagesList( reg3 );; gap> chi4 := DerivationByImages( X3, imder3[4] ); DerivationByImages( s3, c3, [ (4,5,6), (2,3)(5,6) ], [ ( 1, 3, 2)( 4, 5, 6), () ] ) gap> chi5 := DerivationByImages( X3, imder3[5] ); DerivationByImages( s3, c3, [ (4,5,6), (2,3)(5,6) ], [ ( 1, 3, 2)( 4, 5, 6), ( 1, 2, 3)( 4, 6, 5) ] ) gap> im4 := ImagePositions( chi4 ); [ 1, 3, 2, 1, 3, 2 ] gap> im5 := ImagePositions( chi5 ); [ 1, 3, 2, 2, 1, 3 ] gap> chi45 := chi4 * chi5; DerivationByImages( s3, c3, [ (4,5,6), (2,3)(5,6) ], [ (), ( 1, 2, 3)( 4, 6, 5) ] ) gap> im45 := ImagePositions( chi45 ); [ 1, 1, 1, 2, 2, 2 ] gap> pos := Position( imder3, GeneratorImages( chi45 ) ); 2 </pre></td></tr></table> <p><a id="X7F4E9D127E188A63" name="X7F4E9D127E188A63"></a></p> <h5>4.2-3 WhiteheadGroupTable</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> WhiteheadGroupTable</code>( <var class="Arg">X0</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> WhiteheadMonoidTable</code>( <var class="Arg">X0</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> WhiteheadPermGroup</code>( <var class="Arg">X0</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> WhiteheadTransMonoid</code>( <var class="Arg">X0</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <p>Multiplication tables for the Whitehead group or monoid enable the construction of permutation or transformation representations.</p> <table class="example"> <tr><td><pre> gap> wgt3 := WhiteheadGroupTable( X3 );; Display( wgt3 ); [ [ 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) ]) gap> wmt3 := WhiteheadMonoidTable( X3 );; Display( wmt3 ); [ [ 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, 4, 4, 4, 4, 4, 4, 4, 4 ], [ 5, 5, 5, 5, 5, 5, 5, 5, 5 ], [ 6, 6, 6, 6, 6, 6, 6, 6, 6 ], [ 7, 9, 8, 4, 6, 5, 1, 3, 2 ], [ 8, 7, 9, 5, 4, 6, 2, 1, 3 ], [ 9, 8, 7, 6, 5, 4, 3, 2, 1 ] ] gap> wtm3 := WhiteheadTransMonoid( X3 ); Monoid( [ Transformation( [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] ), Transformation( [ 2, 3, 1, 5, 6, 4, 8, 9, 7 ] ), Transformation( [ 3, 1, 2, 6, 4, 5, 9, 7, 8 ] ), Transformation( [ 4, 4, 4, 4, 4, 4, 4, 4, 4 ] ), Transformation( [ 5, 5, 5, 5, 5, 5, 5, 5, 5 ] ), Transformation( [ 6, 6, 6, 6, 6, 6, 6, 6, 6 ] ), Transformation( [ 7, 9, 8, 4, 6, 5, 1, 3, 2 ] ), Transformation( [ 8, 7, 9, 5, 4, 6, 2, 1, 3 ] ), Transformation( [ 9, 8, 7, 6, 5, 4, 3, 2, 1 ] ) ], ... ) </pre></td></tr></table> <div class="chlinkprevnextbot"> <a href="chap0.html">Top of Book</a> <a href="chap3.html">Previous Chapter</a> <a href="chap5.html">Next Chapter</a> </div> <div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a> <a href="chap1.html">1</a> <a href="chap2.html">2</a> <a href="chap3.html">3</a> <a href="chap4.html">4</a> <a href="chap5.html">5</a> <a href="chap6.html">6</a> <a href="chap7.html">7</a> <a href="chap8.html">8</a> <a href="chap9.html">9</a> <a href="chapBib.html">Bib</a> <a href="chapInd.html">Ind</a> </div> <hr /> <p class="foot">generated by <a href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p> </body> </html>