<h3>9 <span class="Heading">Libraries of Loops</span></h3>
<p>Libraries of small loops form an integral part of <strong class="pkg">LOOPS</strong>. The loops are stored in libraries up to isomorphism and, sometimes, up to isotopism.</p>
<p>A library named <em>my Library</em> is stored in file <code class="file">data/mylibrary.tbl</code>, and the corresponding data structure is named <code class="code">LOOPS_my_library_data</code>. For example, when the library is called <em>left Bol</em>, the corresponding data file is called <code class="file">data/leftbol.tbl</code> and the corresponding data structure is named <code class="code">LOOPS_left_bol_data</code>.</p>
<p>In most cases, the array <code class="code">LOOPS_my_library_data</code> consists of three lists:</p>
<ul>
<li><p><code class="code">LOOPS_my_library_data[1]</code> is a list of orders for which there is at least one loop in the library,</p>
</li>
<li><p><code class="code">LOOPS_my_library_data[2][k]</code> is the number of loops of order <codeclass="code">LOOPS_my_library_data[1][k]</code> in the library,</p>
</li>
<li><p><code class="code">LOOPS_my_library_data[3][k][s]</code> contains data necessary to produce the <code class="code">s</code>th loop of order <code class="code">LOOPS_my_library_data[1][k]</code> in the library.</p>
</li>
</ul>
<p>The format of <code class="code">LOOPS_my_library_data[3]</code> depends heavily on the particular library and is not standardized in any way. The data is often coded to save space.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; LibraryLoop</code>( <var class="Arg">libname</var>, <var class="Arg">n</var>, <var class="Arg">m</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The <var class="Arg">m</var>th loop of order <var class="Arg">n</var> from the library named <var class="Arg">libname</var>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; MyLibraryLoop</code>( <var class="Arg">n</var>, <var class="Arg">m</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>This is a template function that retrieves the <var class="Arg">m</var>th loop of order <var class="Arg">n</var> from the library named <em>my library</em>.</p>
<p>For example, the <var class="Arg">m</var>th left Bol loop of order <var class="Arg">n</var> is obtained via <code class="code">LeftBolLoop(<var class="Arg">n</var>,<var class="Arg">m</var>)</code> or via <code class="code">LibraryLoop("left Bol",<var class="Arg">n</var>,<var class="Arg">m</var>)</code>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; DisplayLibraryInfo</code>( <var class="Arg">libname</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: Brief information about the loops contained in the library named <var class="Arg">libname</var>.<br /></p>
<p>We are now going to describe the individual libraries.</p>
<h4>9.2 <span class="Heading">Left Bol Loops and Right Bol Loops</span></h4>
<p>The library named <em>left Bol</em> contains all nonassociative left Bol loops of order less than 17, including Moufang loops, as well as all left Bol loops of order <span class="SimpleMath">\(pq\)</span> for primes <span class="SimpleMath">\(p>q>2\)</span>. There are 6 such loops of order 8, 1 of order 12, 2 of order 15, 2038 of order 16, and <span class="SimpleMath">\((p+q-4)/2\)</span> of order <span class="SimpleMath">\(pq\)</span>.</p>
<p>The classification of left Bol loops of order 16 was first accomplished by Moorhouse <a href="chapBib_mj.html#biBMo">[Moo]</a>. Our library was generated independently and it agrees with Moorhouse's results. The left Bol loops of order <span class="SimpleMath">\(pq\)</span> were classified in <a href="chapBib_mj.html#biBKiNaVo2015">[KNV15]</a>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; LeftBolLoop</code>( <var class="Arg">n</var>, <var class="Arg">m</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The <var class="Arg">m</var>th left Bol loop of order <var class="Arg">n</var> in the library.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; RightBolLoop</code>( <var class="Arg">n</var>, <var class="Arg">m</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The <var class="Arg">m</var>th right Bol loop of order <var class="Arg">n</var> in the library.</p>
<p><strong class="button">Remark:</strong> Only left Bol loops are stored in the library. Right Bol loops are retrieved by calling <code class="code">Opposite</code> on left Bol loops.</p>
<h4>9.3 <span class="Heading">Left Bruck Loops and Right Bruck Loops</span></h4>
<p>The emerging library named <em>left Bruck</em> contains all left Bruck loops of orders <span class="SimpleMath">\(3\)</span>, <span class="SimpleMath">\(9\)</span>, <span class="SimpleMath">\(27\)</span> and <span class="SimpleMath">\(81\)</span> (there are <span class="SimpleMath">\(1\)</span>, <span class="SimpleMath">\(2\)</span>, <span class="SimpleMath">\(7\)</span> and <span class="SimpleMath">\(72\)</span> such loops, respectively).</p>
<p>For an odd prime <span class="SimpleMath">\(p\)</span>, left Bruck loops of order <span class="SimpleMath">\(p^k\)</span> are centrally nilpotent and hence central extensions of the cyclic group of order <span class="SimpleMath">\(p\)</span> by a left Bruck loop of order <span class="SimpleMath">\(p^{k-1}\)</span>. It is known that left Bruck loops of order <span class="SimpleMath">\(p\)</span> and <span class="SimpleMath">\(p^2\)</span> are abelian groups; we have included them in the library because of the iterative nature of the construction of nilpotent loops.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; LeftBruckLoop</code>( <var class="Arg">n</var>, <var class="Arg">m</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The <var class="Arg">m</var>th left Bruck loop of order <var class="Arg">n</var> in the library.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; RightBruckLoop</code>( <var class="Arg">n</var>, <var class="Arg">m</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The <var class="Arg">m</var>th right Bruck loop of order <var class="Arg">n</var> in the library.</p>
<p>The library named <em>Moufang</em> contains all nonassociative Moufang loops of order <span class="SimpleMath">\(n\le 64\)</span> and <span class="SimpleMath">\(n\in\{81,243\}\)</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; MoufangLoop</code>( <var class="Arg">n</var>, <var class="Arg">m</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The <var class="Arg">m</var>th Moufang loop of order <var class="Arg">n</var> in the library.</p>
<p>For <span class="SimpleMath">\(n\le 63\)</span>, our catalog numbers coincide with those of Goodaire et al. <a href="chapBib_mj.html#biBGo">[GMR99]</a>. The classification of Moufang loops of order 64 and 81 was carried out in <a href="chapBib_mj.html#biBNaVo2007">[NV07]</a>. The classification of Moufang loops of order 243 was carried out by Slattery and Zenisek <a href="chapBib_mj.html#biBSlZe2011">[SZ12]</a>.</p>
<p>The extent of the library is summarized below:</p>
<p>The <em>octonion loop</em> of order 16 (i.e., the multiplication loop of the basis elements in the 8-dimensional standard real octonion algebra) can be obtained as <code class="code">MoufangLoop(16,3)</code>.</p>
<p>The library named <em>code</em> contains all nonassociative code loops of order less than 65. There are 5 such loops of order 16, 16 of order 32, and 80 of order 64, all Moufang. The library merely points to the corresponding Moufang loops. See <a href="chapBib_mj.html#biBNaVo2007">[NV07]</a> for a classification of smallcode loops.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; CodeLoop</code>( <var class="Arg">n</var>, <var class="Arg">m</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The <var class="Arg">m</var>thcode loop of order <var class="Arg">n</var> in the library.</p>
<p>Here is how the library named <em>Steiner</em> is described within <strong class="pkg">LOOPS</strong>:</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">DisplayLibraryInfo( "Steiner" );</span>
The library contains all nonassociative Steiner loops of order less or equal to 16.
It also contains the associative Steiner loops of order 4 and 8.
------
Extent of the library: 1 loop of order 4 1 loop of order 8 1 loop of order 10 2 loops of order 14 80 loops of order 16
true
</pre></div>
<p>Our labeling of Steiner loops of order 16 coincides with the labeling of Steiner triple systems of order 15 in <a href="chapBib_mj.html#biBCoRo">[CR99]</a>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SteinerLoop</code>( <var class="Arg">n</var>, <var class="Arg">m</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The <var class="Arg">m</var>th Steiner loop of order <var class="Arg">n</var> in the library.</p>
<p>The library named <em>RCC</em> contains all nonassociative right conjugacy closed loops of order <span class="SimpleMath">\(n\le 27\)</span> up to isomorphism. The data for the library was generated by Katharina Artic <a href="chapBib_mj.html#biBArtic">[Art15]</a> who can also provide additional data for all right conjugacy closed loops of order <span class="SimpleMath">\(n\le 31\)</span>.</p>
<p>Let <span class="SimpleMath">\(Q\)</span> be a right conjugacy closed loop, <span class="SimpleMath">\(G\)</span> its right multiplication group and <span class="SimpleMath">\(T\)</span> its right section. Then <span class="SimpleMath">\(\langle T\rangle = G\)</span> is a transitive group, and <span class="SimpleMath">\(T\)</span> is a union of conjugacy classes of <span class="SimpleMath">\(G\)</span>. Every right conjugacy closed loop of order <span class="SimpleMath">\(n\)</span> can therefore be represented as a union of certain conjugacy classes of a transitive group of degree <span class="SimpleMath">\(n\)</span>. This is how right conjugacy closed loops of order less than <span class="SimpleMath">\(28\)</span> are represented in <strong class="pkg">LOOPS</strong>. The following table summarizes the number of right conjugacy closed loops of a given order up to isomorphism:</p>
<h5>9.7-2 <span class="Heading">LCCLoop and LeftConjugacyClosedLoop</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; LCCLoop</code>( <var class="Arg">n</var>, <var class="Arg">m</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; LeftConjugacyClosedLoop</code>( <var class="Arg">n</var>, <varclass="Arg">m</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The <var class="Arg">m</var>th left conjugacy closed loop of order <var class="Arg">n</var> in the library.</p>
<p><strong class="button">Remark:</strong> Only the right conjugacy closed loops are stored in the library. Left conjugacy closed loops are obtained from right conjugacy closed loops via <code class="code">Opposite</code>.<br /></p>
<p>The library named <em>CC</em> contains all CC loops of order <span class="SimpleMath">\(2\le 2^k\le 64\)</span>, <span class="SimpleMath">\(3\le 3^k\le 81\)</span>, <span class="SimpleMath">\(5\le 5^k\le 125\)</span>, <span class="SimpleMath">\(7\le 7^k\le 343\)</span>, all nonassociative CC loops of order less than 28, and all nonassociative CC loops of order <span class="SimpleMath">\(p^2\)</span> and <span class="SimpleMath">\(2p\)</span> for any odd prime <span class="SimpleMath">\(p\)</span>.</p>
<p>By results of Kunen <a href="chapBib_mj.html#biBKun">[Kun00]</a>, for every odd prime <span class="SimpleMath">\(p\)</span> there are precisely 3 nonassociative conjugacy closed loops of order <span class="SimpleMath">\(p^2\)</span>. Csörgő and Drápal <a href="chapBib_mj.html#biBCsDr">[CD05]</a> described these 3 loops by multiplicative formulas on <span class="SimpleMath">\(\mathbb{Z}_{p^2}\)</span> and <span class="SimpleMath">\(\mathbb{Z}_p \times \mathbb{Z}_p\)</span> as follows:</p>
<ul>
<li><p>Case <span class="SimpleMath">\(m = 1\)</span>:Let <span class="SimpleMath">\(k\)</span> be the smallest positive integer relatively prime to <span class="SimpleMath">\(p\)</span> and such that <span class="SimpleMath">\(k\)</span> is a square modulo <span class="SimpleMath">\(p\)</span> (i.e., <span class="SimpleMath">\(k=1\)</span>). Define multiplication on <span class="SimpleMath">\(\mathbb{Z}_{p^2}\)</span> by <span class="SimpleMath">\(x\cdot y = x + y + kpx^2y\)</span>.</p>
</li>
<li><p>Case <span class="SimpleMath">\(m = 2\)</span>: Let <span class="SimpleMath">\(k\)</span> be the smallest positive integer relatively prime to <span class="SimpleMath">\(p\)</span> and such that <span class="SimpleMath">\(k\)</span> is not a square modulo <span class="SimpleMath">\(p\)</span>. Define multiplication on <span class="SimpleMath">\(\mathbb{Z}_{p^2}\)</span> by <spanclass="SimpleMath">\(x\cdot y = x + y + kpx^2y\)</span>.</p>
</li>
<li><p>Case <span class="SimpleMath">\(m = 3\)</span>: Define multiplication on <span class="SimpleMath">\(\mathbb{Z}_p \times \mathbb{Z}_p\)</span> by <span class="SimpleMath">\((x,a)(y,b) = (x+y, a+b+x^2y )\)</span>.</p>
</li>
</ul>
<p>Moreover, Wilson <a href="chapBib_mj.html#biBWi">[WJ75]</a> constructed a nonassociative conjugacy closed loop of order <span class="SimpleMath">\(2p\)</span> for every odd prime <span class="SimpleMath">\(p\)</span>, and Kunen <a href="chapBib_mj.html#biBKun">[Kun00]</a> showed that there are no other nonassociative conjugacy closed oops of this order. Here is the relevant multiplication formula on <span class="SimpleMath">\(\mathbb{Z}_2 \times \mathbb{Z}_p\)</span>: <span class="SimpleMath">\((0,m)(0,n) = ( 0, m + n )\)</span>, <span class="SimpleMath">\((0,m)(1,n) = ( 1, -m + n )\)</span>, <span class="SimpleMath">\((1,m)(0,n) = ( 1, m + n)\)</span>, <span class="SimpleMath">\((1,m)(1,n) = ( 0, 1 - m + n )\)</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SmallLoop</code>( <var class="Arg">n</var>, <var class="Arg">m</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The <var class="Arg">m</var>th loop of order <var class="Arg">n</var> in the library.</p>
<p><em>Paige loops</em> are nonassociative finite simple Moufang loops. By <a href="chapBib_mj.html#biBLi">[Lie87]</a>, there is precisely one Paige loop for every finite field.</p>
<p>The library named <em>Paige</em> contains the smallest nonassociative simple Moufang loop.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; PaigeLoop</code>( <var class="Arg">q</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The Paige loop constructed over the finite field of order <var class="Arg">q</var>. Only the case <code class="code"><var class="Arg">q</var>=2</code> is implemented.</p>
<p>The library named <em>nilpotent</em> contains all nonassociative nilpotent loops of order less than 12 up to isomorphism. There are 2 nonassociative nilpotent loops of order 6, 134 of order 8, 8of order 9 and 1043 of order 10.</p>
<p>See <a href="chapBib_mj.html#biBDaVo">[DV09]</a> for more on enumeration of nilpotent loops. For instance, there are 2623755 nilpotent loops of order 12, and 123794003928541545927226368nilpotent loops of order 22.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; NilpotentLoop</code>( <var class="Arg">n</var>, <var class="Arg">m</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The <var class="Arg">m</var>th nilpotent loop of order <var class="Arg">n</var> in the library.</p>
<p>The library named <em>automorphic</em> contains all nonassociative automorphic loops of order less than 16 up to isomorphism (there is 1 such loop of order 6, 7 of order 8, 3 of order 10, 2 of order 12, 5 of order 14, and 2 of order 15) and all commutative automorphic loops of order 3, 9, 27 and 81 (there are 1, 2, 7 and 72 such loops).</p>
<p>It turns out that commutative automorphic loops of order 3, 9, 27 and 81 (but not 243) are in one-to-on correspondence with left Bruck loops of the respective orders, see <a href="chapBib_mj.html#biBGreer">[Gre14]</a>, <a href="chapBib_mj.html#biBStuhlVojtechovsky">[SV17]</a>. Only the left Bruck loops are stored in the library.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; AutomorphicLoop</code>( <var class="Arg">n</var>, <var class="Arg">m</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The <var class="Arg">m</var>th automorphic loop of order <var class="Arg">n</var> in the library.</p>
<p>The library named <em>interesting</em> contains some loops that are illustrative in the theory of loops. At this point, the library contains a nonassociative loop of order 5, a nonassociative nilpotent loop of order 6, a non-Moufang left Bol loop of order 16, the loop of sedenions of order 32(sedenions generalize octonions), and the unique nonassociative simple right Bol loop of order 96 and exponent 2.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; InterestingLoop</code>( <var class="Arg">n</var>, <var class="Arg">m</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The <var class="Arg">m</var>th interesting loop of order <var class="Arg">n</var> in the library.</p>
<h4>9.13 <span class="Heading">Libraries of Loops Up To Isotopism</span></h4>
<p>For the library named <em>small</em> we also provide the corresponding library of loops up to isotopism. In general, given a library named <em>libname</em>, the corresponding library of loops up to isotopism is named <em>itp lib</em>, and the loops can be retrieved by the template <code class="code">ItpLibLoop(n,m)</code>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; ItpSmallLoop</code>( <var class="Arg">n</var>, <var class="Arg">m</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The <var class="Arg">m</var>thsmall loop of order <var class="Arg">n</var> up to isotopism in the library.</p>
<p>Note that loops up to isotopism form a subset of the corresponding library of loops up to isomorphism. For instance, the above example shows that the 14thsmall loop of order 6 up to isotopism is in fact the 42nd small loop of order 6 up to isomorphism.</p>
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.