Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 91213ddcfbe7f54821d42c2d9e091326 > files > 3099

gap-system-packages-4.4.12-5mdv2010.0.i586.rpm

<?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 3: 2d-mappings</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">&nbsp;<a href="chap0.html">Top of Book</a>&nbsp;  &nbsp;<a href="chap2.html">Previous Chapter</a>&nbsp;  &nbsp;<a href="chap4.html">Next Chapter</a>&nbsp;  </div>

<p><a id="X815144D67C1D1AE3" name="X815144D67C1D1AE3"></a></p>
<div class="ChapSects"><a href="chap3.html#X815144D67C1D1AE3">3 <span class="Heading">2d-mappings</span></a>
<div class="ContSect"><span class="nocss">&nbsp;</span><a href="chap3.html#X81A31F338392CAD8">3.1 <span class="Heading">Morphisms of 2d-objects</span></a>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap3.html#X7DE8173F80E07AB1">3.1-1 Source</a></span>
</div>
<div class="ContSect"><span class="nocss">&nbsp;</span><a href="chap3.html#X78CADE4D7EB1EA44">3.2 <span class="Heading">Morphisms of pre-crossed modules</span></a>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap3.html#X82B912B18127A42A">3.2-1 IsXModMorphism</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap3.html#X7F065FD7822C0A12">3.2-2 IsInjective</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap3.html#X7CEABD6487CF2A38">3.2-3 XModMorphism</a></span>
</div>
<div class="ContSect"><span class="nocss">&nbsp;</span><a href="chap3.html#X84DDF8247FC4982B">3.3 <span class="Heading">Morphisms of pre-cat1-groups</span></a>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap3.html#X85EB07357B682966">3.3-1 Cat1Morphism</a></span>
</div>
<div class="ContSect"><span class="nocss">&nbsp;</span><a href="chap3.html#X7B09A28579707CAF">3.4 <span class="Heading">Operations on morphisms</span></a>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap3.html#X84F59A2687C62763">3.4-1 Order</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap3.html#X7DCD99628504B810">3.4-2 Kernel</a></span>
</div>
</div>

<h3>3 <span class="Heading">2d-mappings</span></h3>

<p><a id="X81A31F338392CAD8" name="X81A31F338392CAD8"></a></p>

<h4>3.1 <span class="Heading">Morphisms of 2d-objects</span></h4>

<p>This chapter describes morphisms of (pre-)crossed modules and (pre-)cat1-groups.</p>

<p><a id="X7DE8173F80E07AB1" name="X7DE8173F80E07AB1"></a></p>

