Welcome To Our Shell

Mister Spy & Souheyl Bypass Shell

Current Path : /usr/share/gap/doc/ref/

Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
Upload File :
Current File : //usr/share/gap/doc/ref/chap57.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 (ref) - Chapter 57: 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="chap57"  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="chap16.html">16</a>  <a href="chap17.html">17</a>  <a href="chap18.html">18</a>  <a href="chap19.html">19</a>  <a href="chap20.html">20</a>  <a href="chap21.html">21</a>  <a href="chap22.html">22</a>  <a href="chap23.html">23</a>  <a href="chap24.html">24</a>  <a href="chap25.html">25</a>  <a href="chap26.html">26</a>  <a href="chap27.html">27</a>  <a href="chap28.html">28</a>  <a href="chap29.html">29</a>  <a href="chap30.html">30</a>  <a href="chap31.html">31</a>  <a href="chap32.html">32</a>  <a href="chap33.html">33</a>  <a href="chap34.html">34</a>  <a href="chap35.html">35</a>  <a href="chap36.html">36</a>  <a href="chap37.html">37</a>  <a href="chap38.html">38</a>  <a href="chap39.html">39</a>  <a href="chap40.html">40</a>  <a href="chap41.html">41</a>  <a href="chap42.html">42</a>  <a href="chap43.html">43</a>  <a href="chap44.html">44</a>  <a href="chap45.html">45</a>  <a href="chap46.html">46</a>  <a href="chap47.html">47</a>  <a href="chap48.html">48</a>  <a href="chap49.html">49</a>  <a href="chap50.html">50</a>  <a href="chap51.html">51</a>  <a href="chap52.html">52</a>  <a href="chap53.html">53</a>  <a href="chap54.html">54</a>  <a href="chap55.html">55</a>  <a href="chap56.html">56</a>  <a href="chap57.html">57</a>  <a href="chap58.html">58</a>  <a href="chap59.html">59</a>  <a href="chap60.html">60</a>  <a href="chap61.html">61</a>  <a href="chap62.html">62</a>  <a href="chap63.html">63</a>  <a href="chap64.html">64</a>  <a href="chap65.html">65</a>  <a href="chap66.html">66</a>  <a href="chap67.html">67</a>  <a href="chap68.html">68</a>  <a href="chap69.html">69</a>  <a href="chap70.html">70</a>  <a href="chap71.html">71</a>  <a href="chap72.html">72</a>  <a href="chap73.html">73</a>  <a href="chap74.html">74</a>  <a href="chap75.html">75</a>  <a href="chap76.html">76</a>  <a href="chap77.html">77</a>  <a href="chap78.html">78</a>  <a href="chap79.html">79</a>  <a href="chap80.html">80</a>  <a href="chap81.html">81</a>  <a href="chap82.html">82</a>  <a href="chap83.html">83</a>  <a href="chap84.html">84</a>  <a href="chap85.html">85</a>  <a href="chap86.html">86</a>  <a href="chap87.html">87</a>  <a href="chapBib.html">Bib</a>  <a href="chapInd.html">Ind</a>  </div>

<div class="chlinkprevnexttop">&nbsp;<a href="chap0.html">[Top of Book]</a>&nbsp;  <a href="chap0.html#contents">[Contents]</a>&nbsp;  &nbsp;<a href="chap56.html">[Previous Chapter]</a>&nbsp;  &nbsp;<a href="chap58.html">[Next Chapter]</a>&nbsp;  </div>

