loops/doc/chap9.txt
Glen Whitney f64208f12f update to LOOPS 3.4.0
These are simply the changes as distributed.
2017-10-29 23:54:13 -04:00

351 lines
17 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

9 Libraries of Loops
Libraries of small loops form an integral part of LOOPS. The loops are
stored in libraries up to isomorphism and, sometimes, up to isotopism.
9.1 A Typical Library
A library named my Library is stored in file data/mylibrary.tbl, and the
corresponding data structure is named LOOPS_my_library_data. For example,
when the library is called left Bol, the corresponding data file is called
data/leftbol.tbl and the corresponding data structure is named
LOOPS_left_bol_data.
In most cases, the array LOOPS_my_library_data consists of three lists:
 LOOPS_my_library_data[1] is a list of orders for which there is at
least one loop in the library,
 LOOPS_my_library_data[2][k] is the number of loops of order
LOOPS_my_library_data[1][k] in the library,
 LOOPS_my_library_data[3][k][s] contains data necessary to produce the
sth loop of order LOOPS_my_library_data[1][k] in the library.
The format of LOOPS_my_library_data[3] depends heavily on the particular
library and is not standardized in any way. The data is often coded to save
space.
9.1-1 LibraryLoop
LibraryLoop( libname, n, m )  function
Returns: The mth loop of order n from the library named libname.
9.1-2 MyLibraryLoop
MyLibraryLoop( n, m )  function
This is a template function that retrieves the mth loop of order n from the
library named my library.
For example, the mth left Bol loop of order n is obtained via
LeftBolLoop(n,m) or via LibraryLoop("left Bol",n,m).
9.1-3 DisplayLibraryInfo
DisplayLibraryInfo( libname )  function
Returns: Brief information about the loops contained in the library named
libname.
We are now going to describe the individual libraries.
9.2 Left Bol Loops and Right Bol Loops
The library named left Bol contains all nonassociative left Bol loops of
order less than 17, including Moufang loops, as well as all left Bol loops
of order pq for primes p>q>2. There are 6 such loops of order 8, 1 of order
12, 2 of order 15, 2038 of order 16, and (p+q-4)/2 of order pq.
The classification of left Bol loops of order 16 was first accomplished by
Moorhouse [Moo]. Our library was generated independently and it agrees with
Moorhouse's results. The left Bol loops of order pq were classified in
[KNV15].
9.2-1 LeftBolLoop
LeftBolLoop( n, m )  function
Returns: The mth left Bol loop of order n in the library.
9.2-2 RightBolLoop
RightBolLoop( n, m )  function
Returns: The mth right Bol loop of order n in the library.
Remark: Only left Bol loops are stored in the library. Right Bol loops are
retrieved by calling Opposite on left Bol loops.
9.3 Left Bruck Loops and Right Bruck Loops
The emmerging library named left Bruck contains all left Bruck loops of
orders 3, 9, 27 and 81 (there are 1, 2, 7 and 72 such loops, respectively).
For an odd prime p, left Bruck loops of order p^k are centrally nilpotent
and hence central extensions of the cyclic group of order p by a left Bruck
loop of order p^k-1. It is known that left Bruck loops of order p and p^2
are abelian groups; we have included them in the library because of the
iterative nature of the construction of nilpotent loops.
9.3-1 LeftBruckLoop
LeftBruckLoop( n, m )  function
Returns: The mth left Bruck loop of order n in the library.
9.3-2 RightBruckLoop
RightBruckLoop( n, m )  function
Returns: The mth right Bruck loop of order n in the library.
9.4 Moufang Loops
The library named Moufang contains all nonassociative Moufang loops of order
nle 64 and n∈{81,243}.
9.4-1 MoufangLoop
MoufangLoop( n, m )  function
Returns: The mth Moufang loop of order n in the library.
For nle 63, our catalog numbers coincide with those of Goodaire et al.
[GMR99]. The classification of Moufang loops of order 64 and 81 was carried
out in [NV07]. The classification of Moufang loops of order 243 was carried
out by Slattery and Zenisek [SZ12].
The extent of the library is summarized below:
\begin{array}{r|rrrrrrrrrrrrrrrrrr}
order&12&16&20&24&28&32&36&40&42&44&48&52&54&56&60&64&81&243\cr
loops&1 &5 &1 &5 &1 &71&4 &5 &1 &1 &51&1 &2 &4 &5 &4262& 5 &72
\end{array} 
The octonion loop of order 16 (i.e., the multiplication loop of the basis
elements in the 8-dimensional standard real octonion algebra) can be
obtained as MoufangLoop(16,3).
9.5 Code Loops
The library named code 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 [NV07] for a classification of small code loops.
9.5-1 CodeLoop
CodeLoop( n, m )  function
Returns: The mth code loop of order n in the library.
9.6 Steiner Loops
Here is how the libary named Steiner is described within LOOPS:
 Example 
gap> DisplayLibraryInfo( "Steiner" );

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


