\Chapter{Libraries of small loops} \label{lib} Libraries of small loops form an integral part of {\LOOPS}. Loops in libraries are stored up to isomorphism or up to isotopism. The name of a library up to isotopism starts with <itp>. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{A typical library} A library named <my Library> is stored in file `data/mylibrary.tbl', and the corresponding data structure is named `my_library_data'. In most cases, the array `my_library_data' consists of three lists \beginlist%unordered \item{$\circ$} `my_library_data[ 1 ]' is a list of orders for which there is at least one loop in the library, \item{$\circ$} `my_library_data[ 2 ][ k ]' is the number of loops of order `my_library_data[ 1 ][ k ]' in the library, \item{$\circ$} `my_library_data[ 3 ][ s ]' contains data necessary to produce the $s$th loop in the library. \endlist The format of `my_library_data[ 3 ]' depends on the particular library and is not standardized in any way. The user can retrieve the $m$th loop of order $n$ from library named <my Library> according to the template \>MyLibraryLoop( <n>, <m> ) F It is also possible to obtain the same loop with \>LibraryLoop( <name>, <n>, <m> ) F where <name> is the name of the library. For example, when the library is called <left Bol>, the corresponding data file is called `data/leftbol.tbl', the corresponding data structure is named `left_bol_data', and the $m$th left Bol loop of order $n$ is obtained via \){LeftBolLoop( <n>, <m> )} or via \){LibraryLoop(\"left Bol\", <n>, <m> )} We are now going to describe the individual libraries in detail. A brief information about the library named <name> can also be obtained in {\LOOPS} with \>DisplayLibraryInfo( <name> ) F %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Left Bol loops} The library named <left Bol> contains all nonassociative left Bol loops of order less than $17$, including Moufang loops. There are $6$ such loops of order $8$, $1$ of order $12$, $2$ of order $15$, and $2038$ of order $16$. (The classification of left Bol loops of order $16$ was first accomplished by Moorhouse \cite{Mo}. Our library was generated independently, and agrees with Moorhouse's results.) Following the general pattern, the $m$th nonassociative left Bol loop of order $n$ is obtained by \>LeftBolLoop( <n>, <m> ) F %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Moufang loops} The library named <Moufang> contains all nonassociative Moufang loops of order $n\le 64$ and $n=81$. The $m$th nonassociative Moufang loop of order $n$ is obtained by \>MoufangLoop( <n>, <m> ) F For $n\le 63$, our catalog numbers coincide with those of Goodaire et al. \cite{Go}. The classification of Moufang loops of order $64$ and $81$ was carried out in \cite{NaVo2007}. The extent of the library is summarized below: $$ \matrix{ {\rm order}&12&16&20&24&28&32&36&40&42&44&48&52&54&56&60&64&81\cr {\rm loops\ in\ the\ libary}&1 &5 &1 &5 &1 &71&4 &5 &1 &1 &51&1 &2 &4 &5 &4262& 5 } $$ The <octonion loop> % \index{octonion loop} % \index{octonions} of order $16$ (i.e., the multiplication loop of the $\pm$ basis elements in the $8$-dimensional standard real octonion algebra) is `MoufangLoop( 16, 3 )'. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{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 \cite{NaVo2007} for a classification of small code loops. The $m$th nonassociative code loop of order $n$ is obtained by \>CodeLoop( <n>, <m> ) F %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Steiner loops} Here is how the libary <Steiner> is described within {\LOOPS}: \beginexample 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 \endexample The $m$th Steiner loop of order $n$ is obtained by \>SteinerLoop( <n>, <m> ) F Our catalog numbers coincide with those of Colbourn and Rosa \cite{CoRo}. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{CC-loops} By results of Kunen \cite{Ku}, for every odd prime $p$ there are precisely 3 nonassociative conjugacy closed loops\index{conjugacy closed loop} of order $p^2$. Cs\accent127org\H{o} and Dr\'apal \cite{CsDr} described these 3 loops by multiplicative formulas on $\Z_{p^2}$ and $\Z_p \times \Z_p$. *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\cdot 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\cdot y = x + y + kpx^2y$. *Case $m = 3$:* Define multiplication on $\Z_p \times \Z_p$ by $(x,a)(y,b) = (x+y, a+b+x^2y )$. Moreover, Wilson \cite{Wi} constructed a nonassociative CC-loop of order $2p$ for every odd prime p, and Kunen \cite{Ku} showed that there are no other nonassociative CC-loops of this order. Here is the construction: Let $N$ be an additive cyclic group of order $n>2$, $N = \langle 1\rangle$. Let $G$ be the additive cyclic group of order $2$. Define multiplication on $L = G \times N$ as follows: $$ \matrix{ (0,m)(0,n) = ( 0, m + n ),&(0,m)(1,n) = ( 1, -m + n ),\cr (1,m)(0,n) = ( 1, m + n ),&(1,m)(1,n) = ( 0, 1 - m + n ). } $$ The CC-loops described above can be obtained by \>CCLoop( <n>, <m> ) F %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Small loops} The library named <small> contains all nonassociative loops of order 5 and 6. There are 5 and 107 such loops, respectively. The loops are obtained by \>SmallLoop( <n>, <m> ) F %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Paige loops} <Paige loops>\index{Paige loop} are nonassociative finite simple Moufang loops. By \cite{Li}, there is precisely one Paige loop for every finite field ${\rm{GF}}(q)$. The library named <Paige> contains the smallest nonassociative simple Moufang loop \>PaigeLoop( <2> ) F %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Interesting loops} The library named <interesting> contains some loops that are illustrative for the theory of loops. At this point, the library contains a nonassociative loop of order $5$, a nonassociative nilpotent loop of order $6$, a nonMoufang left Bol loop of order $16$, and the loop of sedenions\index{sedenions} of order $32$ (sedenions generalize octonions). The loops are obtained with \>InterestingLoop( <n>, <m> ) F %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Libraries of loops up to isotopism} For the library <small> we also provide the corresponding library of loops up to isotopism. In general, given a library named <lib>, the corresponding library up to isotopism is named <itp lib>, and the loops can be retrieved by the template function `ItpLibLoop( n, m )'. Thus we have \>ItpSmallLoop( n, m ) O Here is an example: \beginexample 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> \endexample 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 $14$th small loop of order $6$ up to isotopism is in fact the $42$nd small loop of order $6$ up to isomorphism. Here is the list of all supported libraries up to isotopism and their extent, as displayed by \LOOPS: \beginexample gap> DisplayLibraryInfo("itp small"); The library contains all nonassociative loops of order less than 7 up to isotopism. ------ Extent of the library: 1 loop of order 5 20 loops of order 6 \endexample