| products/Sources/formale Sprachen/GAP/pkg/xmodalg/doc/chap4.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 (XModAlg) - Chapter 4: Crossed modules</ 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= "chap4" 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="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="chap3.html">[Previous Chapter]</a> <a href="chap5.html">[Next Chapter]</a> </div>
<p id="mathjaxlink" class="pcenter"><a href="chap4_mj.html">[MathJax on]</a></p>
<p><a id="X808C6B357F8BADC1" name="X808C6B357F8BADC1"></a></p>
<div class="ChapSects"><a href="chap4.html#X808C6B357F8BADC1">4 <span class="Heading">Crossed modules</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap4.html#X7BB9D67179296AA0">4.1 <span class="Heading">Definition and Examples</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X813D94F97D8E71A8">4.1-1 XModAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X7B31475D7C030075">4.1-2 XModAlgebraByIdeal</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X7CD49D5A84FB05FC">4.1-3 AugmentationXMod</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X83C5D98B828DD1DD">4.1-4 Source</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X814C89667B997FE8">4.1-5 XModAlgebraByMultiplierAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X824D4DD88323EF70">4.1-6 XModAlgebraBySurjection</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X7AB09A158148290F">4.1-7 XModAlgebraByBoundaryAndAction</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X78400B837A2C8FB9">4.1-8 XModAlgebraByModule</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X7CA213397B334CBC">4.1-9 SubXModAlgebra</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap4.html#X866610BC7C41E1EC">4.2 <span class="Heading">(Pre-)Crossed Module Morphisms</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X7D575D07810640EB">4.2-1 XModAlgebraMorphism</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X83F45A3E8554ABE9">4.2-2 Kernel</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X87F4D35A826599C6">4.2-3 Image</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap4.html#X7B7975DA7E870690">4.2-4 SourceHom</a></span>
</div></div>
</div>
<h3>4 <span class="Heading">Crossed modules</span></h3>
<p>In this chapter we will present the notion of crossed modules of commutative algebras and their implementation in this package.</p>
<p><a id="X7BB9D67179296AA0" name="X7BB9D67179296AA0"></a></p>
<h4>4.1 <span class="Heading">Definition and Examples</span></h4>
<p>A <em>crossed module</em> is a <strong class="button">k</strong>-algebra morphism <span class="SimpleMath">mathcalX:=(∂:S→ R)</span> with a left action of <span class="SimpleMath">R</span> on <span class="SimpleMath">S</span> satisfying</p>
<p class="pcenter">
{\bf XModAlg\ 1} ~:~ \partial(r \cdot s)
= r(\partial s),
\qquad
{\bf XModAlg\ 2} ~:~ (\partial s) \cdot s^{\prime} = ss^{\prime},
</p>
<p>for all <span class="SimpleMath">s,s^' ∈ S, r∈ R</span>. The morphism <span class="SimpleMath">∂</span> is called the <em>boundary map</em> of <span class="SimpleMath">mathcalX</span></p>
<p>Note that, although in this definition we have used a left action, in the category of commutative algebras left and right actions coincide.</p>
<p>When only the first axiom is satisfied, it is a <em>precrossed module</em> which is constructed.</p>
<p>The details of these implementations can be found in <a href="chapBib.html#biBaodabas1">[Oda09]</a>.</p>
<p><a id="X813D94F97D8E71A8" name="X813D94F97D8E71A8"></a></p>
<h5>4.1-1 XModAlgebra</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; XModAlgebra</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; PreXModAlgebra</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; IsXModAlgebra</code>( <var class="Arg">X0</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; IsPreXModAlgebra</code>( <var class="Arg">X0</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>These two global function call one of the following six operations, depending on the arguments supplied. The two properties listed are assigned as appropriate to the resulting structures.</p>
<p><a id="X7B31475D7C030075" name="X7B31475D7C030075"></a></p>
<h5>4.1-2 XModAlgebraByIdeal</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; XModAlgebraByIdeal</code>( <var class="Arg">A</var>, <var class="Arg">I</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Let <span class="SimpleMath">A</span> be an algebra and <span class="SimpleMath">I</span> an ideal of <span class="SimpleMath">A</span>. Then <span class="SimpleMath">mathcalX = (inc:I→ A)</span> is a crossed module whose action is left multiplication of <span class="SimpleMath">A</span> on <span class="SimpleMath">I</span>. Conversely, given a crossed module <span class="SimpleMath">mathcalX = (∂ : S → R)</span>, it is the case that <span class="SimpleMath">∂(S)</span> is an ideal of <span class="SimpleMath">R</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">F5 := GF(5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">id5 := One( F5 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">two := Z(5);; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">z5 := Zero( F5 );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">n0 := [ [id5,z5,z5], [z5,id5,z5], [z5,z5,id5] ];; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">n1 := [ [z5,id5,two^3], [z5,z5,id5], [z5,z5,z5] ];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">n2 := [ [z5,z5,id5], [z5,z5,z5], [z5,z5,z5] ];; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">An := Algebra( F5, [ n0, n1 ] );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SetName( An, "An" ); </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Bn := Subalgebra( An, [ n1 ] );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SetName( Bn, "Bn" ); </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsIdeal( An, Bn ); </span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">actn := AlgebraActionByMultipliers( An, Bn, An );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Xn := XModAlgebraByIdeal( An, Bn ); </span>
[ Bn -> An ]
<span class="GAPprompt">gap></span> <span class="GAPinput">SetName( Xn, "Xn" ); </span>
</pre></div>
<p><a id="X7CD49D5A84FB05FC" name="X7CD49D5A84FB05FC"></a></p>
<h5>4.1-3 AugmentationXMod</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; AugmentationXMod</code>( <var class="Arg">A</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>As a special case of the previous operation, the attribute <code class="code">AugmentationXMod(A)</code> of a group algebra <span class="SimpleMath">A</span> is the <code class="code">XModAlgebraByIdeal</code> formed using the <code class="code">AugmentationIdeal</code> of the group algebra.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Ak4 := GroupRing( GF(5), DihedralGroup(4) );</span>
<algebra-with-one over GF(5), with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size( Ak4 );</span>
625
<span class="GAPprompt">gap></span> <span class="GAPinput">SetName( Ak4, "GF5[k4]" );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IAk4 := AugmentationIdeal( Ak4 );</span>
<two-sided ideal in GF5[k4], (2 generators)>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size( IAk4 );</span>
125
<span class="GAPprompt">gap></span> <span class="GAPinput">SetName( IAk4, "I(GF5[k4])" );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">XIAk4 := XModAlgebraByIdeal( Ak4, IAk4 );</span>
[ I(GF5[k4]) -> GF5[k4] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( XIAk4 );</span>
Crossed module [I(GF5[k4])->GF5[k4]] :-
: Source algebra I(GF5[k4]) has generators:
[ (Z(5)^2)*<identity> of ...+(Z(5)^0)*f1, (Z(5)^2)*<identity> of ...+(Z(5)^
0)*f2 ]
: Range algebra GF5[k4] has generators:
[ (Z(5)^0)*<identity> of ..., (Z(5)^0)*f1, (Z(5)^0)*f2 ]
: Boundary homomorphism maps source generators to:
[ (Z(5)^2)*<identity> of ...+(Z(5)^0)*f1, (Z(5)^2)*<identity> of ...+(Z(5)^
0)*f2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Size2d( XIAk4 );</span>
[ 125, 625 ]
</pre></div>
<p><a id="X83C5D98B828DD1DD" name="X83C5D98B828DD1DD"></a></p>
<h5>4.1-4 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">X0</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; Range</code>( <var class="Arg">X0</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; Boundary</code>( <var class="Arg">X0</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; XModAlgebraAction</code>( <var class="Arg">X0</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>These four attributes are used in the construction of a crossed module <span class="SimpleMath">mathcalX</span> where:</p>
<ul>
<li><p><code class="code">Source(X)</code> and <code class="code">Range(X)</code> are the <em>source</em> and the <em>range</em> of the boundary map respectively;</p>
</li>
<li><p><code class="code">Boundary(X)</code> is the boundary map of the crossed module <span class="SimpleMath">mathcalX</span>;</p>
</li>
<li><p><code class="code">XModAlgebraAction(X)</code> is the action used in the crossed module. This is an algebra homomorphism from <code class="code">Range(X)</code> to an algebra of endomorphisms of <code class="code">Source(X)</code>.</p>
</li>
</ul>
<p>The following standard <strong class="pkg">GAP</strong> operations have special <strong class="pkg">XModAlg</strong> implementations:</p>
<ul>
<li><p><code class="code">Display(X)</code> is used to list the components of <span class="SimpleMath">mathcalX</span>;</p>
</li>
<li><p><code class="code">Size2d(X)</code> for a crossed module <span class="SimpleMath">mathcalX</span> returns a <span class="SimpleMath">2</span>-element list, the sizes of the source and range,</p>
</li>
<li><p><code class="code">Dimension(X)</code> for a crossed module <span class="SimpleMath">mathcalX</span> returns a <span class="SimpleMath">2</span>-element list, the dimensions of the source and range,</p>
</li>
<li><p><code class="code">Name(X)</code> is used for giving a name to the crossed module <span class="SimpleMath">mathcalX</span> by associating the names of source and range algebras.</p>
</li>
</ul>
<p>In the following example, we construct a crossed module by using the algebra <span class="SimpleMath">GF_5D_4</span> and its augmentation ideal. We also show usage of the attributes listed above.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">RepresentationsOfObject( XIAk4 );</span>
[ "IsComponentObjectRep", "IsAttributeStoringRep", "IsPreXModAlgebraObj" ]
<span class="GAPprompt">gap></span> <span class="GAPinput">KnownPropertiesOfObject( XIAk4 );</span>
[ "CanEasilyCompareElements", "CanEasilySortElements", "IsDuplicateFree",
"IsLeftActedOnByDivisionRing", "IsAdditivelyCommutative", "IsLDistributive",
"IsRDistributive", "IsPreXModDomain", "Is2dAlgebraObject",
"IsPreXModAlgebra", "IsXModAlgebra" ]
<span class="GAPprompt">gap></span> <span class="GAPinput">KnownAttributesOfObject( XIAk4 );</span>
[ "Name", "LeftActingDomain", "Range", "Source", "Boundary", "Size2d",
"XModAlgebraAction" ]
</pre></div>
<p><a id="X814C89667B997FE8" name="X814C89667B997FE8"></a></p>
<h5>4.1-5 XModAlgebraByMultiplierAlgebra</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; XModAlgebraByMultiplierAlgebra</code>( <var class="Arg">A</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>When <span class="SimpleMath">A</span> is an algebra with multiplier algebra <span class="SimpleMath">M</span>, then the map <span class="SimpleMath">A -> M, ~ a ↦ μ_a</span> is the boundary of a crossed module in which the action is the identity map on <span class="SimpleMath">M</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">XAn := XModAlgebraByMultiplierAlgebra( An );</span>
[ An -> <algebra of dimension 3 over GF(5)> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">XModAlgebraAction( XAn );</span>
IdentityMapping( <algebra of dimension 3 over GF(5)> )
</pre></div>
<p><a id="X824D4DD88323EF70" name="X824D4DD88323EF70"></a></p>
<h5>4.1-6 XModAlgebraBySurjection</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; XModAlgebraBySurjection</code>( <var class="Arg">f</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Let <span class="SimpleMath">∂ : S→ R</span> be a surjective algebra homomorphism whose kernel lies in the annihilator of <span class="SimpleMath">S</span>. Define the action of <span class="SimpleMath">R</span> on <span class="SimpleMath">S</span> by <span class="SimpleMath">r⋅ s = widetilders</span> where <span class="SimpleMath">widetilder ∈ ∂^-1(r)</span>, as described in section <code class="func">AlgebraActionBySurjection</code> (<a href="chap2.html#X7EAF09677CAE12D5"><span class="RefLink">2.2-3</span></a>). Then <span class="SimpleMath">mathcalX=(∂ : S→ R)</span> is a crossed module with the defined action.</p>
<p>Continuing with the example in that section,</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">X2 := XModAlgebraBySurjection( nat2 );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( X2 ); </span>
Crossed module [A2->Q2] :-
: Source algebra A2 has generators:
[ [ [ 0, 1, 2, 3 ], [ 0, 0, 1, 2 ], [ 0, 0, 0, 1 ], [ 0, 0, 0, 0 ] ] ]
: Range algebra Q2 has generators:
[ v.1, v.2 ]
: Boundary homomorphism maps source generators to:
[ v.1 ]
</pre></div>
<p><a id="X7AB09A158148290F" name="X7AB09A158148290F"></a></p>
<h5>4.1-7 XModAlgebraByBoundaryAndAction</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; XModAlgebraByBoundaryAndAction</code>( <var class="Arg">bdy</var>, <var class="Arg">act</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; PreXModAlgebraByBoundaryAndAction</code>( <var class="Arg">bdy</var>, <var class="Arg">act</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>When a suitable pair of algebra homomorphisms are available, these operations may be used. The example uses the algebra action created in section <a href="chap2.html#X8530E1B27BC2FBB7"><span class="RefLink">2.2-4</span></a>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">bdy3 := AlgebraHomomorphismByImages( Rc3, A3, [ g3 ], [ m3 ] );</span>
[ (1)*(1,2,3) ] -> [ [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">X3 := XModAlgebraByBoundaryAndAction( bdy3, actg3 );</span>
[ GR(c3) -> A3 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( X3 );</span>
Crossed module [GR(c3) -> A3] :-
: Source algebra GR(c3) has generators:
[ (1)*(), (1)*(1,2,3) ]
: Range algebra A3 has generators:
[ [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] ]
: Boundary homomorphism maps source generators to:
[ [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ],
[ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] ]
</pre></div>
<p><a id="X78400B837A2C8FB9" name="X78400B837A2C8FB9"></a></p>
<h5>4.1-8 XModAlgebraByModule</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; XModAlgebraByModule</code>( <var class="Arg">alg</var>, <var class="Arg">leftmod</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Let <span class="SimpleMath">M</span> be an <span class="SimpleMath">A</span>-module. Then <span class="SimpleMath">mathcalX = (0 : A(M) → A)</span> is a crossed module, where <span class="SimpleMath">A(M)</span> is <span class="SimpleMath">M</span> considered as an algebra with zero products (see section <a href="chap2.html#X83A1091782FF581C"><span class="RefLink">2.3-1</span></a>). The example uses the action <code class="code">act3</code> constructed in section <a href="chap2.html#X7C1C8B987B2167B9"><span class="RefLink">2.3-4</span></a>.</p>
<p>Conversely, given a crossed module <span class="SimpleMath">mathcalX = (∂ :M→ R)</span>, one can get that <span class="SimpleMath">ker∂</span> is a <span class="SimpleMath">(R/∂ M)</span>-module.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Y3 := XModAlgebraByModule( A3, M3 );</span>
[ A(M3) -> A3 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Image( XModAlgebraAction( Y3 ), m3 ) = Image( act3, m3 ); </span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( Y3 );</span>
Crossed module [A(M3) -> A3] :-
: Source algebra A(M3) has generators: [ [[ 1, 0, 0 ]], [[ 0, 1, 0 ]],
[[ 0, 0, 1 ]] ]
: Range algebra A3 has generators:
[ [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] ]
: Boundary homomorphism maps source generators to:
[ [ [ 0, 0, 0 ], [ 0, 0, 0 ], [ 0, 0, 0 ] ],
[ [ 0, 0, 0 ], [ 0, 0, 0 ], [ 0, 0, 0 ] ],
[ [ 0, 0, 0 ], [ 0, 0, 0 ], [ 0, 0, 0 ] ] ]
</pre></div>
<p><a id="X7CA213397B334CBC" name="X7CA213397B334CBC"></a></p>
<h5>4.1-9 SubXModAlgebra</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SubXModAlgebra</code>( <var class="Arg">alg</var>, <var class="Arg">src</var>, <var class="Arg">rng</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; IsSubXModAlgebra</code>( <var class="Arg">alg</var>, <var class="Arg">sub</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>A crossed module <span class="SimpleMath">mathcalX^' = (∂ ^' :S^'→ R^' )</span> is a subcrossed module of the crossed module <span class="SimpleMath">mathcalX = (∂ :S→ R)</span> if <span class="SimpleMath">S^' ≤ S</span>, <span class="SimpleMath">R^'≤ R</span>, <span class="SimpleMath">∂^' = ∂|_S^' }</span>, and the action of <span class="SimpleMath">S^'</span> on <span class="SimpleMath">R^'</span> is induced by the action of <span class="SimpleMath">R</span> on <span class="SimpleMath">S</span>. The operation <code class="code">SubXModAlgebra</code> is used to construct a subcrossed module of a given crossed module.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">e4 := Elements( IAk4 )[4];</span>
(Z(5)^0)*<identity> of ...+(Z(5)^0)*f1+(Z(5)^2)*f2+(Z(5)^2)*f1*f2
<span class="GAPprompt">gap></span> <span class="GAPinput">Je4 := Ideal( IAk4, [e4] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SetName( Je4, "<e4>" );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Ke4 := Subalgebra( Ak4, [e4] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">[ Size( Je4 ), Size( Ke4 ) ];</span>
[ 5, 5 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Se4 := SubXModAlgebra( XIAk4, Je4, Ke4 );</span>
[ <e4> -> <algebra of dimension 1 over GF(5)> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">IsSubXModAlgebra( XIAk4, Se4 ); </span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( Se4 );</span>
Crossed module [<e4> -> ..] :-
: Source algebra <e4> has generators:
[ (Z(5)^0)*<identity> of ...+(Z(5)^0)*f1+(Z(5)^2)*f2+(Z(5)^2)*f1*f2 ]
: Range algebra has generators:
[ (Z(5)^0)*<identity> of ...+(Z(5)^0)*f1+(Z(5)^2)*f2+(Z(5)^2)*f1*f2 ]
: Boundary homomorphism maps source generators to:
[ (Z(5)^0)*<identity> of ...+(Z(5)^0)*f1+(Z(5)^2)*f2+(Z(5)^2)*f1*f2 ]
</pre></div>
<p><a id="X866610BC7C41E1EC" name="X866610BC7C41E1EC"></a></p>
<h4>4.2 <span class="Heading">(Pre-)Crossed Module Morphisms</span></h4>
<p>Let <span class="SimpleMath">mathcalX = (∂:S→ R)</span> and <span class="SimpleMath">mathcalX^' = (∂^' :S^' → R^' )</span> be (pre)crossed modules and let <span class="SimpleMath">θ :S→ S^'</span>, <span class="SimpleMath">φ : R→ R^'</span> be algebra homomorphisms. Then if</p>
<p class="pcenter">
\varphi \circ \partial = \partial ^{\prime } \circ \theta,
\qquad
\theta (r\cdot s)=\varphi(r) \cdot \theta (s),
</p>
<p>for all <span class="SimpleMath">r∈ R</span>, <span class="SimpleMath">s∈ S,</span> the pair <span class="SimpleMath">(θ ,φ )</span> is called a morphism between <span class="SimpleMath">mathcalX</span> and <span class="SimpleMath">mathcalX^'</span></p>
<p>The conditions can be thought as the commutativity of the following diagrams:</p>
<p class="pcenter">
\xymatrix@R=40pt@C=40pt{
S \ar[d]_{\partial} \ar[r]^{\theta}
& S^{\prime } \ar[d]^{\partial^{\prime }} \\
R \ar[r]_{\varphi}
& R^{\prime }
} \ \ \ \
\xymatrix@R=40pt@C=40pt{
R \times S \ar[d] \ar[r]^{ \varphi \times \theta }
& R^{\prime } \times S^{\prime } \ar[d] \\
S \ar[r]_{ \theta } & S^{\prime }. }
</p>
<p>In <strong class="pkg">GAP</strong> we define the morphisms between algebraic structures such as cat<span class="SimpleMath">^1</span>-algebras and crossed modules and they are investigated by the function <code class="code">Make2dAlgebraMorphism</code>.</p>
<p><a id="X7D575D07810640EB" name="X7D575D07810640EB"></a></p>
<h5>4.2-1 XModAlgebraMorphism</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; XModAlgebraMorphism</code>( <var class="Arg">arg</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; IdentityMapping</code>( <var class="Arg">Xalg</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; PreXModAlgebraMorphismByHoms</code>( <var class="Arg">src</var>, <var class="Arg">rng</var>, <var class="Arg">srchom</var>, <var class="Arg">rnghom</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; XModAlgebraMorphismByHoms</code>( <var class="Arg">src</var>, <var class="Arg">rng</var>, <var class="Arg">srchom</var>, <var class="Arg">rnghom</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; IsPreXModAlgebraMorphism</code>( <var class="Arg">mor</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; IsXModAlgebraMorphism</code>( <var class="Arg">mor</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; Source</code>( <var class="Arg">mor</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">mor</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; IsTotal</code>( <var class="Arg">mor</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">m0r</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; Name</code>( <var class="Arg">mor</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>These operations construct crossed module homomorphisms, which may have the attributes listed.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">c4 := CyclicGroup( 4 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Ac4 := GroupRing( GF(2), c4 );</span>
<algebra-with-one over GF(2), with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">SetName( Ac4, "GF2[c4]" );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IAc4 := AugmentationIdeal( Ac4 );</span>
<two-sided ideal in GF2[c4], (dimension 3)>
<span class="GAPprompt">gap></span> <span class="GAPinput">SetName( IAc4, "I(GF2[c4])" );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">XIAc4 := XModAlgebra( Ac4, IAc4 );</span>
[ I(GF2[c4]) -> GF2[c4] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Bk4 := GroupRing( GF(2), SmallGroup( 4, 2 ) );</span>
<algebra-with-one over GF(2), with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">SetName( Bk4, "GF2[k4]" );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IBk4 := AugmentationIdeal( Bk4 );</span>
<two-sided ideal in GF2[k4], (dimension 3)>
<span class="GAPprompt">gap></span> <span class="GAPinput">SetName( IBk4, "I(GF2[k4])" );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">XIBk4 := XModAlgebra( Bk4, IBk4 );</span>
[ I(GF2[k4]) -> GF2[k4] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">IAc4 = IBk4;</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">homIAIB := AllAlgebraHomomorphisms( IAc4, IBk4 );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">theta := homIAIB[3];; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">homAB := AllAlgebraHomomorphisms( Ac4, Bk4 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">phi := homAB[7];; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">mor := XModAlgebraMorphism( XIAc4, XIBk4, theta, phi );</span>
[[I(GF2[c4])->GF2[c4]] => [I(GF2[k4])->GF2[k4]]]
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( mor );</span>
Morphism of crossed modules :-
: Source = [I(GF2[c4])->GF2[c4]]
: Range = [I(GF2[k4])->GF2[k4]]
: Source Homomorphism maps source generators to:
[ <zero> of ..., (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^
0)*f1*f2, (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^
0)*f1*f2 ]
: Range Homomorphism maps range generators to:
[ (Z(2)^0)*<identity> of ..., (Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2,
(Z(2)^0)*<identity> of ... ]
<span class="GAPprompt">gap></span> <span class="GAPinput">IsTotal( mor );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsSingleValued( mor );</span>
true
</pre></div>
<p><a id="X83F45A3E8554ABE9" name="X83F45A3E8554ABE9"></a></p>
<h5>4.2-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">mor</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Let <span class="SimpleMath">(θ,φ) : mathcalX = (∂ : S → R) → mathcalX^' = (∂^' : S^' → R^')</span> be a crossed module homomorphism. Then the crossed module</p>
<p class="pcenter">
\ker(\theta,\varphi) = (\partial| : \ker\theta \rightarrow \ker\varphi )
</p>
<p>is called the <em>kernel</em> of <span class="SimpleMath">(θ,φ)</span>. Also, <span class="SimpleMath">ker(θ ,φ )</span> is an ideal of <span class="SimpleMath">mathcalX</span>. An example is given below.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Xmor := Kernel( mor );</span>
[ <algebra of dimension 2 over GF(2)> -> <algebra of dimension 2 over GF(2)> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">IsXModAlgebra( Xmor );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">Size2d( Xmor );</span>
[ 4, 4 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">IsSubXModAlgebra( XIAc4, Xmor );</span>
true
</pre></div>
<p><a id="X87F4D35A826599C6" name="X87F4D35A826599C6"></a></p>
<h5>4.2-3 Image</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; Image</code>( <var class="Arg">mor</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Let <span class="SimpleMath">(θ,φ) : mathcalX = (∂ : S → R) → mathcalX^' = (∂^' : S^' → R^')</span> be a crossed module homomorphism. Then the crossed module</p>
<p class="pcenter">
\Im(\theta,\varphi) = (\partial^{\prime}| :
\Im\theta \rightarrow \Im\varphi)
</p>
<p>is called the image of <span class="SimpleMath">(θ,φ)</span>. Further, <span class="SimpleMath">ℑ(θ,φ)</span> is a subcrossed module of <span class="SimpleMath">(S^',R^',∂^')</span>.</p>
<p>In this package, the image of a crossed module homomorphism can be obtained by the command <code class="code">ImagesSource</code>. The operation <code class="code">Sub2dAlgObject</code> is effectively used for finding the kernel and image crossed modules induced from a given crossed module homomorphism.</p>
<p><a id="X7B7975DA7E870690" name="X7B7975DA7E870690"></a></p>
<h5>4.2-4 SourceHom</h5>
<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">mor</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">mor</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; IsInjective</code>( <var class="Arg">mor</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; IsSurjective</code>( <var class="Arg">mor</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; IsBijjective</code>( <var class="Arg">mor</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Let <span class="SimpleMath">(θ,φ)</span> be a homomorphism of crossed modules. If the homomorphisms <span class="SimpleMath">θ</span> and <span class="SimpleMath">φ</span> are injective (surjective) then <span class="SimpleMath">(θ,φ)</span> is injective (surjective).</p>
<p>The attributes <code class="code">SourceHom</code> and <code class="code">RangeHom</code> store the two algebra homomorphisms <span class="SimpleMath">θ</span> and <span class="SimpleMath">φ</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">ic4 := One( Ac4 );; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e1 := ic4*c4.1 + ic4*c4.2;</span>
(Z(2)^0)*f1+(Z(2)^0)*f2
<span class="GAPprompt">gap></span> <span class="GAPinput">ImageElm( theta, e1 ); </span>
(Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2
<span class="GAPprompt">gap></span> <span class="GAPinput">e2 := ic4*c4.1;</span>
(Z(2)^0)*f1
<span class="GAPprompt">gap></span> <span class="GAPinput">ImageElm( phi, e2 );</span>
(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2
<span class="GAPprompt">gap></span> <span class="GAPinput">IsInjective( mor );</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">IsSurjective( mor );</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">immor := ImagesSource2DimensionalMapping( mor );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( immor );</span>
Crossed module [..->..] :-
: Source algebra has generators:
[ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2 ]
: Range algebra has generators:
[ (Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2, (Z(2)^0)*<identity> of ... ]
: Boundary homomorphism maps source generators to:
[ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2 ]
</pre></div>
<div class="chlinkprevnextbot"> <a href="chap0.html">[Top of Book]</a> <a href="chap0.html#contents">[Contents]</a> <a href="chap3.html">[Previous Chapter]</a> <a href="chap5.html">[Next Chapter]</a> </div>
<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a> <a href="chap1.html">1</a> <a href="chap2.html">2</a> <a href="chap3.html">3</a> <a href="chap4.html">4</a> <a href="chap5.html">5</a> <a href="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.18 Sekunden
¤
*© Formatika GbR, Deutschland
|
|