Our labeling of Steiner loops of order 16 coincides with the labeling of
Steiner triple systems of order 15 in [CR99].
9.6-1 SteinerLoop
SteinerLoop( n, m )  function
Returns: The mth Steiner loop of order n in the library.
9.7 Conjugacy Closed Loops
The library named RCC contains all nonassocitive right conjugacy closed
loops of order nle 27 up to isomorphism. The data for the library was
generated by Katharina Artic [Art15] who can also provide additional data
for all right conjugacy closed loops of order nle 31.
Let Q be a right conjugacy closed loop, G its right multiplication group and
T its right section. Then ⟨ T⟩ = G is a transitive group, and T is a union
of conjugacy classes of G. Every right conjugacy closed loop of order n can
therefore be represented as a union of certain conjugacy classes of a
transitive group of degree n. This is how right conjugacy closed loops of
order less than 28 are represented in LOOPS. The following table summarizes
the number of right conjugacy closed loops of a given order up to
isomorphism:
\begin{array}{r|rrrrrrrrrrrrrrrr} order &6& 8&9&10& 12&14&15& 16& 18&
20&\cr loops &3&19&5&16&155&97& 17&6317&1901&8248&\cr \hline order
&21& 22& 24& 25& 26& 27\cr loops &119&10487&471995& 119&151971&152701
\end{array} 
9.7-1 RCCLoop and RightConjugacyClosedLoop
RCCLoop( n, m )  function
RightConjugacyClosedLoop( n, m )  function
Returns: The mth right conjugacy closed loop of order n in the library.
9.7-2 LCCLoop and LeftConjugacyClosedLoop
LCCLoop( n, m )  function
LeftConjugacyClosedLoop( n, m )  function
Returns: The mth left conjugacy closed loop of order n in the library.
Remark: Only the right conjugacy closed loops are stored in the library.
Left conjugacy closed loops are obtained from right conjugacy closed loops
via Opposite.
The library named CC contains all CC loops of order 2le 2^kle 64, 3le 3^kle
81, 5le 5^kle 125, 7le 7^kle 343, all nonassociative CC loops of order less
than 28, and all nonassociative CC loops of order p^2 and 2p for any odd
prime p.
By results of Kunen [Kun00], for every odd prime p there are precisely 3
nonassociative conjugacy closed loops of order p^2. Csörgő and Drápal [CD05]
described these 3 loops by multiplicative formulas on Z_p^2 and Z_p × Z_p as
follows:
 Case m = 1:Let k be the smallest positive integer relatively prime to
p and such that k is a square modulo p (i.e., k=1). Define
multiplication on Z_p^2 by x⋅ y = x + y + kpx^2y.
 Case m = 2: Let k be the smallest positive integer relatively prime to
p and such that k is not a square modulo p. Define multiplication on
Z_p^2 by x⋅ y = x + y + kpx^2y.
 Case m = 3: Define multiplication on Z_p × Z_p by (x,a)(y,b) = (x+y,
a+b+x^2y ).
Moreover, Wilson [WJ75] constructed a nonassociative conjugacy closed loop
of order 2p for every odd prime p, and Kunen [Kun00] showed that there are
no other nonassociative conjugacy closed oops of this order. Here is the
relevant multiplication formula on Z_2 × Z_p: (0,m)(0,n) = ( 0, m + n ),
(0,m)(1,n) = ( 1, -m + n ), (1,m)(0,n) = ( 1, m + n), (1,m)(1,n) = ( 0, 1 -
m + n ).
9.7-3 CCLoop and ConjugacyClosedLoop
CCLoop( n, m )  function
ConjugacyClosedLoop( n, m )  function
Returns: The mth conjugacy closed loop of order n in the library.
9.8 Small Loops
The library named small contains all nonassociative loops of order 5 and 6.
There are 5 and 107 such loops, respectively.
9.8-1 SmallLoop
SmallLoop( n, m )  function
Returns: The mth loop of order n in the library.
9.9 Paige Loops
Paige loops are nonassociative finite simple Moufang loops. By [Lie87],
there is precisely one Paige loop for every finite field.
The library named Paige contains the smallest nonassociative simple Moufang
loop.
9.9-1 PaigeLoop
PaigeLoop( q )  function
Returns: The Paige loop constructed over the finite field of order q. Only
the case q=2 is implemented.
9.10 Nilpotent Loops
The library named nilpotent 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, 8 of order 9 and 1043 of order 10.
See [DV09] for more on enumeration of nilpotent loops. For instance, there
are 2623755 nilpotent loops of order 12, and 123794003928541545927226368
nilpotent loops of order 22.
9.10-1 NilpotentLoop
NilpotentLoop( n, m )  function
Returns: The mth nilpotent loop of order n in the library.
9.11 Automorphic Loops
The library named automorphic 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).
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 [Gre14], [SV17]. Only the left Bruck loops are stored
in the library.
9.11-1 AutomorphicLoop
AutomorphicLoop( n, m )  function
Returns: The mth automorphic loop of order n in the library.
9.12 Interesting Loops
The library named interesting 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.
9.12-1 InterestingLoop
InterestingLoop( n, m )  function
Returns: The mth interesting loop of order n in the library.
9.13 Libraries of Loops Up To Isotopism
For the library named small we also provide the corresponding library of
loops up to isotopism. In general, given a library named libname, the
corresponding library of loops up to isotopism is named itp lib, and the
loops can be retrieved by the template ItpLibLoop(n,m).
9.13-1 ItpSmallLoop
ItpSmallLoop( n, m )  function
Returns: The mth small loop of order n up to isotopism in the library.
 Example 
gap> SmallLoop( 6, 14 );

<small loop 6/14>

gap> ItpSmallLoop( 6, 14 );

<small loop 6/42>

gap> LibraryLoop( "itp small", 6, 14 );

<small loop 6/42>


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
14th small loop of order 6 up to isotopism is in fact the 42nd small loop of
order 6 up to isomorphism.