<divclass="chlinkprevnexttop"> <ahref="chap0_mj.html">[Top of Book]</a> <ahref="chap0_mj.html#contents">[Contents]</a> <ahref="chap4_mj.html">[Previous Chapter]</a> <ahref="chap6_mj.html">[Next Chapter]</a> </div>
<spanclass="ContSS"><br/><spanclass="nocss"> </span><ahref="chap5_mj.html#X7D5956967BCC1834">5.2-1 <spanclass="Heading">LeftDivision and RightDivision</span></a>
</span>
<spanclass="ContSS"><br/><spanclass="nocss"> </span><ahref="chap5_mj.html#X804F67C8796A0EB3">5.2-2 <spanclass="Heading">LeftDivisionCayleyTable and RightDivisionCayleyTable</span></a>
</span>
</div></div>
<divclass="ContSect"><spanclass="tocline"><spanclass="nocss"> </span><ahref="chap5_mj.html#X810850247ADB4EE9">5.3 <spanclass="Heading">Powers and Inverses</span></a>
</span>
<divclass="ContSSBlock">
<spanclass="ContSS"><br/><spanclass="nocss"> </span><ahref="chap5_mj.html#X805781838020CF44">5.3-1 <spanclass="Heading">LeftInverse, RightInverse and Inverse</span></a>
</span>
</div></div>
<divclass="ContSect"><spanclass="tocline"><spanclass="nocss"> </span><ahref="chap5_mj.html#X7E0849977869E53D">5.4 <spanclass="Heading">Associators and Commutators</span></a>
<spanclass="ContSS"><br/><spanclass="nocss"> </span><ahref="chap5_mj.html#X83944A777D161D10">5.5-1 <spanclass="Heading">GeneratorsOfQuasigroup and GeneratorsOfLoop</span></a>
<p>We associate many attributes with quasigroups in order to speed up computation. This section lists some basic attributes of quasigroups and loops.</p>
<p>Returns: The identity element of a loop <varclass="Arg">Q</var>.</p>
<p><strongclass="button">Remark:</strong>If you want to know if a quasigroup <varclass="Arg">Q</var> has a neutral element, you can find out with the standard function for magmas <codeclass="code">MultiplicativeNeutralElement(<varclass="Arg">Q</var>)</code>.</p>
<p>Returns: The exponent of a power associative loop <varclass="Arg">Q</var>. (The method does not test if <varclass="Arg">Q</var> is power associative.)</p>
<p>When <varclass="Arg">Q</var> is a <em>power associative loop</em>, that is, the powers of elements are well-defined in <varclass="Arg">Q</var>, then the <em>exponent</em> of <varclass="Arg">Q</var> is the smallest positive integer divisible by the orders of all elements of <varclass="Arg">Q</var>.</p>
<p>Each quasigroup element in <strongclass="pkg">GAP</strong> knows to which quasigroup it belongs. It is therefore possible to perform arithmetic operations with quasigroup elements without referring to the quasigroup. All elements involved in the calculation must belong to the same quasigroup.</p>
<p>Two elements <spanclass="SimpleMath">\(x\)</span>, <spanclass="SimpleMath">\(y\)</span> of the same quasigroup are multiplied by <spanclass="SimpleMath">\(x*y\)</span> in <strongclass="pkg">GAP</strong>. Since multiplication of at least three elements is ambiguous in the nonassociative case, we parenthesize elements by default from left to right, i.e., <spanclass="SimpleMath">\(x*y*z\)</span> means <spanclass="SimpleMath">\(((x*y)*z)\)</span>. Of course, one can specify the order of multiplications by providing parentheses.</p>
<p>Returns: The left division <varclass="Arg">x</var><spanclass="SimpleMath">\(\backslash\)</span><varclass="Arg">y</var> (resp. the right division <varclass="Arg">x</var><spanclass="SimpleMath">\(/\)</span><varclass="Arg">y</var>) of two elements <varclass="Arg">x</var>, <varclass="Arg">y</var> of the same quasigroup.<br/></p>
<p>Returns: The list of elements obtained by performing the specified arithmetical operation elementwise using a list <varclass="Arg">S</var> of elements and an element <varclass="Arg">x</var>.<br/></p>
<p><strongclass="button">Remark:</strong> We support <spanclass="SimpleMath">\(/\)</span> in place of <codeclass="code">RightDivision</code>. But we do not support <spanclass="SimpleMath">\(\backslash\)</span> in place of <codeclass="code">LeftDivision</code>.</p>
<h4>5.3 <spanclass="Heading">Powers and Inverses</span></h4>
<p>Powers of elements are generally not well-defined in quasigroups. For magmas and a positive integral exponent, <strongclass="pkg">GAP</strong> calculates powers in the following way: <spanclass="SimpleMath">\(x^1=x\)</span>, <spanclass="SimpleMath">\(x^{2k}=(x^k)\cdot(x^k)\)</span> and <spanclass="SimpleMath">\(x^{2k+1}=(x^{2k})\cdot x\)</span>. One can easily see that this returns <spanclass="SimpleMath">\(x^k\)</span> in about <spanclass="SimpleMath">\(\log_2(k)\)</span> steps. For <strongclass="pkg">LOOPS</strong>, we have decided to keep this method, but the user should be aware that the method is sound only in power associative quasigroups.</p>
<p>Let <spanclass="SimpleMath">\(x\)</span> be an element of a loop <spanclass="SimpleMath">\(Q\)</span> with neutral element <spanclass="SimpleMath">\(1\)</span>. Then the <em>left inverse</em><spanclass="SimpleMath">\(x^\lambda\)</span> of <spanclass="SimpleMath">\(x\)</span> is the unique element of <spanclass="SimpleMath">\(Q\)</span> satisfying <spanclass="SimpleMath">\(x^\lambda x=1\)</span>. Similarly, the <em>right inverse</em><spanclass="SimpleMath">\(x^\rho\)</span> satisfies <spanclass="SimpleMath">\(xx^\rho=1\)</span>. If <spanclass="SimpleMath">\(x^\lambda=x^\rho\)</span>, we call <spanclass="SimpleMath">\(x^{-1}=x^\lambda=x^\rho\)</span> the <em>inverse</em> of <spanclass="SimpleMath">\(x\)</span>.</p>
<p>Returns: A set of generators of a quasigroup (resp. loop) <varclass="Arg">Q</var>. (Both methods are synonyms of <codeclass="code">GeneratorsOfMagma</code>.)</p>
<p>As usual in <strongclass="pkg">GAP</strong>, one can refer to the <codeclass="code">i</code>th generator of a quasigroup <codeclass="code">Q</code> by <codeclass="code">Q.i</code>. Note that while it is often the case that <codeclass="code"> Q.i = Elements(Q)[i]</code>, it is not necessarily so.</p>
<p>Returns: A generating set <spanclass="SimpleMath">\(\{q_0\)</span>, <spanclass="SimpleMath">\(\dots\)</span>, <spanclass="SimpleMath">\(q_m\}\)</span> of <varclass="Arg">Q</var> such that <spanclass="SimpleMath">\(Q_0=\emptyset\)</span>, <spanclass="SimpleMath">\(Q_m=\)</span><varclass="Arg">Q</var>, <spanclass="SimpleMath">\(Q_i=\langle q_1\)</span>, <spanclass="SimpleMath">\(\dots\)</span>, <spanclass="SimpleMath">\(q_i \rangle\)</span>, and <spanclass="SimpleMath">\(q_{i+1}\)</span> is the least element of <varclass="Arg">Q</var><spanclass="SimpleMath">\(\setminus Q_i\)</span>.</p>
<p>Returns: A small generating set <spanclass="SimpleMath">\(\{q_0\)</span>, <spanclass="SimpleMath">\(\dots\)</span>, <spanclass="SimpleMath">\(q_m\}\)</span> of <varclass="Arg">Q</var> obtained as follows: <spanclass="SimpleMath">\(q_0\)</span> is the least element for which <spanclass="SimpleMath">\(\langle q_0\rangle\)</span> is largest possible, <spanclass="SimpleMath">\(q_1\)</span>$ is the least element for which <spanclass="SimpleMath">\(\langle q_0,q_1\)</span> is largest possible, and so on.</p>
<divclass="chlinkprevnextbot"> <ahref="chap0_mj.html">[Top of Book]</a> <ahref="chap0_mj.html#contents">[Contents]</a> <ahref="chap4_mj.html">[Previous Chapter]</a> <ahref="chap6_mj.html">[Next Chapter]</a> </div>