
| 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 |
| Current File : //usr/share/gap/doc/ref/chap55_mj.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>
<script type="text/javascript"
src="mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (ref) - Chapter 55: Additive Magmas</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="chap55" 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="chap6_mj.html">6</a> <a href="chap7_mj.html">7</a> <a href="chap8_mj.html">8</a> <a href="chap9_mj.html">9</a> <a href="chap10_mj.html">10</a> <a href="chap11_mj.html">11</a> <a href="chap12_mj.html">12</a> <a href="chap13_mj.html">13</a> <a href="chap14_mj.html">14</a> <a href="chap15_mj.html">15</a> <a href="chap16_mj.html">16</a> <a href="chap17_mj.html">17</a> <a href="chap18_mj.html">18</a> <a href="chap19_mj.html">19</a> <a href="chap20_mj.html">20</a> <a href="chap21_mj.html">21</a> <a href="chap22_mj.html">22</a> <a href="chap23_mj.html">23</a> <a href="chap24_mj.html">24</a> <a href="chap25_mj.html">25</a> <a href="chap26_mj.html">26</a> <a href="chap27_mj.html">27</a> <a href="chap28_mj.html">28</a> <a href="chap29_mj.html">29</a> <a href="chap30_mj.html">30</a> <a href="chap31_mj.html">31</a> <a href="chap32_mj.html">32</a> <a href="chap33_mj.html">33</a> <a href="chap34_mj.html">34</a> <a href="chap35_mj.html">35</a> <a href="chap36_mj.html">36</a> <a href="chap37_mj.html">37</a> <a href="chap38_mj.html">38</a> <a href="chap39_mj.html">39</a> <a href="chap40_mj.html">40</a> <a href="chap41_mj.html">41</a> <a href="chap42_mj.html">42</a> <a href="chap43_mj.html">43</a> <a href="chap44_mj.html">44</a> <a href="chap45_mj.html">45</a> <a href="chap46_mj.html">46</a> <a href="chap47_mj.html">47</a> <a href="chap48_mj.html">48</a> <a href="chap49_mj.html">49</a> <a href="chap50_mj.html">50</a> <a href="chap51_mj.html">51</a> <a href="chap52_mj.html">52</a> <a href="chap53_mj.html">53</a> <a href="chap54_mj.html">54</a> <a href="chap55_mj.html">55</a> <a href="chap56_mj.html">56</a> <a href="chap57_mj.html">57</a> <a href="chap58_mj.html">58</a> <a href="chap59_mj.html">59</a> <a href="chap60_mj.html">60</a> <a href="chap61_mj.html">61</a> <a href="chap62_mj.html">62</a> <a href="chap63_mj.html">63</a> <a href="chap64_mj.html">64</a> <a href="chap65_mj.html">65</a> <a href="chap66_mj.html">66</a> <a href="chap67_mj.html">67</a> <a href="chap68_mj.html">68</a> <a href="chap69_mj.html">69</a> <a href="chap70_mj.html">70</a> <a href="chap71_mj.html">71</a> <a href="chap72_mj.html">72</a> <a href="chap73_mj.html">73</a> <a href="chap74_mj.html">74</a> <a href="chap75_mj.html">75</a> <a href="chap76_mj.html">76</a> <a href="chap77_mj.html">77</a> <a href="chap78_mj.html">78</a> <a href="chap79_mj.html">79</a> <a href="chap80_mj.html">80</a> <a href="chap81_mj.html">81</a> <a href="chap82_mj.html">82</a> <a href="chap83_mj.html">83</a> <a href="chap84_mj.html">84</a> <a href="chap85_mj.html">85</a> <a href="chap86_mj.html">86</a> <a href="chap87_mj.html">87</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="chap54_mj.html">[Previous Chapter]</a> <a href="chap56_mj.html">[Next Chapter]</a> </div>
<p id="mathjaxlink" class="pcenter"><a href="chap55.html">[MathJax off]</a></p>
<p><a id="X7D0D096B81365B02" name="X7D0D096B81365B02"></a></p>
<div class="ChapSects"><a href="chap55_mj.html#X7D0D096B81365B02">55 <span class="Heading">Additive Magmas</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap55_mj.html#X82A4AB7B812B063B">55.1 <span class="Heading">(Near-)Additive Magma Categories</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X8129E95D83227658">55.1-1 IsNearAdditiveMagma</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X7DADE4577D0A7208">55.1-2 IsNearAdditiveMagmaWithZero</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X7FC3A9C178185942">55.1-3 IsNearAdditiveGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X8565FD0C847BAA3A">55.1-4 IsAdditiveMagma</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X785B41A67D791783">55.1-5 IsAdditiveMagmaWithZero</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X7B8FBD9082CE271B">55.1-6 IsAdditiveGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap55_mj.html#X7C39F9DE7CA22688">55.2 <span class="Heading">(Near-)Additive Magma Generation</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X79C947CF8060335A">55.2-1 NearAdditiveMagma</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X80F57FB47E1DB380">55.2-2 NearAdditiveMagmaWithZero</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X872307537ECC5755">55.2-3 NearAdditiveGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X85122CFD7BDAD668">55.2-4 NearAdditiveMagmaByGenerators</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X81880460851DEFBC">55.2-5 NearAdditiveMagmaWithZeroByGenerators</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X85F120B68576B267">55.2-6 NearAdditiveGroupByGenerators</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X7AA6092683FC0F9C">55.2-7 SubnearAdditiveMagma</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X784859197D89A548">55.2-8 SubnearAdditiveMagmaWithZero</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X844C49BA807AB99F">55.2-9 SubnearAdditiveGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap55_mj.html#X799E6CC28737BF1B">55.3 <span class="Heading">Attributes and Properties for (Near-)Additive Magmas</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X82D471327A9CA960">55.3-1 IsAdditivelyCommutative</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X804B178884002A40">55.3-2 GeneratorsOfNearAdditiveMagma</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X7EB9ABF880DCAE01">55.3-3 GeneratorsOfNearAdditiveMagmaWithZero</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X7EA15714795D71CF">55.3-4 GeneratorsOfNearAdditiveGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X851EA2E67F0C9A75">55.3-5 AdditiveNeutralElement</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X78FB0A5C86DC86F9">55.3-6 TrivialSubnearAdditiveMagmaWithZero</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap55_mj.html#X7BB03781863BE4EB">55.4 <span class="Heading">Operations for (Near-)Additive Magmas</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X845E915B87D2AC16">55.4-1 <span class="Heading">ClosureNearAdditiveGroup</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap55_mj.html#X8142D994794B700A">55.4-2 ShowAdditionTable</a></span>
</div></div>
</div>
<h3>55 <span class="Heading">Additive Magmas</span></h3>
<p>This chapter deals with domains that are closed under addition <code class="code">+</code>, which are called <em>near-additive magmas</em> in <strong class="pkg">GAP</strong>. Together with the domains closed under multiplication <code class="code">*</code> (see <a href="chap35_mj.html#X873E502F7D21C39C"><span class="RefLink">35</span></a>), they are the basic algebraic structures. In many cases, the addition is commutative (see <code class="func">IsAdditivelyCommutative</code> (<a href="chap55_mj.html#X82D471327A9CA960"><span class="RefLink">55.3-1</span></a>)), the domain is called an <em>additive magma</em> then. Every module (see <a href="chap57_mj.html#X8183A6857B0C3633"><span class="RefLink">57</span></a>), vector space (see <a href="chap61_mj.html#X7DAD6700787EC845"><span class="RefLink">61</span></a>), ring (see <a href="chap56_mj.html#X81897F6082CACB59"><span class="RefLink">56</span></a>), or field (see <a href="chap58_mj.html#X80A8E676814A19FD"><span class="RefLink">58</span></a>) is an additive magma. In the cases of all <em>(near-)additive magma-with-zero</em> or <em>(near-)additive magma-with-inverses</em>, additional additive structure is present (see <a href="chap55_mj.html#X82A4AB7B812B063B"><span class="RefLink">55.1</span></a>).</p>
<p><a id="X82A4AB7B812B063B" name="X82A4AB7B812B063B"></a></p>
<h4>55.1 <span class="Heading">(Near-)Additive Magma Categories</span></h4>
<p><a id="X8129E95D83227658" name="X8129E95D83227658"></a></p>
<h5>55.1-1 IsNearAdditiveMagma</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsNearAdditiveMagma</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<p>A <em>near-additive magma</em> in <strong class="pkg">GAP</strong> is a domain <span class="SimpleMath">\(A\)</span> with an associative but not necessarily commutative addition <code class="code">+</code><span class="SimpleMath">\(: A \times A \rightarrow A\)</span>.</p>
<p><a id="X7DADE4577D0A7208" name="X7DADE4577D0A7208"></a></p>
<h5>55.1-2 IsNearAdditiveMagmaWithZero</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsNearAdditiveMagmaWithZero</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<p>A <em>near-additive magma-with-zero</em> in <strong class="pkg">GAP</strong> is a near-additive magma <span class="SimpleMath">\(A\)</span> with an operation <code class="code">0*</code> (or <code class="func">Zero</code> (<a href="chap31_mj.html#X8040AC7A79FFC442"><span class="RefLink">31.10-3</span></a>)) that yields the zero element of <span class="SimpleMath">\(A\)</span>.</p>
<p>So a near-additive magma-with-zero <var class="Arg">A</var> does always contain a unique additively neutral element <span class="SimpleMath">\(z\)</span>, i.e., <span class="SimpleMath">\(z + a = a = a + z\)</span> holds for all <span class="SimpleMath">\(a \in A\)</span> (see <code class="func">AdditiveNeutralElement</code> (<a href="chap55_mj.html#X851EA2E67F0C9A75"><span class="RefLink">55.3-5</span></a>)). This zero element <span class="SimpleMath">\(z\)</span> can be computed with the operation <code class="func">Zero</code> (<a href="chap31_mj.html#X8040AC7A79FFC442"><span class="RefLink">31.10-3</span></a>), by applying this function to <span class="SimpleMath">\(A\)</span> or to any element <span class="SimpleMath">\(a\)</span> in <span class="SimpleMath">\(A\)</span>. The zero element can be computed also as <code class="code">0 * </code><span class="SimpleMath">\(a\)</span>, for any <span class="SimpleMath">\(a\)</span> in <span class="SimpleMath">\(A\)</span>.</p>
<p><em>Note</em> that it may happen that a near-additive magma containing a zero does <em>not</em> lie in the category <code class="func">IsNearAdditiveMagmaWithZero</code> (see <a href="chap31_mj.html#X7D72F11B82F4A036"><span class="RefLink">31.6</span></a>).</p>
<p><a id="X7FC3A9C178185942" name="X7FC3A9C178185942"></a></p>
<h5>55.1-3 IsNearAdditiveGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsNearAdditiveGroup</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsNearAdditiveMagmaWithInverses</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<p>A <em>near-additive group</em> in <strong class="pkg">GAP</strong> is a near-additive magma-with-zero <span class="SimpleMath">\(A\)</span> with an operation <code class="code">-1*</code><span class="SimpleMath">\(: A \rightarrow A\)</span> that maps each element <span class="SimpleMath">\(a\)</span> of <span class="SimpleMath">\(A\)</span> to its additive inverse <code class="code">-1*</code><span class="SimpleMath">\(a\)</span> (or <code class="code">AdditiveInverse( </code><var class="Arg">a</var><code class="code"> )</code>, see <code class="func">AdditiveInverse</code> (<a href="chap31_mj.html#X84BB723C81D55D63"><span class="RefLink">31.10-9</span></a>)).</p>
<p>The addition <code class="code">+</code> of <span class="SimpleMath">\(A\)</span> is assumed to be associative, so a near-additive group is not more than a <em>near-additive magma-with-inverses</em>. <code class="func">IsNearAdditiveMagmaWithInverses</code> is just a synonym for <code class="func">IsNearAdditiveGroup</code>, and can be used alternatively in all function names involving the string <code class="code">"NearAdditiveGroup"</code>.</p>
<p>Note that not every trivial near-additive magma is a near-additive magma-with-zero, but every trivial near-additive magma-with-zero is a near-additive group.</p>
<p><a id="X8565FD0C847BAA3A" name="X8565FD0C847BAA3A"></a></p>
<h5>55.1-4 IsAdditiveMagma</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsAdditiveMagma</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<p>An <em>additive magma</em> in <strong class="pkg">GAP</strong> is a domain <span class="SimpleMath">\(A\)</span> with an associative and commutative addition <code class="code">+</code><span class="SimpleMath">\(: A \times A \rightarrow A\)</span>, see <code class="func">IsNearAdditiveMagma</code> (<a href="chap55_mj.html#X8129E95D83227658"><span class="RefLink">55.1-1</span></a>) and <code class="func">IsAdditivelyCommutative</code> (<a href="chap55_mj.html#X82D471327A9CA960"><span class="RefLink">55.3-1</span></a>).</p>
<p><a id="X785B41A67D791783" name="X785B41A67D791783"></a></p>
<h5>55.1-5 IsAdditiveMagmaWithZero</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsAdditiveMagmaWithZero</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<p>An <em>additive magma-with-zero</em> in <strong class="pkg">GAP</strong> is an additive magma <span class="SimpleMath">\(A\)</span> (see <code class="func">IsAdditiveMagma</code> (<a href="chap55_mj.html#X8565FD0C847BAA3A"><span class="RefLink">55.1-4</span></a>) with an operation <code class="code">0*</code> (or <code class="func">Zero</code> (<a href="chap31_mj.html#X8040AC7A79FFC442"><span class="RefLink">31.10-3</span></a>)) that yields the zero of <span class="SimpleMath">\(A\)</span>.</p>
<p>So an additive magma-with-zero <span class="SimpleMath">\(A\)</span> does always contain a unique additively neutral element <span class="SimpleMath">\(z\)</span>, i.e., <span class="SimpleMath">\(z + a = a = a + z\)</span> holds for all <span class="SimpleMath">\(a \in A\)</span> (see <code class="func">AdditiveNeutralElement</code> (<a href="chap55_mj.html#X851EA2E67F0C9A75"><span class="RefLink">55.3-5</span></a>)). This element <span class="SimpleMath">\(z\)</span> can be computed with the operation <code class="func">Zero</code> (<a href="chap31_mj.html#X8040AC7A79FFC442"><span class="RefLink">31.10-3</span></a>) as <code class="code">Zero( </code><span class="SimpleMath">\(A\)</span><code class="code"> )</code>, and <span class="SimpleMath">\(z\)</span> is also equal to <code class="code">Zero( </code><span class="SimpleMath">\(a\)</span><code class="code"> )</code> and to <code class="code">0*</code><span class="SimpleMath">\(a\)</span> for each element <span class="SimpleMath">\(a\)</span> in <span class="SimpleMath">\(A\)</span>.</p>
<p><em>Note</em> that it may happen that an additive magma containing a zero does <em>not</em> lie in the category <code class="func">IsAdditiveMagmaWithZero</code> (see <a href="chap31_mj.html#X7D72F11B82F4A036"><span class="RefLink">31.6</span></a>).</p>
<p><a id="X7B8FBD9082CE271B" name="X7B8FBD9082CE271B"></a></p>
<h5>55.1-6 IsAdditiveGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsAdditiveGroup</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsAdditiveMagmaWithInverses</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<p>An <em>additive group</em> in <strong class="pkg">GAP</strong> is an additive magma-with-zero <span class="SimpleMath">\(A\)</span> with an operation <code class="code">-1*</code><span class="SimpleMath">\(: A \rightarrow A\)</span> that maps each element <span class="SimpleMath">\(a\)</span> of <span class="SimpleMath">\(A\)</span> to its additive inverse <code class="code">-1*</code><span class="SimpleMath">\(a\)</span> (or <code class="code">AdditiveInverse( </code><span class="SimpleMath">\(a\)</span><code class="code"> )</code>, see <code class="func">AdditiveInverse</code> (<a href="chap31_mj.html#X84BB723C81D55D63"><span class="RefLink">31.10-9</span></a>)).</p>
<p>The addition <code class="code">+</code> of <span class="SimpleMath">\(A\)</span> is assumed to be commutative and associative, so an additive group is not more than an <em>additive magma-with-inverses</em>. <code class="func">IsAdditiveMagmaWithInverses</code> is just a synonym for <code class="func">IsAdditiveGroup</code>, and can be used alternatively in all function names involving the string <code class="code">"AdditiveGroup"</code>.</p>
<p>Note that not every trivial additive magma is an additive magma-with-zero, but every trivial additive magma-with-zero is an additive group.</p>
<p><a id="X7C39F9DE7CA22688" name="X7C39F9DE7CA22688"></a></p>
<h4>55.2 <span class="Heading">(Near-)Additive Magma Generation</span></h4>
<p>This section describes functions that create additive magmas from generators (see <code class="func">NearAdditiveMagma</code> (<a href="chap55_mj.html#X79C947CF8060335A"><span class="RefLink">55.2-1</span></a>), <code class="func">NearAdditiveMagmaWithZero</code> (<a href="chap55_mj.html#X80F57FB47E1DB380"><span class="RefLink">55.2-2</span></a>), <code class="func">NearAdditiveGroup</code> (<a href="chap55_mj.html#X872307537ECC5755"><span class="RefLink">55.2-3</span></a>)), the underlying operations for which methods can be installed (see <code class="func">NearAdditiveMagmaByGenerators</code> (<a href="chap55_mj.html#X85122CFD7BDAD668"><span class="RefLink">55.2-4</span></a>), <code class="func">NearAdditiveMagmaWithZeroByGenerators</code> (<a href="chap55_mj.html#X81880460851DEFBC"><span class="RefLink">55.2-5</span></a>), <code class="func">NearAdditiveGroupByGenerators</code> (<a href="chap55_mj.html#X85F120B68576B267"><span class="RefLink">55.2-6</span></a>)) and functions for forming additive submagmas (see <code class="func">SubnearAdditiveMagma</code> (<a href="chap55_mj.html#X7AA6092683FC0F9C"><span class="RefLink">55.2-7</span></a>), <code class="func">SubnearAdditiveMagmaWithZero</code> (<a href="chap55_mj.html#X784859197D89A548"><span class="RefLink">55.2-8</span></a>), <code class="func">SubnearAdditiveGroup</code> (<a href="chap55_mj.html#X844C49BA807AB99F"><span class="RefLink">55.2-9</span></a>)).</p>
<p><a id="X79C947CF8060335A" name="X79C947CF8060335A"></a></p>
<h5>55.2-1 NearAdditiveMagma</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ NearAdditiveMagma</code>( [<var class="Arg">Fam</var>, ]<var class="Arg">gens</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>returns the (near-)additive magma <span class="SimpleMath">\(A\)</span> that is generated by the elements in the list <var class="Arg">gens</var>, that is, the closure of <var class="Arg">gens</var> under addition <code class="code">+</code>. The family <var class="Arg">Fam</var> of <span class="SimpleMath">\(A\)</span> can be entered as first argument; this is obligatory if <var class="Arg">gens</var> is empty (and hence also <span class="SimpleMath">\(A\)</span> is empty).</p>
<p><a id="X80F57FB47E1DB380" name="X80F57FB47E1DB380"></a></p>
<h5>55.2-2 NearAdditiveMagmaWithZero</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ NearAdditiveMagmaWithZero</code>( [<var class="Arg">Fam</var>, ]<var class="Arg">gens</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>returns the (near-)additive magma-with-zero <span class="SimpleMath">\(A\)</span> that is generated by the elements in the list <var class="Arg">gens</var>, that is, the closure of <var class="Arg">gens</var> under addition <code class="code">+</code> and <code class="func">Zero</code> (<a href="chap31_mj.html#X8040AC7A79FFC442"><span class="RefLink">31.10-3</span></a>). The family <var class="Arg">Fam</var> of <span class="SimpleMath">\(A\)</span> can be entered as first argument; this is obligatory if <var class="Arg">gens</var> is empty (and hence <span class="SimpleMath">\(A\)</span> is trivial).</p>
<p><a id="X872307537ECC5755" name="X872307537ECC5755"></a></p>
<h5>55.2-3 NearAdditiveGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ NearAdditiveGroup</code>( [<var class="Arg">Fam</var>, ]<var class="Arg">gens</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>returns the (near-)additive group <span class="SimpleMath">\(A\)</span> that is generated by the elements in the list <var class="Arg">gens</var>, that is, the closure of <var class="Arg">gens</var> under addition <code class="code">+</code>, <code class="func">Zero</code> (<a href="chap31_mj.html#X8040AC7A79FFC442"><span class="RefLink">31.10-3</span></a>), and <code class="func">AdditiveInverse</code> (<a href="chap31_mj.html#X84BB723C81D55D63"><span class="RefLink">31.10-9</span></a>). The family <var class="Arg">Fam</var> of <span class="SimpleMath">\(A\)</span> can be entered as first argument; this is obligatory if <var class="Arg">gens</var> is empty (and hence <span class="SimpleMath">\(A\)</span> is trivial).</p>
<p><a id="X85122CFD7BDAD668" name="X85122CFD7BDAD668"></a></p>
<h5>55.2-4 NearAdditiveMagmaByGenerators</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ NearAdditiveMagmaByGenerators</code>( [<var class="Arg">Fam</var>, ]<var class="Arg">gens</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>An underlying operation for <code class="func">NearAdditiveMagma</code> (<a href="chap55_mj.html#X79C947CF8060335A"><span class="RefLink">55.2-1</span></a>).</p>
<p><a id="X81880460851DEFBC" name="X81880460851DEFBC"></a></p>
<h5>55.2-5 NearAdditiveMagmaWithZeroByGenerators</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ NearAdditiveMagmaWithZeroByGenerators</code>( [<var class="Arg">Fam</var>, ]<var class="Arg">gens</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>An underlying operation for <code class="func">NearAdditiveMagmaWithZero</code> (<a href="chap55_mj.html#X80F57FB47E1DB380"><span class="RefLink">55.2-2</span></a>).</p>
<p><a id="X85F120B68576B267" name="X85F120B68576B267"></a></p>
<h5>55.2-6 NearAdditiveGroupByGenerators</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ NearAdditiveGroupByGenerators</code>( [<var class="Arg">Fam</var>, ]<var class="Arg">gens</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>An underlying operation for <code class="func">NearAdditiveGroup</code> (<a href="chap55_mj.html#X872307537ECC5755"><span class="RefLink">55.2-3</span></a>).</p>
<p><a id="X7AA6092683FC0F9C" name="X7AA6092683FC0F9C"></a></p>
<h5>55.2-7 SubnearAdditiveMagma</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SubnearAdditiveMagma</code>( <var class="Arg">D</var>, <var class="Arg">gens</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">‣ SubadditiveMagma</code>( <var class="Arg">D</var>, <var class="Arg">gens</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">‣ SubnearAdditiveMagmaNC</code>( <var class="Arg">D</var>, <var class="Arg">gens</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">‣ SubadditiveMagmaNC</code>( <var class="Arg">D</var>, <var class="Arg">gens</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><code class="func">SubnearAdditiveMagma</code> returns the near-additive magma generated by the elements in the list <var class="Arg">gens</var>, with parent the domain <var class="Arg">D</var>. <code class="func">SubnearAdditiveMagmaNC</code> does the same, except that it does not check whether the elements of <var class="Arg">gens</var> lie in <var class="Arg">D</var>.</p>
<p><code class="func">SubadditiveMagma</code> and <code class="func">SubadditiveMagmaNC</code> are just synonyms of these functions.</p>
<p><a id="X784859197D89A548" name="X784859197D89A548"></a></p>
<h5>55.2-8 SubnearAdditiveMagmaWithZero</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SubnearAdditiveMagmaWithZero</code>( <var class="Arg">D</var>, <var class="Arg">gens</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">‣ SubadditiveMagmaWithZero</code>( <var class="Arg">D</var>, <var class="Arg">gens</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">‣ SubnearAdditiveMagmaWithZeroNC</code>( <var class="Arg">D</var>, <var class="Arg">gens</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">‣ SubadditiveMagmaWithZeroNC</code>( <var class="Arg">D</var>, <var class="Arg">gens</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><code class="func">SubnearAdditiveMagmaWithZero</code> returns the near-additive magma-with-zero generated by the elements in the list <var class="Arg">gens</var>, with parent the domain <var class="Arg">D</var>. <code class="func">SubnearAdditiveMagmaWithZeroNC</code> does the same, except that it does not check whether the elements of <var class="Arg">gens</var> lie in <var class="Arg">D</var>.</p>
<p><code class="func">SubadditiveMagmaWithZero</code> and <code class="func">SubadditiveMagmaWithZeroNC</code> are just synonyms of these functions.</p>
<p><a id="X844C49BA807AB99F" name="X844C49BA807AB99F"></a></p>
<h5>55.2-9 SubnearAdditiveGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SubnearAdditiveGroup</code>( <var class="Arg">D</var>, <var class="Arg">gens</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">‣ SubadditiveGroup</code>( <var class="Arg">D</var>, <var class="Arg">gens</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">‣ SubnearAdditiveGroupNC</code>( <var class="Arg">D</var>, <var class="Arg">gens</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">‣ SubadditiveGroupNC</code>( <var class="Arg">D</var>, <var class="Arg">gens</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><code class="func">SubnearAdditiveGroup</code> returns the near-additive group generated by the elements in the list <var class="Arg">gens</var>, with parent the domain <var class="Arg">D</var>. <code class="func">SubadditiveGroupNC</code> does the same, except that it does not check whether the elements of <var class="Arg">gens</var> lie in <var class="Arg">D</var>.</p>
<p><code class="func">SubadditiveGroup</code> and <code class="func">SubadditiveGroupNC</code> are just synonyms of these functions.</p>
<p><a id="X799E6CC28737BF1B" name="X799E6CC28737BF1B"></a></p>
<h4>55.3 <span class="Heading">Attributes and Properties for (Near-)Additive Magmas</span></h4>
<p><a id="X82D471327A9CA960" name="X82D471327A9CA960"></a></p>
<h5>55.3-1 IsAdditivelyCommutative</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsAdditivelyCommutative</code>( <var class="Arg">A</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>A near-additive magma <var class="Arg">A</var> in <strong class="pkg">GAP</strong> is <em>additively commutative</em> if for all elements <span class="SimpleMath">\(a, b \in \textit{A}\)</span> the equality <span class="SimpleMath">\(a + b = b + a\)</span> holds.</p>
<p>Note that the commutativity of the <em>multiplication</em> <code class="code">*</code> in a multiplicative structure can be tested with <code class="func">IsCommutative</code> (<a href="chap35_mj.html#X830A4A4C795FBC2D"><span class="RefLink">35.4-9</span></a>).</p>
<p><a id="X804B178884002A40" name="X804B178884002A40"></a></p>
<h5>55.3-2 GeneratorsOfNearAdditiveMagma</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GeneratorsOfNearAdditiveMagma</code>( <var class="Arg">A</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">‣ GeneratorsOfAdditiveMagma</code>( <var class="Arg">A</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>is a list of elements of the near-additive magma <var class="Arg">A</var> that generates <var class="Arg">A</var> as a near-additive magma, that is, the closure of this list under addition is <var class="Arg">A</var>.</p>
<p><a id="X7EB9ABF880DCAE01" name="X7EB9ABF880DCAE01"></a></p>
<h5>55.3-3 GeneratorsOfNearAdditiveMagmaWithZero</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GeneratorsOfNearAdditiveMagmaWithZero</code>( <var class="Arg">A</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">‣ GeneratorsOfAdditiveMagmaWithZero</code>( <var class="Arg">A</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>is a list of elements of the near-additive magma-with-zero <var class="Arg">A</var> that generates <var class="Arg">A</var> as a near-additive magma-with-zero, that is, the closure of this list under addition and <code class="func">Zero</code> (<a href="chap31_mj.html#X8040AC7A79FFC442"><span class="RefLink">31.10-3</span></a>) is <var class="Arg">A</var>.</p>
<p><a id="X7EA15714795D71CF" name="X7EA15714795D71CF"></a></p>
<h5>55.3-4 GeneratorsOfNearAdditiveGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GeneratorsOfNearAdditiveGroup</code>( <var class="Arg">A</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">‣ GeneratorsOfAdditiveGroup</code>( <var class="Arg">A</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>is a list of elements of the near-additive group <var class="Arg">A</var> that generates <var class="Arg">A</var> as a near-additive group, that is, the closure of this list under addition, taking the zero element, and taking additive inverses (see <code class="func">AdditiveInverse</code> (<a href="chap31_mj.html#X84BB723C81D55D63"><span class="RefLink">31.10-9</span></a>)) is <var class="Arg">A</var>.</p>
<p><a id="X851EA2E67F0C9A75" name="X851EA2E67F0C9A75"></a></p>
<h5>55.3-5 AdditiveNeutralElement</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AdditiveNeutralElement</code>( <var class="Arg">A</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>returns the element <span class="SimpleMath">\(z\)</span> in the near-additive magma <var class="Arg">A</var> with the property that <span class="SimpleMath">\(z + a = a = a + z\)</span> holds for all <span class="SimpleMath">\(a \in\)</span> <var class="Arg">A</var>, if such an element exists. Otherwise <code class="keyw">fail</code> is returned.</p>
<p>A near-additive magma that is not a near-additive magma-with-zero can have an additive neutral element <span class="SimpleMath">\(z\)</span>; in this case, <span class="SimpleMath">\(z\)</span> <em>cannot</em> be obtained as <code class="code">Zero( <var class="Arg">A</var> )</code> or as <code class="code">0*</code><span class="SimpleMath">\(a\)</span> for an element <span class="SimpleMath">\(a\)</span> in <var class="Arg">A</var>, see <code class="func">Zero</code> (<a href="chap31_mj.html#X8040AC7A79FFC442"><span class="RefLink">31.10-3</span></a>).</p>
<p><a id="X78FB0A5C86DC86F9" name="X78FB0A5C86DC86F9"></a></p>
<h5>55.3-6 TrivialSubnearAdditiveMagmaWithZero</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TrivialSubnearAdditiveMagmaWithZero</code>( <var class="Arg">A</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>is the additive magma-with-zero that has the zero of the near-additive magma-with-zero <var class="Arg">A</var> as its only element.</p>
<p><a id="X7BB03781863BE4EB" name="X7BB03781863BE4EB"></a></p>
<h4>55.4 <span class="Heading">Operations for (Near-)Additive Magmas</span></h4>
<p><a id="X845E915B87D2AC16" name="X845E915B87D2AC16"></a></p>
<h5>55.4-1 <span class="Heading">ClosureNearAdditiveGroup</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ClosureNearAdditiveGroup</code>( <var class="Arg">A</var>, <var class="Arg">a</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">‣ ClosureNearAdditiveGroup</code>( <var class="Arg">A</var>, <var class="Arg">B</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>returns the closure of the near-additive magma <var class="Arg">A</var> with the element <var class="Arg">a</var> or with the near-additive magma <var class="Arg">B</var>, w.r.t. addition, taking the zero element, and taking additive inverses.</p>
<p><a id="X8142D994794B700A" name="X8142D994794B700A"></a></p>
<h5>55.4-2 ShowAdditionTable</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ShowAdditionTable</code>( <var class="Arg">R</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">‣ ShowMultiplicationTable</code>( <var class="Arg">M</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>For a structure <var class="Arg">R</var> with an addition given by <code class="code">+</code>, respectively a structure <var class="Arg">M</var> with a multiplication given by <code class="code">*</code>, this command displays the addition (multiplication) table of the structure in a pretty way.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">ShowAdditionTable(GF(4));</span>
+ | 0*Z(2) Z(2)^0 Z(2^2) Z(2^2)^2
---------+------------------------------------
0*Z(2) | 0*Z(2) Z(2)^0 Z(2^2) Z(2^2)^2
Z(2)^0 | Z(2)^0 0*Z(2) Z(2^2)^2 Z(2^2)
Z(2^2) | Z(2^2) Z(2^2)^2 0*Z(2) Z(2)^0
Z(2^2)^2 | Z(2^2)^2 Z(2^2) Z(2)^0 0*Z(2)
<span class="GAPprompt">gap></span> <span class="GAPinput">ShowMultiplicationTable(GF(4)); </span>
* | 0*Z(2) Z(2)^0 Z(2^2) Z(2^2)^2
---------+------------------------------------
0*Z(2) | 0*Z(2) 0*Z(2) 0*Z(2) 0*Z(2)
Z(2)^0 | 0*Z(2) Z(2)^0 Z(2^2) Z(2^2)^2
Z(2^2) | 0*Z(2) Z(2^2) Z(2^2)^2 Z(2)^0
Z(2^2)^2 | 0*Z(2) Z(2^2)^2 Z(2)^0 Z(2^2)
</pre></div>
<div class="chlinkprevnextbot"> <a href="chap0_mj.html">[Top of Book]</a> <a href="chap0_mj.html#contents">[Contents]</a> <a href="chap54_mj.html">[Previous Chapter]</a> <a href="chap56_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="chap6_mj.html">6</a> <a href="chap7_mj.html">7</a> <a href="chap8_mj.html">8</a> <a href="chap9_mj.html">9</a> <a href="chap10_mj.html">10</a> <a href="chap11_mj.html">11</a> <a href="chap12_mj.html">12</a> <a href="chap13_mj.html">13</a> <a href="chap14_mj.html">14</a> <a href="chap15_mj.html">15</a> <a href="chap16_mj.html">16</a> <a href="chap17_mj.html">17</a> <a href="chap18_mj.html">18</a> <a href="chap19_mj.html">19</a> <a href="chap20_mj.html">20</a> <a href="chap21_mj.html">21</a> <a href="chap22_mj.html">22</a> <a href="chap23_mj.html">23</a> <a href="chap24_mj.html">24</a> <a href="chap25_mj.html">25</a> <a href="chap26_mj.html">26</a> <a href="chap27_mj.html">27</a> <a href="chap28_mj.html">28</a> <a href="chap29_mj.html">29</a> <a href="chap30_mj.html">30</a> <a href="chap31_mj.html">31</a> <a href="chap32_mj.html">32</a> <a href="chap33_mj.html">33</a> <a href="chap34_mj.html">34</a> <a href="chap35_mj.html">35</a> <a href="chap36_mj.html">36</a> <a href="chap37_mj.html">37</a> <a href="chap38_mj.html">38</a> <a href="chap39_mj.html">39</a> <a href="chap40_mj.html">40</a> <a href="chap41_mj.html">41</a> <a href="chap42_mj.html">42</a> <a href="chap43_mj.html">43</a> <a href="chap44_mj.html">44</a> <a href="chap45_mj.html">45</a> <a href="chap46_mj.html">46</a> <a href="chap47_mj.html">47</a> <a href="chap48_mj.html">48</a> <a href="chap49_mj.html">49</a> <a href="chap50_mj.html">50</a> <a href="chap51_mj.html">51</a> <a href="chap52_mj.html">52</a> <a href="chap53_mj.html">53</a> <a href="chap54_mj.html">54</a> <a href="chap55_mj.html">55</a> <a href="chap56_mj.html">56</a> <a href="chap57_mj.html">57</a> <a href="chap58_mj.html">58</a> <a href="chap59_mj.html">59</a> <a href="chap60_mj.html">60</a> <a href="chap61_mj.html">61</a> <a href="chap62_mj.html">62</a> <a href="chap63_mj.html">63</a> <a href="chap64_mj.html">64</a> <a href="chap65_mj.html">65</a> <a href="chap66_mj.html">66</a> <a href="chap67_mj.html">67</a> <a href="chap68_mj.html">68</a> <a href="chap69_mj.html">69</a> <a href="chap70_mj.html">70</a> <a href="chap71_mj.html">71</a> <a href="chap72_mj.html">72</a> <a href="chap73_mj.html">73</a> <a href="chap74_mj.html">74</a> <a href="chap75_mj.html">75</a> <a href="chap76_mj.html">76</a> <a href="chap77_mj.html">77</a> <a href="chap78_mj.html">78</a> <a href="chap79_mj.html">79</a> <a href="chap80_mj.html">80</a> <a href="chap81_mj.html">81</a> <a href="chap82_mj.html">82</a> <a href="chap83_mj.html">83</a> <a href="chap84_mj.html">84</a> <a href="chap85_mj.html">85</a> <a href="chap86_mj.html">86</a> <a href="chap87_mj.html">87</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.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>