<p id="mathjaxlink" class="pcenter"><a href="chap57_mj.html">[MathJax on]</a></p>
<p><a id="X8183A6857B0C3633" name="X8183A6857B0C3633"></a></p>
<div class="ChapSects"><a href="chap57.html#X8183A6857B0C3633">57 <span class="Heading">Modules</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap57.html#X87A33EFD7CC179C1">57.1 <span class="Heading">Generating modules</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X7C62FE5282E9C505">57.1-1 IsLeftOperatorAdditiveGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X7ED323027B291BDF">57.1-2 IsLeftModule</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X7F76B1FD84775025">57.1-3 GeneratorsOfLeftOperatorAdditiveGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X7C7684EF867323C2">57.1-4 GeneratorsOfLeftModule</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X7EB3E46D7BC4A35C">57.1-5 AsLeftModule</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X7F19AD3D799D0469">57.1-6 IsRightOperatorAdditiveGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X8479A5AA7DF25F50">57.1-7 IsRightModule</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X7DBC4BCB876EEE1C">57.1-8 GeneratorsOfRightOperatorAdditiveGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X8586A83B85F176F6">57.1-9 GeneratorsOfRightModule</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X79ED1D7D7F0AE59A">57.1-10 LeftModuleByGenerators</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X86F070E0807DC34E">57.1-11 LeftActingDomain</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap57.html#X7934FAE97B6D2AD8">57.2 <span class="Heading">Submodules</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X8465103F874BC07B">57.2-1 Submodule</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X83CF3AD18050C982">57.2-2 SubmoduleNC</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X7C68C4E287481EC0">57.2-3 ClosureLeftModule</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X7980BC20856B2B7D">57.2-4 TrivialSubmodule</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap57.html#X85BD57F27F513D3E">57.3 <span class="Heading">Free Modules</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X7C4832187F3D9228">57.3-1 IsFreeLeftModule</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X7C043E307E344AEE">57.3-2 FreeLeftModule</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X7E6926C6850E7C4E">57.3-3 Dimension</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X802DB9FB824B0167">57.3-4 IsFiniteDimensional</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X7909E8E785420F0E">57.3-5 UseBasis</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X7C8F844783F4FA09">57.3-6 IsRowModule</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X81FCC1D780435CF1">57.3-7 IsMatrixModule</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X853E085C868196EF">57.3-8 IsFullRowModule</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X848041A47BC4B038">57.3-9 FullRowModule</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X814CEA62842CF5BB">57.3-10 IsFullMatrixModule</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap57.html#X7A0C871B7C446F1F">57.3-11 FullMatrixModule</a></span>
</div></div>
</div>

<h3>57 <span class="Heading">Modules</span></h3>

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

<h4>57.1 <span class="Heading">Generating modules</span></h4>

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

<h5>57.1-1 IsLeftOperatorAdditiveGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsLeftOperatorAdditiveGroup</code>( <var class="Arg">D</var> )</td><td class="tdright">(&nbsp;category&nbsp;)</td></tr></table></div>
<p>A domain <var class="Arg">D</var> lies in <code class="code">IsLeftOperatorAdditiveGroup</code> if it is an additive group that is closed under scalar multiplication from the left, and such that <span class="SimpleMath">λ * ( x + y ) = λ * x + λ * y</span> for all scalars <span class="SimpleMath">λ</span> and elements <span class="SimpleMath">x, y ∈ D</span> (here and below by scalars we mean elements of a domain acting on <var class="Arg">D</var> from left or right as appropriate).</p>

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

<h5>57.1-2 IsLeftModule</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsLeftModule</code>( <var class="Arg">M</var> )</td><td class="tdright">(&nbsp;category&nbsp;)</td></tr></table></div>
<p>A domain <var class="Arg">M</var> lies in <code class="code">IsLeftModule</code> if it lies in <code class="code">IsLeftOperatorAdditiveGroup</code>, <em>and</em> the set of scalars forms a ring, <em>and</em> <span class="SimpleMath">(λ + μ) * x = λ * x + μ * x</span> for scalars <span class="SimpleMath">λ, μ</span> and <span class="SimpleMath">x ∈ M</span>, <em>and</em> scalar multiplication satisfies <span class="SimpleMath">λ * (μ * x) = (λ * μ) * x</span> for scalars <span class="SimpleMath">λ, μ</span> and <span class="SimpleMath">x ∈ M</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">V:= FullRowSpace( Rationals, 3 );</span>
( Rationals^3 )
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">IsLeftModule( V );</span>
true
</pre></div>

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

<h5>57.1-3 GeneratorsOfLeftOperatorAdditiveGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; GeneratorsOfLeftOperatorAdditiveGroup</code>( <var class="Arg">D</var> )</td><td class="tdright">(&nbsp;attribute&nbsp;)</td></tr></table></div>
<p>returns a list of elements of <var class="Arg">D</var> that generates <var class="Arg">D</var> as a left operator additive group.</p>

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

