| products/Sources/formale Sprachen/GAP/pkg/xmod/doc/chap3.html |
 |
<?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" />
< script src= "manual.js" type= "text/javascript"></ script>
< script type= "text/javascript">overwriteStyle();</ script>
</ head>
< body class= "chap3" onload= "jscontent()">
< 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="chap10.html">10</a> <a href="chap11.html">11</a> <a href="chap12.html">12</a> <a href="chap13.html">13</a> <a href="chap14.html">14</a> <a href="chap15.html">15</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="chap0.html#contents">[Contents]</a> <a href="chap2.html">[Previous Chapter]</a> <a href="chap4.html">[Next Chapter]</a> </div>
<p id="mathjaxlink" class="pcenter"><a href="chap3_mj.html">[MathJax on]</a></p>
<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="tocline"><span class="nocss"> </span><a href="chap3.html#X7BBEA95E7AE1F317">3.1 <span class="Heading">Morphisms of 2-dimensional groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X7FFD094F7FFB1F17">3.1-1 Source</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X78CADE4D7EB1EA44">3.2 <span class="Heading">Morphisms of pre-crossed modules</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X82B912B18127A42A">3.2-1 IsXModMorphism</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X7E078F497F4EFA9F">3.2-2 IsInjective</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X7CEABD6487CF2A38">3.2-3 XModMorphism</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X854FC0C781AD62EC">3.2-4 IsomorphismPerm2DimensionalGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X87BCAAF787A7FF69">3.2-5 MorphismOfPullback</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X7B9D3C1F7A395FF2">3.3 <span class="Heading">Morphisms of pre-cat<span class="SimpleMath">^1</span>-groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X7C47D0EC782D4C40">3.3-1 IsCat1GroupMorphism</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X7D7459E67B568B44">3.3-2 Cat1GroupMorphismOfXModMorphism</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X7C6AF7C285D546B2">3.3-3 IsomorphismPermObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X837B0299846C2391">3.3-4 SmallerDegreePermutationRepresentation2DimensionalGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X7B09A28579707CAF">3.4 <span class="Heading">Operations on morphisms</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X811F886081AAB95F">3.4-1 CompositionMorphism</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X83C3A2478159DE76">3.4-2 Kernel</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X79C47E3D7855A117">3.5 <span class="Heading">Quasi-isomorphisms</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X86F08B1981618400">3.5-1 QuotientQuasiIsomorphism</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X7C4C1C587B8932A7">3.5-2 SubQuasiIsomorphism</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X83365AF2812E5C04">3.5-3 QuasiIsomorphism</a></span>
</div></div>
</div>
<h3>3 <span class="Heading">2d-mappings</span></h3>
<p><a id="X7BBEA95E7AE1F317" name="X7BBEA95E7AE1F317"></a></p>
<h4>3.1 <span class="Heading">Morphisms of 2-dimensional groups</span></h4>
<p>This chapter describes morphisms of (pre-)crossed modules and (pre-)cat<span class="SimpleMath">^1</span>-groups.</p>
<p><a id="X7FFD094F7FFB1F17" name="X7FFD094F7FFB1F17"></a></p>
<h5>3.1-1 Source</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; 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">an style='color: green'>8227; 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">an style='color: green'>8227; 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">an style='color: green'>8227; RangeHom</code>( <var class="Arg">map</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Morphisms of <em>2-dimensional groups</em> are implemented as <em>2-dimensional mappings</em>. These have a pair of 2-dimensional groups 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">an style='color: green'>8227; 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">an style='color: green'>8227; IsPreXModMorphism</code>( <var class="Arg">map</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>A morphism between two pre-crossed modules <span class="SimpleMath">calX_1 = (∂_1 : S_1 -> R_1)</span> and <span class="SimpleMath">calX_2 = (∂_2 : S_2 -> R_2)</span> is a pair <span class="SimpleMath">(σ, ρ)</span>, where <span class="SimpleMath">σ : S_1 -> S_2</span> and <span class="SimpleMath">ρ : R_1 -> R_2</span> commute with the two boundary maps and are morphisms for the two actions:</p>
<p class="pcenter">
\partial_2 \circ \sigma ~=~ \rho \circ \partial_1, \qquad
\sigma(s^r) ~=~ (\sigma s)^{\rho r}.
</p>
<p>Here <span class="SimpleMath">σ</span> is the <code class="func">SourceHom</code> (<a href="chap3.html#X7FFD094F7FFB1F17"><span class="RefLink">3.1-1</span></a>) and <span class="SimpleMath">ρ</span> is the <code class="func">RangeHom</code> (<a href="chap3.html#X7FFD094F7FFB1F17"><span class="RefLink">3.1-1</span></a>) of the morphism. When <span class="SimpleMath">calX_1 = calX_2</span> and <span class="SimpleMath">σ, ρ</span> are automorphisms then <span class="SimpleMath">(σ, ρ)</span> is an automorphism of <span class="SimpleMath">calX_1</span>. The group of automorphisms is denoted by <span class="SimpleMath">Aut(calX_1 )</span>.</p>
<p><a id="X7E078F497F4EFA9F" name="X7E078F497F4EFA9F"></a></p>
<h5>3.2-2 IsInjective</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; IsInjective</code>( <var class="Arg">map</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; IsSurjective</code>( <var class="Arg">map</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; IsSingleValued</code>( <var class="Arg">map</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; IsTotal</code>( <var class="Arg">map</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; IsBijective</code>( <var class="Arg">map</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; IsEndo2DimensionalMapping</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="func">SourceHom</code> (<a href="chap3.html#X7FFD094F7FFB1F17"><span class="RefLink">3.1-1</span></a>) and the <code class="func">RangeHom</code> (<a href="chap3.html#X7FFD094F7FFB1F17"><span class="RefLink">3.1-1</span></a>) 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">an style='color: green'>8227; 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">an style='color: green'>8227; XModMorphismByGroupHomomorphisms</code>( <var class="Arg">X1</var>, <var class="Arg">X2</var>, <var class="Arg">sigma</var>, <var class="Arg">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">an style='color: green'>8227; 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">an style='color: green'>8227; PreXModMorphismByGroupHomomorphisms</code>( <var class="Arg">P1</var>, <var class="Arg">P2</var>, <var class="Arg">sigma</var>, <var class="Arg">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">an style='color: green'>8227; InclusionMorphism2DimensionalDomains</code>( <var class="Arg">X1</var>, <var class="Arg">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">an style='color: green'>8227; InnerAutomorphismXMod</code>( <var class="Arg">X1</var>, <var class="Arg">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">an style='color: green'>8227; IdentityMapping</code>( <var class="Arg">X1</var> )</td><td class="tdright">( attribute )</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">X5</code> constructed in the previous chapter.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">sigma5 := GroupHomomorphismByImages( c5, c5, [ (5,6,7,8,9) ]</span>
[ (5,9,8,7,6) ] );;
<span class="GAPprompt">gap></span> <span class="GAPinput">rho5 := IdentityMapping( Range( X1 ) );</span>
IdentityMapping( PAut(c5) )
<span class="GAPprompt">gap></span> <span class="GAPinput">mor5 := XModMorphism( X5, X5, sigma5, rho5 );</span>
[[c5->Aut(c5))] => [c5->Aut(c5))]]
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( mor5 );</span>
Morphism of crossed modules :-
: Source = [c5->Aut(c5)] with generating sets:
[ (5,6,7,8,9) ]
[ GroupHomomorphismByImages( c5, c5, [ (5,6,7,8,9) ], [ (5,7,9,6,8) ] ) ]
: Range = Source
: Source Homomorphism maps source generators to:
[ (5,9,8,7,6) ]
: Range Homomorphism maps range generators to:
[ GroupHomomorphismByImages( c5, c5, [ (5,6,7,8,9) ], [ (5,7,9,6,8) ] ) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">IsAutomorphism2DimensionalDomain( mor5 );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">Order( mor5 );</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">RepresentationsOfObject( mor5 );</span>
[ "IsComponentObjectRep", "IsAttributeStoringRep", "Is2DimensionalMappingRep" ]
<span class="GAPprompt">gap></span> <span class="GAPinput">KnownPropertiesOfObject( mor5 );</span>
[ "CanEasilyCompareElements", "CanEasilySortElements", "IsTotal",
"IsSingleValued", "IsInjective", "IsSurjective", "RespectsMultiplication",
"IsPreXModMorphism", "IsXModMorphism", "IsEndomorphism2DimensionalDomain",
"IsAutomorphism2DimensionalDomain" ]
<span class="GAPprompt">gap></span> <span class="GAPinput">KnownAttributesOfObject( mor5 );</span>
[ "Name", "Order", "Range", "Source", "SourceHom", "RangeHom" ]
</pre></div>
<p><a id="X854FC0C781AD62EC" name="X854FC0C781AD62EC"></a></p>
<h5>3.2-4 IsomorphismPerm2DimensionalGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; IsomorphismPerm2DimensionalGroup</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">an style='color: green'>8227; IsomorphismPc2DimensionalGroup</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">an style='color: green'>8227; IsomorphismByIsomorphisms</code>( <var class="Arg">D</var>, <var class="Arg">list</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>When <span class="SimpleMath">calD</span> is a <span class="SimpleMath">2</span>-dimensional domain with source <span class="SimpleMath">S</span> and range <span class="SimpleMath">R</span> and <span class="SimpleMath">σ : S -> S',~ ρ : R -> R'</span> are isomorphisms, then <code class="code">IsomorphismByIsomorphisms(D,[sigma,rho])</code> returns an isomorphism <span class="SimpleMath">(σ,ρ) : calD -> calD'</span> where <span class="SimpleMath">calD'</span> has source <span class="SimpleMath">S'</span> and range <span class="SimpleMath">R'</span>. Be sure to test <code class="code">IsBijective</code> for the two functions <span class="SimpleMath">σ,ρ</span> before applying this operation.</p>
<p>Using <code class="func">IsomorphismByIsomorphisms</code> with a pair of isomorphisms obtained using <code class="code">IsomorphismPermGroup</code> or <code class="code">IsomorphismPcGroup</code>, we may construct a crossed module or a cat<span class="SimpleMath">^1</span>-group of permutation groups or pc-groups.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">q8 := SmallGroup(8,4);; ## quaternion group </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">XAq8 := XModByAutomorphismGroup( q8 );</span>
[Group( [ f1, f2, f3 ] )->Group( [ Pcgs([ f1, f2, f3 ]) -> [ f1*f2, f2, f3 ],
Pcgs([ f1, f2, f3 ]) -> [ f2, f1*f2, f3 ],
Pcgs([ f1, f2, f3 ]) -> [ f1*f3, f2, f3 ],
Pcgs([ f1, f2, f3 ]) -> [ f1, f2*f3, f3 ] ] )]
<span class="GAPprompt">gap></span> <span class="GAPinput">iso := IsomorphismPerm2DimensionalGroup( XAq8 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">YAq8 := Image( iso );</span>
[Group( [ (1,2,4,6)(3,8,7,5), (1,3,4,7)(2,5,6,8), (1,4)(2,6)(3,7)(5,8)
] )->Group( [ (1,3,4,6), (1,2,3)(4,5,6), (1,4)(3,6), (2,5)(3,6) ] )]
<span class="GAPprompt">gap></span> <span class="GAPinput">s4 := SymmetricGroup(4);; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">isos4 := IsomorphismGroups( Range(YAq8), s4 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">id := IdentityMapping( Source( YAq8 ) );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsBijective( id );; IsBijective( isos4 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">mor := IsomorphismByIsomorphisms( YAq8, [id,isos4] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ZAq8 := Image( mor );</span>
[Group( [ (1,2,4,6)(3,8,7,5), (1,3,4,7)(2,5,6,8), (1,4)(2,6)(3,7)(5,8)
] )->SymmetricGroup( [ 1 .. 4 ] )]
</pre></div>
<p><a id="X87BCAAF787A7FF69" name="X87BCAAF787A7FF69"></a></p>
<h5>3.2-5 MorphismOfPullback</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; MorphismOfPullback</code>( <var class="Arg">xmod</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Let <span class="SimpleMath">calX_1 = (λ : L -> N)</span> be the pullback crossed module obtained from a crossed module <span class="SimpleMath">calX_0 = (μ : M -> P)</span> and a group homomorphism <span class="SimpleMath">ν : N -> P</span>. Then the associated crossed module morphism is <span class="SimpleMath">(κ,ν) : calX_1 -> calX_0</span> where <span class="SimpleMath">κ</span> is the projection from <span class="SimpleMath">L</span> to <span class="SimpleMath">M</span>.</p>
<p><a id="X7B9D3C1F7A395FF2" name="X7B9D3C1F7A395FF2"></a></p>
<h4>3.3 <span class="Heading">Morphisms of pre-cat<span class="SimpleMath">^1</span>-groups</span></h4>
<p>A morphism of pre-cat<span class="SimpleMath">^1</span>-groups from <span class="SimpleMath">calC_1 = (e_1;t_1,h_1 : G_1 -> R_1)</span> to <span class="SimpleMath">calC_2 = (e_2;t_2,h_2 : G_2 -> R_2)</span> is a pair <span class="SimpleMath">(γ, ρ)</span> where <span class="SimpleMath">γ : G_1 -> G_2</span> and <span class="SimpleMath">ρ : R_1 -> R_2</span> are homomorphisms satisfying</p>
<p class="pcenter">
h_2 \circ \gamma ~=~ \rho \circ h_1, \qquad
t_2 \circ \gamma ~=~ \rho \circ t_1, \qquad
e_2 \circ \rho ~=~ \gamma \circ e_1.
</p>
<p><a id="X7C47D0EC782D4C40" name="X7C47D0EC782D4C40"></a></p>
<h5>3.3-1 IsCat1GroupMorphism</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; IsCat1GroupMorphism</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">an style='color: green'>8227; IsPreCat1GroupMorphism</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">an style='color: green'>8227; Cat1GroupMorphism</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">an style='color: green'>8227; Cat1GroupMorphismByGroupHomomorphisms</code>( <var class="Arg">C1</var>, <var class="Arg">C2</var>, <var class="Arg">gamma</var>, <var class="Arg">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">an style='color: green'>8227; PreCat1GroupMorphism</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">an style='color: green'>8227; PreCat1GroupMorphismByGroupHomomorphisms</code>( <var class="Arg">P1</var>, <var class="Arg">P2</var>, <var class="Arg">gamma</var>, <var class="Arg">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">an style='color: green'>8227; InclusionMorphism2DimensionalDomains</code>( <var class="Arg">C1</var>, <var class="Arg">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">an style='color: green'>8227; InnerAutomorphismCat1</code>( <var class="Arg">C1</var>, <var class="Arg">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">an style='color: green'>8227; IdentityMapping</code>( <var class="Arg">C1</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>For an example we form a second cat<span class="SimpleMath">^1</span>-group <code class="code">C2=[g18=>s3a]</code>, similar to <code class="code">C1</code> in <a href="chap2.html#X7CF4C37F87D27EBA"><span class="RefLink">2.4-1</span></a>, then construct an isomorphism <span class="SimpleMath">(γ,ρ)</span> between them.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">t3 := GroupHomomorphismByImages(g18,s3a,g18gens,[(),(7,8,9),(8,9)]);; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e3 := GroupHomomorphismByImages(s3a,g18,s3agens,[(4,5,6),(2,3)(5,6)]);; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">C3 := Cat1Group( t3, h1, e3 );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">imgamma := [ (4,5,6), (1,2,3), (2,3)(5,6) ];; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">gamma := GroupHomomorphismByImages( g18, g18, g18gens, imgamma );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">rho := IdentityMapping( s3a );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">phi3 := Cat1GroupMorphism( C18, C3, gamma, rho );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( phi3 );;</span>
Morphism of cat1-groups :-
: Source = [g18=>s3a] with generating sets:
[ (1,2,3), (4,5,6), (2,3)(5,6) ]
[ (7,8,9), (8,9) ]
: Range = [g18=>s3a] with generating sets:
[ (1,2,3), (4,5,6), (2,3)(5,6) ]
[ (7,8,9), (8,9) ]
: Source Homomorphism maps source generators to:
[ (4,5,6), (1,2,3), (2,3)(5,6) ]
: Range Homomorphism maps range generators to:
[ (7,8,9), (8,9) ]
</pre></div>
<p><a id="X7D7459E67B568B44" name="X7D7459E67B568B44"></a></p>
<h5>3.3-2 Cat1GroupMorphismOfXModMorphism</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; Cat1GroupMorphismOfXModMorphism</code>( <var class="Arg">IsXModMorphism</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">an style='color: green'>8227; XModMorphismOfCat1GroupMorphism</code>( <var class="Arg">IsCat1GroupMorphism</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>If <span class="SimpleMath">(σ,ρ) : calX_1 -> calX_2</span> and <span class="SimpleMath">calC_1,calC_2</span> are the cat<span class="SimpleMath">^1</span>-groups accociated to <span class="SimpleMath">calX_1, calX_2</span>, then the associated morphism of cat<span class="SimpleMath">^1</span>-groups is <span class="SimpleMath">(γ,ρ)</span> where <span class="SimpleMath">γ(r_1,s_1) = (ρ r_1, σ s_1)</span>.</p>
<p>Similarly, given a morphism <span class="SimpleMath">(γ,ρ) : calC_1 -> calC_2</span> of cat<span class="SimpleMath">^1</span>-groups, the associated morphism of crossed modules is <span class="SimpleMath">(σ,ρ) : calX_1 -> calX_2</span> where <span class="SimpleMath">σ s_1 = γ(1,s_1)</span>. .</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">phi5 := Cat1GroupMorphismOfXModMorphism( mor5 );</span>
[[(Aut(c5) |X c5)=>Aut(c5)] => [(Aut(c5) |X c5)=>Aut(c5)]]
<span class="GAPprompt">gap></span> <span class="GAPinput">mor3 := XModMorphismOfCat1GroupMorphism( phi3 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( mor3 );</span>
Morphism of crossed modules :-
: Source = xmod([g18=>s3a]) with generating sets:
[ (4,5,6) ]
[ (7,8,9), (8,9) ]
: Range = xmod([g18=>s3a]) with generating sets:
[ (1,2,3) ]
[ (7,8,9), (8,9) ]
: Source Homomorphism maps source generators to:
[ (1,2,3) ]
: Range Homomorphism maps range generators to:
[ (7,8,9), (8,9) ]
</pre></div>
<p><a id="X7C6AF7C285D546B2" name="X7C6AF7C285D546B2"></a></p>
<h5>3.3-3 IsomorphismPermObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; IsomorphismPermObject</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">an style='color: green'>8227; IsomorphismPerm2DimensionalGroup</code>( <var class="Arg">2DimensionalGroup</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">an style='color: green'>8227; IsomorphismFp2DimensionalGroup</code>( <var class="Arg">2DimensionalGroup</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">an style='color: green'>8227; IsomorphismPc2DimensionalGroup</code>( <var class="Arg">2DimensionalGroup</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">an style='color: green'>8227; RegularActionHomomorphism2DimensionalGroup</code>( <var class="Arg">2DimensionalGroup</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>The global function <code class="code">IsomorphismPermObject</code> calls <code class="code">IsomorphismPerm2DimensionalGroup</code>, which constructs a morphism whose <code class="func">SourceHom</code> (<a href="chap3.html#X7FFD094F7FFB1F17"><span class="RefLink">3.1-1</span></a>) and <code class="func">RangeHom</code> (<a href="chap3.html#X7FFD094F7FFB1F17"><span class="RefLink">3.1-1</span></a>) are calculated using <code class="code">IsomorphismPermGroup</code> on the source and range.</p>
<p>The global function <code class="code">RegularActionHomomorphism2DimensionalGroup</code> is similar, but uses <code class="code">RegularActionHomomorphism</code> in place of <code class="code">IsomorphismPermGroup</code>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">iso8 := IsomorphismPerm2DimensionalGroup( C8 );</span>
[[G8=>d12] => [..]]
</pre></div>
<p><a id="X837B0299846C2391" name="X837B0299846C2391"></a></p>
<h5>3.3-4 SmallerDegreePermutationRepresentation2DimensionalGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SmallerDegreePermutationRepresentation2DimensionalGroup</code>( <var class="Arg">Perm2DimensionalGroup</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>The attribute <code class="code">SmallerDegreePermutationRepresentation2DimensionalGroup</code> is obtained by calling <code class="code">SmallerDegreePermutationRepresentation</code> on the source and range to obtain the an isomorphism for the pre-xmod or pre-cat<span class="SimpleMath">^1</span>-group.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group( (1,2,3,4)(5,6,7,8) );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">H := Subgroup( G, [ (1,3)(2,4)(5,7)(6,8) ] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">XG := XModByNormalSubgroup( G, H );</span>
[Group( [ (1,3)(2,4)(5,7)(6,8) ] )->Group( [ (1,2,3,4)(5,6,7,8) ] )]
<span class="GAPprompt">gap></span> <span class="GAPinput">sdpr := SmallerDegreePermutationRepresentation2DimensionalGroup( XG );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Range( sdpr );</span>
[Group( [ (1,2) ] )->Group( [ (1,2,3,4) ] )]
</pre></div>
<p><a id="X7B09A28579707CAF" name="X7B09A28579707CAF"></a></p>
<h4>3.4 <span class="Heading">Operations on morphisms</span></h4>
<p><a id="X811F886081AAB95F" name="X811F886081AAB95F"></a></p>
<h5>3.4-1 CompositionMorphism</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; CompositionMorphism</code>( <var class="Arg">map2</var>, <var class="Arg">map1</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Composition of morphisms (written <code class="code">(<map1> * <map2>)</code> when maps act on the right) calls the <code class="func">CompositionMorphism</code> function for maps (acting on the left), applied to the appropriate type of 2d-mapping.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">H8 := Subgroup(G8,[G8.3,G8.4,G8.6,G8.7]); SetName( H8, "H8" );</span>
Group([ f3, f4, f6, f7 ])
<span class="GAPprompt">gap></span> <span class="GAPinput">c6 := Subgroup( d12, [b,c] ); SetName( c6, "c6" );</span>
Group([ f2, f3 ])
<span class="GAPprompt">gap></span> <span class="GAPinput">SC8 := Sub2DimensionalGroup( C8, H8, c6 );</span>
[H8=>c6]
<span class="GAPprompt">gap></span> <span class="GAPinput">IsCat1Group( SC8 );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">inc8 := InclusionMorphism2DimensionalDomains( C8, SC8 );</span>
[[H8=>c6] => [G8=>d12]]
<span class="GAPprompt">gap></span> <span class="GAPinput">CompositionMorphism( iso8, inc ); </span>
[[H8=>c6] => P[G8=>d12]]
</pre></div>
<p><a id="X83C3A2478159DE76" name="X83C3A2478159DE76"></a></p>
<h5>3.4-2 Kernel</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; 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">an style='color: green'>8227; Kernel2DimensionalMapping</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>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">c2 := Group( (19,20) ); </span>
Group([ (19,20) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">X0 := XModByNormalSubgroup( c2, c2 ); SetName( X0, "X0" );</span>
[Group( [ (19,20) ] )->Group( [ (19,20) ] )]
<span class="GAPprompt">gap></span> <span class="GAPinput">SX8 := Source( X8 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">genSX8 := GeneratorsOfGroup( SX8 ); </span>
[ f1, f4, f5, f7 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">sigma0 := GroupHomomorphismByImages(SX8,c2,genSX8,[(19,20),(),(),()]);</span>
[ f1, f4, f5, f7 ] -> [ (19,20), (), (), () ]
<span class="GAPprompt">gap></span> <span class="GAPinput">rho0 := GroupHomomorphismByImages(d12,c2,[a1,a2,a3],[(19,20),(),()]);</span>
[ f1, f2, f3 ] -> [ (19,20), (), () ]
<span class="GAPprompt">gap></span> <span class="GAPinput">mor0 := XModMorphism( X8, X0, sigma0, rho0 );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">K0 := Kernel( mor0 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">StructureDescription( K0 );</span>
[ "C12", "C6" ]
</pre></div>
<p><a id="X79C47E3D7855A117" name="X79C47E3D7855A117"></a></p>
<h4>3.5 <span class="Heading">Quasi-isomorphisms</span></h4>
<p>A morphism of crossed modules <span class="SimpleMath">ϕ : calX = (∂ : S -> R) -> calX' = (∂' : S' -> R')</span> induces homomorphisms <span class="SimpleMath">π_1(ϕ) : π_1(∂) -> π_1(∂')</span> and <span class="SimpleMath">π_2(ϕ) : π_2(∂) -> π_2(∂')</span>. A morphism <span class="SimpleMath">ϕ</span> is a <em>quasi-isomorphism</em> if both <span class="SimpleMath">π_1(ϕ)</span> and <span class="SimpleMath">π_2(ϕ)</span> are isomorphisms. Two crossed modules <span class="SimpleMath">calX,calX'</span> are <em>quasi-isomorphic</em> is there exists a sequence of quasi-isomorphisms</p>
<p class="pcenter">
\calX ~=~ \calX_1 ~\leftrightarrow~ \calX_2 ~\leftrightarrow~ \calX_3
~\leftrightarrow~ \cdots ~\longleftrightarrow~ \calX_{\ell} ~=~ \calX'
</p>
<p>of length <span class="SimpleMath">ℓ-1</span>. Here <span class="SimpleMath">calX_i ↔ calX_j</span> means that <em>either</em> <span class="SimpleMath">calX_i -> calX_j</span> <em>or</em> <span class="SimpleMath">calX_j -> calX_i</span>. When <span class="SimpleMath">calX,calX'</span> are quasi-isomorphic we write <span class="SimpleMath">calX ≃ calX'</span>. Clearly <span class="SimpleMath">≃</span> is an equivalence relation. Mac\ Lane and Whitehead in <a href="chapBib.html#biBMW">[MLW50]</a> showed that there is a one-to-one correspondence between homotopy <span class="SimpleMath">2</span>-types and quasi-isomorphism classes. We say that <span class="SimpleMath">calX</span> represents a <em>trivial</em> quasi-isomorphism class if <span class="SimpleMath">∂=0</span>.</p>
<p>Two cat<span class="SimpleMath">^1</span>-groups are quasi-isomorphic if their corresponding crossed modules are. The procedure for constructing a representative for the quasi-isomorphism class of a cat<span class="SimpleMath">^1</span>-group <span class="SimpleMath">calC</span>, as described by Ellis and Le in <a href="chapBib.html#biBEL">[EL14]</a>, is as follows. The <em>quotient process</em> consists of finding all normal sub-crossed modules <span class="SimpleMath">calN</span> of the crossed module <span class="SimpleMath">calX</span> associated to <span class="SimpleMath">calC</span>; constructing the quotient crossed module morphisms <span class="SimpleMath">ν : calX -> calX/calN</span>; and converting these <span class="SimpleMath">ν</span> to morphisms from <span class="SimpleMath">calC</span>.</p>
<p>The <em>sub-crossed module process</em> consists of finding all sub-crossed modules <span class="SimpleMath">calS</span> of <span class="SimpleMath">calX</span> such that the inclusion <span class="SimpleMath">ι : calS -> calX</span> is a quasi-isomorphism; then converting <span class="SimpleMath">ι</span> to a morphism to <span class="SimpleMath">calC</span>.</p>
<p>The procedure for finding all quasi-isomorphism reductions consists of repeating the quotient process, followed by the sub-crossed module process, until no further reductions are possible.</p>
<p>It may happen that <span class="SimpleMath">calC_1 ≃ calC_2</span> without either having a quasi-isomorphism reduction. In this case it is necessary to find a suitable <span class="SimpleMath">calC_3</span> with reductions <span class="SimpleMath">calC_3 -> calC_1</span> and <span class="SimpleMath">calC_3 -> calC_2</span>. No such automated process is available in <strong class="pkg">XMod</strong>.</p>
<p>Functions for these computations were first implemented in the package <strong class="pkg">HAP</strong> and are available as <code class="code">QuotientQuasiIsomorph</code>, <code class="code">SubQuasiIsomorph</code> and <code class="code">QuasiIsomorph</code>.</p>
<p><a id="X86F08B1981618400" name="X86F08B1981618400"></a></p>
<h5>3.5-1 QuotientQuasiIsomorphism</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; QuotientQuasiIsomorphism</code>( <var class="Arg">cat1</var>, <var class="Arg">bool</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>This function implements the quotient process. The second parameter is a boolean which, when true, causes the results of some intermediate calculations to be printed. The output shows the identity of the reduced cat<span class="SimpleMath">^1</span>-group, if there is one.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">C18a := Cat1Select( 18, 4, 4 );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">StructureDescription( C18a ); </span>
[ "(C3 x C3) : C2", "S3" ]
<span class="GAPprompt">gap></span> <span class="GAPinput">QuotientQuasiIsomorphism( C18a, true ); </span>
quo: [ f2 ][ f3 ], [ "1", "C2" ]
[ [ 2, 1 ], [ 2, 1 ] ], [ 2, 1, 1 ]
[ [ 2, 1, 1 ] ]
</pre></div>
<p><a id="X7C4C1C587B8932A7" name="X7C4C1C587B8932A7"></a></p>
<h5>3.5-2 SubQuasiIsomorphism</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SubQuasiIsomorphism</code>( <var class="Arg">cat1</var>, <var class="Arg">bool</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>This function implements the sub-crossed module process.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">SubQuasiIsomorphism( C18a, false );</span>
[ [ 2, 1, 1 ], [ 2, 1, 1 ], [ 2, 1, 1 ] ]
</pre></div>
<p><a id="X83365AF2812E5C04" name="X83365AF2812E5C04"></a></p>
<h5>3.5-3 QuasiIsomorphism</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; QuasiIsomorphism</code>( <var class="Arg">cat1</var>, <var class="Arg">list</var>, <var class="Arg">bool</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>This function implements the general process.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">L18a := QuasiIsomorphism( C18a, [18,4,4], false );</span>
[ [ 2, 1, 1 ], [ 18, 4, 4 ] ]
</pre></div>
<p>The logs above show that <code class="code">C18a</code> has just one normal sub-crossed module <span class="SimpleMath">calN</span> leading to a reduction, and that there are three sub-crossed modules <span class="SimpleMath">calS</span> all giving the same reduction. The conclusion is that <code class="code">C18a</code> is quasi-isomorphic to the identity cat<span class="SimpleMath">^1</span>-group on the cyclic group of order <span class="SimpleMath">2</span>.</p>
<div class="chlinkprevnextbot"> <a href="chap0.html">[Top of Book]</a> <a href="chap0.html#contents">[Contents]</a> <a href="chap2.html">[Previous Chapter]</a> <a href="chap4.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="chap10.html">10</a> <a href="chap11.html">11</a> <a href="chap12.html">12</a> <a href="chap13.html">13</a> <a href="chap14.html">14</a> <a href="chap15.html">15</a> <a href="chapBib.html">Bib</a> <a href="chapInd.html">Ind</a> </div>
<hr />
<p class="foot">generated by <a href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>
¤ Dauer der Verarbeitung: 0.21 Sekunden
¤
*© Formatika GbR, Deutschland
|
|