<h5>3.1-1 Source</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; Source</code>( <var class="Arg">map</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">&gt; Range</code>( <var class="Arg">map</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">&gt; SourceHom</code>( <var class="Arg">map</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">&gt; RangeHom</code>( <var class="Arg">map</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Morphisms of <code class="code">2dObjects</code> are implemented as <code class="code">2dMappings</code>. These have a pair of 2d-objects as source and range, together with two group homomorphisms mapping between corresponding source and range groups. These functions return <code class="code">fail</code> when invalid data is supplied.</p>

<p><a id="X78CADE4D7EB1EA44" name="X78CADE4D7EB1EA44"></a></p>

<h4>3.2 <span class="Heading">Morphisms of pre-crossed modules</span></h4>

<p><a id="X82B912B18127A42A" name="X82B912B18127A42A"></a></p>

<h5>3.2-1 IsXModMorphism</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; IsXModMorphism</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">&gt; IsCat1Morphism</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">&gt; IsPreXModMorphism</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">&gt; IsPreCat1Morphism</code>( <var class="Arg">map</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>A morphism between two pre-crossed modules $\mathcal{X}_{1} = (\partial_1 : S_1 \to R_1)$ and $\mathcal{X}_{2} = (\partial_2 : S_2 \to R_2)$ is a pair $(\sigma, \rho)$, where $\sigma : S_1 \to S_2$ and $\rho : R_1 \to R_2$ commute with the two boundary maps and are morphisms for the two actions:</p>

<p class="pcenter">
\partial_2 \sigma = \rho \partial_1, \qquad
\sigma(s^r) = (\sigma s)^{\rho r}.
</p>

<p>Thus $\sigma$ is the <code class="code">SourceHom</code> and $\rho$ is the <code class="code">RangeHom</code>. When $\mathcal{X}_{1} = \mathcal{X}_{2}$ and $ \sigma, \rho $ are automorphisms then $(\sigma, \rho)$ is an automorphism of $\mathcal{X}_1$. The group of automorphisms is denoted by ${\rm Aut}(\mathcal{X}_1 ).$</p>

<p><a id="X7F065FD7822C0A12" name="X7F065FD7822C0A12"></a></p>

<h5>3.2-2 IsInjective</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; IsInjective</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">&gt; IsSurjective</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">&gt; IsSingleValued</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">&gt; IsTotal</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">&gt; IsBijective</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">&gt; IsEndomorphism2dObject</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">&gt; IsAutomorphism2dObject</code>( <var class="Arg">map</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>The usual properties of mappings are easily checked. It is usually sufficient to verify that both the <code class="code">SourceHom</code> and the <code class="code">RangeHom</code> have the required property.</p>

<p><a id="X7CEABD6487CF2A38" name="X7CEABD6487CF2A38"></a></p>

<h5>3.2-3 XModMorphism</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; XModMorphism</code>( <var class="Arg">args</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; XModMorphismByHoms</code>( <var class="Arg">X1, X2, sigma, rho</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">&gt; PreXModMorphism</code>( <var class="Arg">args</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; PreXModMorphismByHoms</code>( <var class="Arg">P1, P2, sigma, rho</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">&gt; InclusionMorphism2dObjects</code>( <var class="Arg">X1, S1</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">&gt; InnerAutomorphismXMod</code>( <var class="Arg">X1, r</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">&gt; IdentityMapping</code>( <var class="Arg">X1</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">&gt; IsomorphismPermObject</code>( <var class="Arg">obj</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>These are the constructors for morphisms of pre-crossed and crossed modules.</p>

<p>In the following example we construct a simple automorphism of the crossed module <code class="code">X1</code> constructed in the previous chapter.</p>


<table class="example">
<tr><td><pre>

gap&gt; sigma1 := GroupHomomorphismByImages( c5, c5, [ (5,6,7,8,9) ]
        [ (5,9,8,7,6) ] );;
gap&gt; rho1 := IdentityMapping( Range( X1 ) );
IdentityMapping( PAut(c5) )
gap&gt; mor1 := XModMorphism( X1, X1, sigma1, rho1 );
[[c5-&gt;PAut(c5))] =&gt; [c5-&gt;PAut(c5))]] 
gap&gt; Display( mor1 );
Morphism of crossed modules :-
: Source = [c5-&gt;PAut(c5))] with generating sets:
  [ (5,6,7,8,9) ]
  [ (1,2,4,3) ]
: Range = Source
: Source Homomorphism maps source generators to:
  [ (5,9,8,7,6) ]
: Range Homomorphism maps range generators to:
  [ (1,2,4,3) ]
gap&gt; IsAutomorphism2dObject( mor1 );
true 
gap&gt; Print( RepresentationsOfObject(mor1), "\n" );
[ "IsComponentObjectRep", "IsAttributeStoringRep", "Is2dMappingRep" ]
gap&gt; Print( KnownPropertiesOfObject(mor1), "\n" );
[ "IsTotal", "IsSingleValued", "IsInjective", "IsSurjective", "Is2dMapping",
  "IsPreXModMorphism", "IsXModMorphism", "IsEndomorphism2dObject",
  "IsAutomorphism2dObject" ]
gap&gt; Print( KnownAttributesOfObject(mor1), "\n" );
[ "Name", "Range", "Source", "SourceHom", "RangeHom" ]

</pre></td></tr></table>

<p><a id="X84DDF8247FC4982B" name="X84DDF8247FC4982B"></a></p>

<h4>3.3 <span class="Heading">Morphisms of pre-cat1-groups</span></h4>

<p>A morphism of pre-cat1-groups from mathcalC_1 = (e_1;t_1,h_1 : G_1 -&gt; R_1) to mathcalC_2 = (e_2;t_2,h_2 : G_2 -&gt; R_2) is a pair (gamma, rho) where gamma : G_1 -&gt; G_2 and rho : R_1 -&gt; R_2 are homomorphisms satisfying</p>

<p class="pcenter">
h_2 \gamma = \rho h_1, \qquad 
t_2 \gamma = \rho t_1, \qquad 
e_2 \rho = \gamma e_1. 
</p>

<p><a id="X85EB07357B682966" name="X85EB07357B682966"></a></p>

<h5>3.3-1 Cat1Morphism</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; Cat1Morphism</code>( <var class="Arg">args</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; Cat1MorphismByHoms</code>( <var class="Arg">C1, C2, gamma, rho</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">&gt; PreCat1Morphism</code>( <var class="Arg">args</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; PreCat1MorphismByHoms</code>( <var class="Arg">P1, P2, gamma, rho</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">&gt; InclusionMorphism2dObjects</code>( <var class="Arg">C1, S1</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">&gt; InnerAutomorphismCat1</code>( <var class="Arg">C1, r</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">&gt; IdentityMapping</code>( <var class="Arg">C1</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">&gt; IsmorphismPermObject</code>( <var class="Arg">obj</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; SmallerDegreePerm2dObject</code>( <var class="Arg">obj</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>The global function <code class="code">IsomorphismPermObject</code> calls <code class="code">IsomorphismPermPreCat1</code>, which constructs a morphism whose <code class="code">SourceHom</code> and <code class="code">RangeHom</code> are calculated using <code class="code">IsomorphismPermGroup</code> on the source and range. Similarly <code class="code">SmallerDegreePermutationRepresentation</code> is used on the two groups to obtain <code class="code">SmallerDegreePerm2dObject</code>. Names are assigned automatically.</p>


<table class="example">
<tr><td><pre>

gap&gt; iso2 := IsomorphismPermObject( C2 );
[[s3c4=&gt;s3] =&gt; [Ps3c4=&gt;Ps3]]
gap&gt; Display( iso2 );
Morphism of cat1-groups :-
: Source = [s3c4=&gt;s3] with generating sets:
  [ f1, f2, f3, f4 ]
  [ f1, f2 ]
:  Range = [Ps3c4=&gt;Ps3] with generating sets:
  [ ( 5, 9)( 6,10)( 7,11)( 8,12), ( 1, 5, 9)( 2, 6,10)( 3, 7,11)( 4, 8,12),
  ( 1, 3, 2, 4)( 5, 7, 6, 8)( 9,11,10,12), ( 1, 2)( 3, 4)( 5, 6)( 7, 8)( 9,10)
    (11,12) ]
  [ (2,3), (1,2,3) ]
: Source Homomorphism maps source generators to:
  [ ( 5, 9)( 6,10)( 7,11)( 8,12), ( 1, 5, 9)( 2, 6,10)( 3, 7,11)( 4, 8,12),
  ( 1, 3, 2, 4)( 5, 7, 6, 8)( 9,11,10,12), ( 1, 2)( 3, 4)( 5, 6)( 7, 8)( 9,10)
    (11,12) ]
: Range Homomorphism maps range generators to:
  [ (2,3), (1,2,3) ]

</pre></td></tr></table>

<p><a id="X7B09A28579707CAF" name="X7B09A28579707CAF"></a></p>

<h4>3.4 <span class="Heading">Operations on morphisms</span></h4>

<p><a id="X84F59A2687C62763" name="X84F59A2687C62763"></a></p>

<h5>3.4-1 Order</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; Order</code>( <var class="Arg">auto</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">&gt; CompositionMorphism</code>( <var class="Arg">map2, map1</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Composition of morphisms, written <code class="code">(&lt;map1&gt; * &lt;map2&gt;)</code> for maps acting of the right, calls the <code class="code">CompositionMorphism</code> function for maps acting on the left, applied to the appropriate type of 2d-mapping.</p>


<table class="example">
<tr><td><pre>

gap&gt; Order( mor1 );
2
gap&gt; GeneratorsOfGroup( d16 );
[ (11,12,13,14,15,16,17,18), (12,18)(13,17)(14,16) ]
gap&gt; d8 := Subgroup( d16, [ c^2, d ] );;
gap&gt; c4 := Subgroup( d8, [ c^2 ] );;
gap&gt; SetName( d8, "d8" );  SetName( c4, "c4" );
gap&gt; X16 := XModByNormalSubgroup( d16, d8 );
[d8-&gt;d16]
gap&gt; X8 := XModByNormalSubgroup( d8, c4 );
[c4-&gt;d8]
gap&gt; IsSubXMod( X16, X8 );
true
gap&gt; incd8 := InclusionMorphism2dObjects( X16, X8 );
[[c4-&gt;d8] =&gt; [d8-&gt;d16]]
gap&gt; rho := GroupHomomorphismByImages( d16, d16, [c,d], [c,d^(c^2)] );;
gap&gt; sigma := GroupHomomorphismByImages( d8, d8, [c^2,d], [c^2,d^(c^2)] );;
gap&gt; mor := XModMorphismByHoms( X16, X16, sigma, rho );
[[d8-&gt;d16] =&gt; [d8-&gt;d16]]
gap&gt; comp := incd8 * mor;
[[c4-&gt;d8] =&gt; [d8-&gt;d16]]
gap&gt; comp = CompositionMorphism( mor, incd8 );
true

</pre></td></tr></table>

<p><a id="X7DCD99628504B810" name="X7DCD99628504B810"></a></p>

<h5>3.4-2 Kernel</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; Kernel</code>( <var class="Arg">map</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">&gt; Kernel2dMapping</code>( <var class="Arg">map</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>The kernel of a morphism of crossed modules is a normal subcrossed module whose groups are the kernels of the source and target homomorphisms. The inclusion of the kernel is a standard example of a crossed square, but these have not yet been implemented.</p>


<table class="example">
<tr><td><pre>

gap&gt; c2 := Group( (19,20) );;
gap&gt; i2 := Subgroup( c2, [()] );;
gap&gt; X9 := XModByNormalSubgroup( c2, i2 );;
gap&gt; sigma9 := GroupHomomorphismByImages( c4, i2, [c^2], [()] );;
gap&gt; rho9 := GroupHomomorphismByImages( d8, c2, [c^2,d], [(),(19,20)] );;
gap&gt; mor9 := XModMorphism( X8, X9, sigma9, rho9 );
[[c4-&gt;d8] =&gt; [..]]
gap&gt; K9 := Kernel( mor9 );
[Group( [ (11,13,15,17)(12,14,16,18) ] )-&gt;Group( [ (11,13,15,17)(12,14,16,18)
 ] )]
</pre></td></tr></table>


<div class="chlinkprevnextbot">&nbsp;<a href="chap0.html">Top of Book</a>&nbsp;  &nbsp;<a href="chap2.html">Previous Chapter</a>&nbsp;  &nbsp;<a href="chap4.html">Next Chapter</a>&nbsp;  </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>