<h5>57.1-4 GeneratorsOfLeftModule</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; GeneratorsOfLeftModule</code>( <var class="Arg">M</var> )</td><td class="tdright">(&nbsp;attribute&nbsp;)</td></tr></table></div>
<p>returns a list of elements of <var class="Arg">M</var> that generate <var class="Arg">M</var> as a left module.</p>


<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">V:= FullRowSpace( Rationals, 3 );;</span>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">GeneratorsOfLeftModule( V );</span>
[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ]
</pre></div>

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

<h5>57.1-5 AsLeftModule</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; AsLeftModule</code>( <var class="Arg">R</var>, <var class="Arg">D</var> )</td><td class="tdright">(&nbsp;operation&nbsp;)</td></tr></table></div>
<p>if the domain <var class="Arg">D</var> forms an additive group and is closed under left multiplication by the elements of <var class="Arg">R</var>, then <code class="code">AsLeftModule( <var class="Arg">R</var>, <var class="Arg">D</var> )</code> returns the domain <var class="Arg">D</var> viewed as a left module.</p>


<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">coll:= [[0*Z(2),0*Z(2)], [Z(2),0*Z(2)], [0*Z(2),Z(2)], [Z(2),Z(2)]];</span>
[ [ 0*Z(2), 0*Z(2) ], [ Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0 ], 
  [ Z(2)^0, Z(2)^0 ] ]
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">AsLeftModule( GF(2), coll );</span>
&lt;vector space of dimension 2 over GF(2)&gt;
</pre></div>

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

<h5>57.1-6 IsRightOperatorAdditiveGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsRightOperatorAdditiveGroup</code>( <var class="Arg">D</var> )</td><td class="tdright">(&nbsp;category&nbsp;)</td></tr></table></div>
<p>A domain <var class="Arg">D</var> lies in <code class="code">IsRightOperatorAdditiveGroup</code> if it is an additive group that is closed under scalar multiplication from the right, and such that <span class="SimpleMath">( x + y ) * λ = x * λ + y * λ</span> for all scalars <span class="SimpleMath">λ</span> and elements <span class="SimpleMath">x, y ∈ D</span>.</p>

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

<h5>57.1-7 IsRightModule</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsRightModule</code>( <var class="Arg">M</var> )</td><td class="tdright">(&nbsp;category&nbsp;)</td></tr></table></div>
<p>A domain <var class="Arg">M</var> lies in <code class="code">IsRightModule</code> if it lies in <code class="code">IsRightOperatorAdditiveGroup</code>, <em>and</em> the set of scalars forms a ring, <em>and</em> <span class="SimpleMath">x * (λ + μ) = x * λ + x * μ</span> for scalars <span class="SimpleMath">λ, μ</span> and <span class="SimpleMath">x ∈ M</span>, <em>and</em> scalar multiplication satisfies <span class="SimpleMath">(x * μ) * λ = x * (μ * λ)</span> for scalars <span class="SimpleMath">λ, μ</span> and <span class="SimpleMath">x ∈ M</span>.</p>

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

<h5>57.1-8 GeneratorsOfRightOperatorAdditiveGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; GeneratorsOfRightOperatorAdditiveGroup</code>( <var class="Arg">D</var> )</td><td class="tdright">(&nbsp;attribute&nbsp;)</td></tr></table></div>
<p>returns a list of elements of <var class="Arg">D</var> that generates <var class="Arg">D</var> as a right operator additive group.</p>

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

<h5>57.1-9 GeneratorsOfRightModule</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; GeneratorsOfRightModule</code>( <var class="Arg">M</var> )</td><td class="tdright">(&nbsp;attribute&nbsp;)</td></tr></table></div>
<p>returns a list of elements of <var class="Arg">M</var> that generate <var class="Arg">M</var> as a left module.</p>

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

<h5>57.1-10 LeftModuleByGenerators</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LeftModuleByGenerators</code>( <var class="Arg">R</var>, <var class="Arg">gens</var>[, <var class="Arg">zero</var>] )</td><td class="tdright">(&nbsp;operation&nbsp;)</td></tr></table></div>
<p>returns the left module over <var class="Arg">R</var> generated by <var class="Arg">gens</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">coll:= [ [Z(2),0*Z(2)], [0*Z(2),Z(2)], [Z(2),Z(2)] ];;</span>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">V:= LeftModuleByGenerators( GF(16), coll );</span>
&lt;vector space over GF(2^4), with 3 generators&gt;
</pre></div>

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

