Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/GAP/pkg/xmod/doc/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 10.6.2025 mit Größe 40 kB image not shown  

Quelle  chap3.html   Sprache: HTML

 
 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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' where calD'</span> has source <span class="SimpleMath">S' and range 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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(∂') and π_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' are quasi-isomorphic is there exists a sequence of quasi-isomorphisms



<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' are quasi-isomorphic we write 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">‣ 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">‣ 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">‣ 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>

100%


¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.24Angebot  Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können  ¤

*Eine klare Vorstellung vom Zielzustand






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.