Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/loops/data/rcc/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 29.7.2024 mit Größe 2 kB image not shown  

Quelle  chap4_mj.html   Sprache: unbekannt

 
<?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>
<script type="text/javascript"
  src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<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_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a href="chap2_mj.html">2</a>  <a href="chap3_mj.html">3</a>  <a href="chap4_mj.html">4</a>  <a href="chap5_mj.html">5</a>  <a href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.html">Ind</a>  </div>

<div class="chlinkprevnexttop"> <a href="chap0_mj.html">[Top of Book]</a>   <a href="chap0_mj.html#contents">[Contents]</a>    <a href="chap3_mj.html">[Previous Chapter]</a>    <a href="chap5_mj.html">[Next Chapter]</a>   </div>

<p id="mathjaxlink" class="pcenter"><a href="chap4.html">[MathJax off]</a></p>
<p><a id="X808C6B357F8BADC1" name="X808C6B357F8BADC1"></a></p>
<div class="ChapSects"><a href="chap4_mj.html#X808C6B357F8BADC1">4 <span class="Heading">Crossed modules</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap4_mj.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_mj.html#X813D94F97D8E71A8">4.1-1 XModAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4_mj.html#X7B31475D7C030075">4.1-2 XModAlgebraByIdeal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4_mj.html#X7CD49D5A84FB05FC">4.1-3 AugmentationXMod</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4_mj.html#X83C5D98B828DD1DD">4.1-4 Source</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4_mj.html#X814C89667B997FE8">4.1-5 XModAlgebraByMultiplierAlgebra</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4_mj.html#X824D4DD88323EF70">4.1-6 XModAlgebraBySurjection</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4_mj.html#X7AB09A158148290F">4.1-7 XModAlgebraByBoundaryAndAction</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4_mj.html#X78400B837A2C8FB9">4.1-8 XModAlgebraByModule</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4_mj.html#X7CA213397B334CBC">4.1-9 SubXModAlgebra</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap4_mj.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_mj.html#X7D575D07810640EB">4.2-1 XModAlgebraMorphism</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4_mj.html#X83F45A3E8554ABE9">4.2-2 Kernel</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4_mj.html#X87F4D35A826599C6">4.2-3 Image</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap4_mj.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">\(\mathcal{X}:=(\partial:S\rightarrow R)\)</span> with a left action of <span class="SimpleMath">\(R\)</span> on <span class="SimpleMath">\(S\)</span> satisfying</p>