<h5>57.1-11 LeftActingDomain</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LeftActingDomain</code>( <var class="Arg">D</var> )</td><td class="tdright">(&nbsp;attribute&nbsp;)</td></tr></table></div>
<p>Let <var class="Arg">D</var> be an external left set, that is, <var class="Arg">D</var> is closed under the action of a domain <span class="SimpleMath">L</span> by multiplication from the left. Then <span class="SimpleMath">L</span> can be accessed as value of <code class="code">LeftActingDomain</code> for <var class="Arg">D</var>.</p>

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

<h4>57.2 <span class="Heading">Submodules</span></h4>

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

<h5>57.2-1 Submodule</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; Submodule</code>( <var class="Arg">M</var>, <var class="Arg">gens</var>[, <var class="Arg">"basis"</var>] )</td><td class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
<p>is the left module generated by the collection <var class="Arg">gens</var>, with parent module <var class="Arg">M</var>. If the string <code class="code">"basis"</code> is entered as the third argument then the submodule of <var class="Arg">M</var> is created for which the list <var class="Arg">gens</var> is known to be a list of basis vectors; in this case, it is <em>not</em> checked whether <var class="Arg">gens</var> really is linearly independent and whether all in <var class="Arg">gens</var> lie in <var class="Arg">M</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">coll:= [ [Z(2),0*Z(2)], [0*Z(2),Z(2)], [Z(2),Z(2)] ];;</span>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">V:= LeftModuleByGenerators( GF(16), coll );;</span>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">W:= Submodule( V, [ coll[1], coll[2] ] );</span>
&lt;vector space over GF(2^4), with 2 generators&gt;
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">Parent( W ) = V;</span>
true
</pre></div>

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

<h5>57.2-2 SubmoduleNC</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; SubmoduleNC</code>( <var class="Arg">M</var>, <var class="Arg">gens</var>[, <var class="Arg">"basis"</var>] )</td><td class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
<p><code class="func">SubmoduleNC</code> does the same as <code class="func">Submodule</code> (<a href="chap57.html#X8465103F874BC07B"><span class="RefLink">57.2-1</span></a>), except that it does not check whether all in <var class="Arg">gens</var> lie in <var class="Arg">M</var>.</p>

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

<h5>57.2-3 ClosureLeftModule</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; ClosureLeftModule</code>( <var class="Arg">M</var>, <var class="Arg">m</var> )</td><td class="tdright">(&nbsp;operation&nbsp;)</td></tr></table></div>
<p>is the left module generated by the left module generators of <var class="Arg">M</var> and the element <var class="Arg">m</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">V:= LeftModuleByGenerators(Rationals, [ [ 1, 0, 0 ], [ 0, 1, 0 ] ]);</span>
&lt;vector space over Rationals, with 2 generators&gt;
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">ClosureLeftModule( V, [ 1, 1, 1 ] );</span>
&lt;vector space over Rationals, with 3 generators&gt;
</pre></div>

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

<h5>57.2-4 TrivialSubmodule</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; TrivialSubmodule</code>( <var class="Arg">M</var> )</td><td class="tdright">(&nbsp;attribute&nbsp;)</td></tr></table></div>
<p>returns the zero submodule of <var class="Arg">M</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">V:= LeftModuleByGenerators(Rationals, [[ 1, 0, 0 ], [ 0, 1, 0 ]]);;</span>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">TrivialSubmodule( V );</span>
&lt;vector space over Rationals, with 0 generators&gt;
</pre></div>

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

<h4>57.3 <span class="Heading">Free Modules</span></h4>

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

<h5>57.3-1 IsFreeLeftModule</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsFreeLeftModule</code>( <var class="Arg">M</var> )</td><td class="tdright">(&nbsp;category&nbsp;)</td></tr></table></div>
<p>A left module is free as module if it is isomorphic to a direct sum of copies of its left acting domain.</p>

<p>Free left modules can have bases.</p>

<p>The characteristic (see <code class="func">Characteristic</code> (<a href="chap31.html#X81278E53800BF64D"><span class="RefLink">31.10-1</span></a>)) of a free left module is defined as the characteristic of its left acting domain (see <code class="func">LeftActingDomain</code> (<a href="chap57.html#X86F070E0807DC34E"><span class="RefLink">57.1-11</span></a>)).</p>

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

<h5>57.3-2 FreeLeftModule</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; FreeLeftModule</code>( <var class="Arg">R</var>, <var class="Arg">gens</var>[, <var class="Arg">zero</var>][, <var class="Arg">"basis"</var>] )</td><td class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
<p><code class="code">FreeLeftModule( <var class="Arg">R</var>, <var class="Arg">gens</var> )</code> is the free left module over the ring <var class="Arg">R</var>, generated by the vectors in the collection <var class="Arg">gens</var>.</p>

<p>If there are three arguments, a ring <var class="Arg">R</var> and a collection <var class="Arg">gens</var> and an element <var class="Arg">zero</var>, then <code class="code">FreeLeftModule( <var class="Arg">R</var>, <var class="Arg">gens</var>, <var class="Arg">zero</var> )</code> is the <var class="Arg">R</var>-free left module generated by <var class="Arg">gens</var>, with zero element <var class="Arg">zero</var>.</p>

<p>If the last argument is the string <code class="code">"basis"</code> then the vectors in <var class="Arg">gens</var> are known to form a basis of the free module.</p>