<p class="center">\[
{\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^{\prime }\in S, \ r\in R\)</span>. The morphism <span class="SimpleMath">\(\partial\)</span> is called the <em>boundary map</em> of <span class="SimpleMath">\(\mathcal{X}\)</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_mj.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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">\(\mathcal{X} = (inc:I\rightarrow 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">\(\mathcal{X} = (\partial : S \rightarrow R)\)</span>, it is the case that <span class="SimpleMath">\({\partial(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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">\(\mathcal{X}\)</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">\(\mathcal{X}\)</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">\(\mathcal{X}\)</span>;</p>

</li>
<li><p><code class="code">Size2d(X)</code> for a crossed module <span class="SimpleMath">\(\mathcal{X}\)</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">\(\mathcal{X}\)</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">\(\mathcal{X}\)</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_{5}D_{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">‣ 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 \to M, ~ a \mapsto \mu_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">‣ XModAlgebraBySurjection</code>( <var class="Arg">f</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Let <span class="SimpleMath">\(\partial : S\rightarrow 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\cdot s = \widetilde{r}s\)</span> where <span class="SimpleMath">\(\widetilde{r} \in \partial^{-1}(r)\)</span>, as described in section <code class="func">AlgebraActionBySurjection</code> (<a href="chap2_mj.html#X7EAF09677CAE12D5"><span class="RefLink">2.2-3</span></a>). Then <span class="SimpleMath">\(\mathcal{X}=(\partial : S\rightarrow 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">‣ 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">‣ 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_mj.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">‣ 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">\(\mathcal{X} = (0 : A(M) \rightarrow 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_mj.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_mj.html#X7C1C8B987B2167B9"><span class="RefLink">2.3-4</span></a>.</p>

<p>Conversely, given a crossed module <span class="SimpleMath">\(\mathcal{X} = (\partial :M\rightarrow R)\)</span>, one can get that <span class="SimpleMath">\(\ker\partial\)</span> is a <span class="SimpleMath">\((R/\partial 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">‣ 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">‣ 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">\(\mathcal{X}^{\prime } = (\partial ^{\prime }:S^{\prime}\rightarrow R^{\prime })\)</span> is a subcrossed module of the crossed module <span class="SimpleMath">\(\mathcal{X} = (\partial :S\rightarrow R)\)</span> if <span class="SimpleMath">\(S^{\prime }\leq S\)</span>, <span class="SimpleMath">\(R^{\prime}\leq R\)</span>, <span class="SimpleMath">\(\partial^{\prime } = \partial|_{S^{\prime }}\)</span>, and the action of <span class="SimpleMath">\(S^{\prime }\)</span> on <span class="SimpleMath">\(R^{\prime }\)</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">\(\mathcal{X} = (\partial:S\rightarrow R)\)</span> and <span class="SimpleMath">\(\mathcal{X}^{\prime} = (\partial^{\prime }:S^{\prime }\rightarrow R^{\prime })\)</span> be (pre)crossed modules and let <span class="SimpleMath">\(\theta :S\rightarrow S^{\prime }\)</span>, <span class="SimpleMath">\(\varphi : R\rightarrow R^{\prime }\)</span> be algebra homomorphisms. Then if</p>

<p class="center">\[
\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\in R\)</span>, <span class="SimpleMath">\(s\in S,\)</span> the pair <span class="SimpleMath">\((\theta ,\varphi )\)</span> is called a morphism between <span class="SimpleMath">\(\mathcal{X}\)</span> and <span class="SimpleMath">\(\mathcal{X}^{\prime } \)</span></p>

<p>The conditions can be thought as the commutativity of the following diagrams:</p>

<p class="center">\[
\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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ 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">‣ Kernel</code>( <var class="Arg">mor</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Let <span class="SimpleMath">\((\theta,\varphi) : \mathcal{X} = (\partial : S \rightarrow R) \rightarrow \mathcal{X}^{\prime} = (\partial^{\prime} : S^{\prime} \rightarrow R^{\prime})\)</span> be a crossed module homomorphism. Then the crossed module</p>

<p class="center">\[
\ker(\theta,\varphi) = (\partial| : \ker\theta \rightarrow \ker\varphi )
\]</p>

<p>is called the <em>kernel</em> of <span class="SimpleMath">\((\theta,\varphi)\)</span>. Also, <span class="SimpleMath">\(\ker(\theta ,\varphi )\)</span> is an ideal of <span class="SimpleMath">\(\mathcal{X}\)</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">‣ Image</code>( <var class="Arg">mor</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Let <span class="SimpleMath">\((\theta,\varphi) : \mathcal{X} = (\partial : S \rightarrow R) \rightarrow \mathcal{X}^{\prime} = (\partial^{\prime} : S^{\prime} \rightarrow R^{\prime})\)</span> be a crossed module homomorphism. Then the crossed module</p>

<p class="center">\[ 
\Im(\theta,\varphi) = (\partial^{\prime}| : 
\Im\theta \rightarrow \Im\varphi)
\]</p>

<p>is called the image of <span class="SimpleMath">\((\theta,\varphi)\)</span>. Further, <span class="SimpleMath">\(\Im(\theta,\varphi)\)</span> is a subcrossed module of <span class="SimpleMath">\((S^{\prime},R^{\prime},\partial^{\prime})\)</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">‣ 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">‣ 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">‣ 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">‣ 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">‣ IsBijjective</code>( <var class="Arg">mor</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Let <span class="SimpleMath">\((\theta,\varphi)\)</span> be a homomorphism of crossed modules. If the homomorphisms <span class="SimpleMath">\(\theta\)</span> and <span class="SimpleMath">\(\varphi\)</span> are injective (surjective) then <span class="SimpleMath">\((\theta,\varphi)\)</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">\(\theta\)</span> and <span class="SimpleMath">\(\varphi\)</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_mj.html">[Top of Book]</a>   <a href="chap0_mj.html#contents">[Contents]</a>    <a href="chap3_mj.html">[Previous Chapter]</a>    <a href="chap5_mj.html">[Next Chapter]</a>   </div>


<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a href="chap2_mj.html">2</a>  <a href="chap3_mj.html">3</a>  <a href="chap4_mj.html">4</a>  <a href="chap5_mj.html">5</a>  <a href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.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>

99%


[ zur Elbe Produktseite wechseln0.17Quellennavigators  Analyse erneut starten  ]