<p>It should be noted that the generators <var class="Arg">gens</var> must be vectors, that is, they must support an addition and a scalar action of <var class="Arg">R</var> via left multiplication. (See also Section <a href="chap31.html#X82039A218274826F"><span class="RefLink">31.3</span></a> for the general meaning of "generators" in <strong class="pkg">GAP</strong>.) In particular, <code class="func">FreeLeftModule</code> is <em>not</em> an equivalent of commands such as <code class="func">FreeGroup</code> (<a href="chap37.html#X8215999E835290F0"><span class="RefLink">37.2-1</span></a>) in the sense of a constructor of a free group on abstract generators. Such a construction seems to be unnecessary for vector spaces, for that one can use for example row spaces (see <code class="func">FullRowSpace</code> (<a href="chap61.html#X80209A8785126AAB"><span class="RefLink">61.9-4</span></a>)) in the finite dimensional case and polynomial rings (see <code class="func">PolynomialRing</code> (<a href="chap66.html#X7D2F16E480060330"><span class="RefLink">66.15-1</span></a>)) in the infinite dimensional case. Moreover, the definition of a "natural" addition for elements of a given magma (for example a permutation group) is possible via the construction of magma rings (see Chapter <a href="chap65.html#X825897DC7A16E07D"><span class="RefLink">65</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">V:= FreeLeftModule(Rationals, [[ 1, 0, 0 ], [ 0, 1, 0 ]], "basis");</span>
&lt;vector space of dimension 2 over Rationals&gt;
</pre></div>

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

<h5>57.3-3 Dimension</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; Dimension</code>( <var class="Arg">M</var> )</td><td class="tdright">(&nbsp;attribute&nbsp;)</td></tr></table></div>
<p>A free left module has dimension <span class="SimpleMath">n</span> if it is isomorphic to a direct sum of <span class="SimpleMath">n</span> copies of its left acting domain.</p>

<p>(We do <em>not</em> mark <code class="func">Dimension</code> as invariant under isomorphisms since we want to call <code class="func">UseIsomorphismRelation</code> (<a href="chap31.html#X839BE6467E8474D9"><span class="RefLink">31.13-3</span></a>) also for free left modules over different left acting domains.)</p>


<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">V:= FreeLeftModule( Rationals, [ [ 1, 0 ], [ 0, 1 ], [ 1, 1 ] ] );;</span>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">Dimension( V );</span>
2
</pre></div>

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

<h5>57.3-4 IsFiniteDimensional</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsFiniteDimensional</code>( <var class="Arg">M</var> )</td><td class="tdright">(&nbsp;property&nbsp;)</td></tr></table></div>
<p>is <code class="keyw">true</code> if <var class="Arg">M</var> is a free left module that is finite dimensional over its left acting domain, and <code class="keyw">false</code> otherwise.</p>


<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">V:= FreeLeftModule( Rationals, [ [ 1, 0 ], [ 0, 1 ], [ 1, 1 ] ] );;</span>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">IsFiniteDimensional( V );</span>
true
</pre></div>

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

<h5>57.3-5 UseBasis</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; UseBasis</code>( <var class="Arg">V</var>, <var class="Arg">gens</var> )</td><td class="tdright">(&nbsp;operation&nbsp;)</td></tr></table></div>
<p>The vectors in the list <var class="Arg">gens</var> are known to form a basis of the free left module <var class="Arg">V</var>. <code class="func">UseBasis</code> stores information in <var class="Arg">V</var> that can be derived form this fact, namely</p>


<ul>
<li><p><var class="Arg">gens</var> are stored as left module generators if no such generators were bound (this is useful especially if <var class="Arg">V</var> is an algebra),</p>

</li>
<li><p>the dimension of <var class="Arg">V</var> is stored.</p>

</li>
</ul>

<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">V:= FreeLeftModule( Rationals, [ [ 1, 0 ], [ 0, 1 ], [ 1, 1 ] ] );;</span>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">UseBasis( V, [ [ 1, 0 ], [ 1, 1 ] ] );</span>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">V;  # now V knows its dimension</span>
&lt;vector space of dimension 2 over Rationals&gt;
</pre></div>

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

<h5>57.3-6 IsRowModule</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsRowModule</code>( <var class="Arg">V</var> )</td><td class="tdright">(&nbsp;property&nbsp;)</td></tr></table></div>
<p>A <em>row module</em> is a free left module whose elements are row vectors.</p>

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

<h5>57.3-7 IsMatrixModule</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsMatrixModule</code>( <var class="Arg">V</var> )</td><td class="tdright">(&nbsp;property&nbsp;)</td></tr></table></div>
<p>A <em>matrix module</em> is a free left module whose elements are matrices.</p>

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

<h5>57.3-8 IsFullRowModule</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsFullRowModule</code>( <var class="Arg">M</var> )</td><td class="tdright">(&nbsp;property&nbsp;)</td></tr></table></div>
<p>A <em>full row module</em> is a module <span class="SimpleMath">R^n</span>, for a ring <span class="SimpleMath">R</span> and a nonnegative integer <span class="SimpleMath">n</span>.</p>

<p>More precisely, a full row module is a free left module over a ring <span class="SimpleMath">R</span> such that the elements are row vectors of the same length <span class="SimpleMath">n</span> and with entries in <span class="SimpleMath">R</span> and such that the dimension is equal to <span class="SimpleMath">n</span>.</p>

<p>Several functions delegate their tasks to full row modules, for example <code class="func">Iterator</code> (<a href="chap30.html#X83ADF8287ED0668E"><span class="RefLink">30.8-1</span></a>) and <code class="func">Enumerator</code> (<a href="chap30.html#X7EF8910F82B45EC7"><span class="RefLink">30.3-2</span></a>).</p>

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

<h5>57.3-9 FullRowModule</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; FullRowModule</code>( <var class="Arg">R</var>, <var class="Arg">n</var> )</td><td class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
<p>is the row module <code class="code"><var class="Arg">R</var>^<var class="Arg">n</var></code>, for a ring <var class="Arg">R</var> and a nonnegative integer <var class="Arg">n</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">V:= FullRowModule( Integers, 5 );</span>
( Integers^5 )
</pre></div>

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

<h5>57.3-10 IsFullMatrixModule</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsFullMatrixModule</code>( <var class="Arg">M</var> )</td><td class="tdright">(&nbsp;property&nbsp;)</td></tr></table></div>
<p>A <em>full matrix module</em> is a module <span class="SimpleMath">R^{[m,n]}</span>, for a ring <span class="SimpleMath">R</span> and two nonnegative integers <span class="SimpleMath">m</span>, <span class="SimpleMath">n</span>.</p>

<p>More precisely, a full matrix module is a free left module over a ring <span class="SimpleMath">R</span> such that the elements are <span class="SimpleMath">m</span> by <span class="SimpleMath">n</span> matrices with entries in <span class="SimpleMath">R</span> and such that the dimension is equal to <span class="SimpleMath">m n</span>.</p>

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

<h5>57.3-11 FullMatrixModule</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; FullMatrixModule</code>( <var class="Arg">R</var>, <var class="Arg">m</var>, <var class="Arg">n</var> )</td><td class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
<p>is the matrix module <code class="code"><var class="Arg">R</var>^[<var class="Arg">m</var>,<var class="Arg">n</var>]</code>, for a ring <var class="Arg">R</var> and nonnegative integers <var class="Arg">m</var> and <var class="Arg">n</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">FullMatrixModule( GaussianIntegers, 3, 6 );</span>
( GaussianIntegers^[ 3, 6 ] )
</pre></div>


<div class="chlinkprevnextbot">&nbsp;<a href="chap0.html">[Top of Book]</a>&nbsp;  <a href="chap0.html#contents">[Contents]</a>&nbsp;  &nbsp;<a href="chap56.html">[Previous Chapter]</a>&nbsp;  &nbsp;<a href="chap58.html">[Next Chapter]</a>&nbsp;  </div>


<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a>  <a href="chap1.html">1</a>  <a href="chap2.html">2</a>  <a href="chap3.html">3</a>  <a href="chap4.html">4</a>  <a href="chap5.html">5</a>  <a href="chap6.html">6</a>  <a href="chap7.html">7</a>  <a href="chap8.html">8</a>  <a href="chap9.html">9</a>  <a href="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="chap16.html">16</a>  <a href="chap17.html">17</a>  <a href="chap18.html">18</a>  <a href="chap19.html">19</a>  <a href="chap20.html">20</a>  <a href="chap21.html">21</a>  <a href="chap22.html">22</a>  <a href="chap23.html">23</a>  <a href="chap24.html">24</a>  <a href="chap25.html">25</a>  <a href="chap26.html">26</a>  <a href="chap27.html">27</a>  <a href="chap28.html">28</a>  <a href="chap29.html">29</a>  <a href="chap30.html">30</a>  <a href="chap31.html">31</a>  <a href="chap32.html">32</a>  <a href="chap33.html">33</a>  <a href="chap34.html">34</a>  <a href="chap35.html">35</a>  <a href="chap36.html">36</a>  <a href="chap37.html">37</a>  <a href="chap38.html">38</a>  <a href="chap39.html">39</a>  <a href="chap40.html">40</a>  <a href="chap41.html">41</a>  <a href="chap42.html">42</a>  <a href="chap43.html">43</a>  <a href="chap44.html">44</a>  <a href="chap45.html">45</a>  <a href="chap46.html">46</a>  <a href="chap47.html">47</a>  <a href="chap48.html">48</a>  <a href="chap49.html">49</a>  <a href="chap50.html">50</a>  <a href="chap51.html">51</a>  <a href="chap52.html">52</a>  <a href="chap53.html">53</a>  <a href="chap54.html">54</a>  <a href="chap55.html">55</a>  <a href="chap56.html">56</a>  <a href="chap57.html">57</a>  <a href="chap58.html">58</a>  <a href="chap59.html">59</a>  <a href="chap60.html">60</a>  <a href="chap61.html">61</a>  <a href="chap62.html">62</a>  <a href="chap63.html">63</a>  <a href="chap64.html">64</a>  <a href="chap65.html">65</a>  <a href="chap66.html">66</a>  <a href="chap67.html">67</a>  <a href="chap68.html">68</a>  <a href="chap69.html">69</a>  <a href="chap70.html">70</a>  <a href="chap71.html">71</a>  <a href="chap72.html">72</a>  <a href="chap73.html">73</a>  <a href="chap74.html">74</a>  <a href="chap75.html">75</a>  <a href="chap76.html">76</a>  <a href="chap77.html">77</a>  <a href="chap78.html">78</a>  <a href="chap79.html">79</a>  <a href="chap80.html">80</a>  <a href="chap81.html">81</a>  <a href="chap82.html">82</a>  <a href="chap83.html">83</a>  <a href="chap84.html">84</a>  <a href="chap85.html">85</a>  <a href="chap86.html">86</a>  <a href="chap87.html">87</a>  <a href="chapBib.html">Bib</a>  <a href="chapInd.html">Ind</a>  </div>

<hr />
<p class="foot">generated by <a href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>

bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped)
Email: contact@elmoujehidin.net bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped) Email: contact@elmoujehidin.net