Copy of LOOPS 3.3.0

This commit is contained in:
Glen Whitney 2017-10-16 21:43:09 +02:00
commit 7e8b3b5562
510 changed files with 97978 additions and 0 deletions

285
doc/chap0.txt Normal file
View file

@ -0,0 +1,285 @@
The LOOPS Package
Computing with quasigroups and loops in GAP
Version 3.3.0
Gábor P. Nagy
Petr Vojtěchovský
Gábor P. Nagy
Email: mailto:nagyg@math.u-szeged.hu
Address: Department of Mathematics, University of Szeged
Petr Vojtěchovský
Email: mailto:petr@math.du.edu
Address: Department of Mathematics, University of Denver
-------------------------------------------------------
Copyright
© 2016 Gábor P. Nagy and Petr Vojtěchovský.
-------------------------------------------------------
Contents (Loops)
1 Introduction
1.1 License
1.2 Installation
1.3 Documentation
1.4 Test Files
1.5 Memory Management
1.6 Feedback
1.7 Acknowledgment
2 Mathematical Background
2.1 Quasigroups and Loops
2.2 Translations
2.3 Subquasigroups and Subloops
2.4 Nilpotence and Solvability
2.5 Associators and Commutators
2.6 Homomorphism and Homotopisms
3 How the Package Works
3.1 Representing Quasigroups
3.2 Conversions between magmas, quasigroups, loops and groups
3.3 Calculating with Quasigroups
3.4 Naming, Viewing and Printing Quasigroups and their Elements
3.4-1 SetQuasigroupElmName and SetLoopElmName
4 Creating Quasigroups and Loops
4.1 About Cayley Tables
4.2 Testing Cayley Tables
4.2-1 IsQuasigroupTable and IsQuasigroupCayleyTable
4.2-2 IsLoopTable and IsLoopCayleyTable
4.3 Canonical and Normalized Cayley Tables
4.3-1 CanonicalCayleyTable
4.3-2 CanonicalCopy
4.3-3 NormalizedQuasigroupTable
4.4 Creating Quasigroups and Loops From Cayley Tables
4.4-1 QuasigroupByCayleyTable and LoopByCayleyTable
4.5 Creating Quasigroups and Loops from a File
4.5-1 QuasigroupFromFile and LoopFromFile
4.6 Creating Quasigroups and Loops From Sections
4.6-1 CayleyTableByPerms
4.6-2 QuasigroupByLeftSection and LoopByLeftSection
4.6-3 QuasigroupByRightSection and LoopByRightSection
4.7 Creating Quasigroups and Loops From Folders
4.7-1 QuasigroupByRightFolder and LoopByRightFolder
4.8 Creating Quasigroups and Loops By Nuclear Extensions
4.8-1 NuclearExtension
4.8-2 LoopByExtension
4.9 Random Quasigroups and Loops
4.9-1 RandomQuasigroup and RandomLoop
4.9-2 RandomNilpotentLoop
4.10 Conversions
4.10-1 IntoQuasigroup
4.10-2 PrincipalLoopIsotope
4.10-3 IntoLoop
4.10-4 IntoGroup
4.11 Products of Quasigroups and Loops
4.11-1 DirectProduct
4.12 Opposite Quasigroups and Loops
4.12-1 Opposite, OppositeQuasigroup and OppositeLoop
5 Basic Methods And Attributes
5.1 Basic Attributes
5.1-1 Elements
5.1-2 CayleyTable
5.1-3 One
5.1-4 Size
5.1-5 Exponent
5.2 Basic Arithmetic Operations
5.2-1 LeftDivision and RightDivision
5.2-2 LeftDivisionCayleyTable and RightDivisionCayleyTable
5.3 Powers and Inverses
5.3-1 LeftInverse, RightInverse and Inverse
5.4 Associators and Commutators
5.4-1 Associator
5.4-2 Commutator
5.5 Generators
5.5-1 GeneratorsOfQuasigroup and GeneratorsOfLoop
5.5-2 GeneratorsSmallest
5.5-3 SmallGeneratingSet
6 Methods Based on Permutation Groups
6.1 Parent of a Quasigroup
6.1-1 Parent
6.1-2 Position
6.1-3 PosInParent
6.2 Subquasigroups and Subloops
6.2-1 Subquasigroup
6.2-2 Subloop
6.2-3 IsSubquasigroup and IsSubloop
6.2-4 AllSubquasigroups
6.2-5 AllSubloops
6.2-6 RightCosets
6.2-7 RightTransversal
6.3 Translations and Sections
6.3-1 LeftTranslation and RightTranslation
6.3-2 LeftSection and RightSection
6.4 Multiplication Groups
6.4-1 LeftMutliplicationGroup, RightMultiplicationGroup and
MultiplicationGroup
6.4-2 RelativeLeftMultiplicationGroup, RelativeRightMultiplicationGroup
and RelativeMultiplicationGroup
6.5 Inner Mapping Groups
6.5-1 LeftInnerMapping, RightInnerMapping, MiddleInnerMapping
6.5-2 LeftInnerMappingGroup, RightInnerMappingGroup,
MiddleInnerMappingGroup
6.5-3 InnerMappingGroup
6.6 Nuclei, Commutant, Center, and Associator Subloop
6.6-1 LeftNucles, MiddleNucleus, and RightNucleus
6.6-2 Nuc, NucleusOfQuasigroup and NucleusOfLoop
6.6-3 Commutant
6.6-4 Center
6.6-5 AssociatorSubloop
6.7 Normal Subloops and Simple Loops
6.7-1 IsNormal
6.7-2 NormalClosure
6.7-3 IsSimple
6.8 Factor Loops
6.8-1 FactorLoop
6.8-2 NaturalHomomorphismByNormalSubloop
6.9 Nilpotency and Central Series
6.9-1 IsNilpotent
6.9-2 NilpotencyClassOfLoop
6.9-3 IsStronglyNilpotent
6.9-4 UpperCentralSeries
6.9-5 LowerCentralSeries
6.10 Solvability, Derived Series and Frattini Subloop
6.10-1 IsSolvable
6.10-2 DerivedSubloop
6.10-3 DerivedLength
6.10-4 FrattiniSubloop and FrattinifactorSize
6.10-5 FrattinifactorSize
6.11 Isomorphisms and Automorphisms
6.11-1 IsomorphismQuasigroups
6.11-2 IsomorphismLoops
6.11-3 QuasigroupsUpToIsomorphism
6.11-4 LoopsUpToIsomorphism
6.11-5 AutomorphismGroup
6.11-6 IsomorphicCopyByPerm
6.11-7 IsomorphicCopyByNormalSubloop
6.11-8 Discriminator
6.11-9 AreEqualDiscriminators
6.12 Isotopisms
6.12-1 IsotopismLoops
6.12-2 LoopsUpToIsotopism
7 Testing Properties of Quasigroups and Loops
7.1 Associativity, Commutativity and Generalizations
7.1-1 IsAssociative
7.1-2 IsCommutative
7.1-3 IsPowerAssociative
7.1-4 IsDiassociative
7.2 Inverse Propeties
7.2-1 HasLeftInverseProperty, HasRightInverseProperty and
HasInverseProperty
7.2-2 HasTwosidedInverses
7.2-3 HasWeakInverseProperty
7.2-4 HasAutomorphicInverseProperty
7.2-5 HasAntiautomorphicInverseProperty
7.3 Some Properties of Quasigroups
7.3-1 IsSemisymmetric
7.3-2 IsTotallySymmetric
7.3-3 IsIdempotent
7.3-4 IsSteinerQuasigroup
7.3-5 IsUnipotent
7.3-6 IsLeftDistributive, IsRightDistributive, IsDistributive
7.3-7 IsEntropic and IsMedial
7.4 Loops of Bol Moufang Type
7.4-1 IsExtraLoop
7.4-2 IsMoufangLoop
7.4-3 IsCLoop
7.4-4 IsLeftBolLoop
7.4-5 IsRightBolLoop
7.4-6 IsLCLoop
7.4-7 IsRCLoop
7.4-8 IsLeftNuclearSquareLoop
7.4-9 IsMiddleNuclearSquareLoop
7.4-10 IsRightNuclearSquareLoop
7.4-11 IsNuclearSquareLoop
7.4-12 IsFlexible
7.4-13 IsLeftAlternative
7.4-14 IsRightAlternative
7.4-15 IsAlternative
7.5 Power Alternative Loops
7.5-1 IsLeftPowerAlternative, IsRightPowerAlternative and
IsPowerAlternative
7.6 Conjugacy Closed Loops and Related Properties
7.6-1 IsLCCLoop
7.6-2 IsRCCLoop
7.6-3 IsCCLoop
7.6-4 IsOsbornLoop
7.7 Automorphic Loops
7.7-1 IsLeftAutomorphicLoop
7.7-2 IsMiddleAutomorphicLoop
7.7-3 IsRightAutomorphicLoop
7.7-4 IsAutomorphicLoop
7.8 Additonal Varieties of Loops
7.8-1 IsCodeLoop
7.8-2 IsSteinerLoop
7.8-3 IsLeftBruckLoop and IsLeftKLoop
7.8-4 IsRightBruckLoop and IsRightKLoop
8 Specific Methods
8.1 Core Methods for Bol Loops
8.1-1 AssociatedLeftBruckLoop and AssociatedRightBruckLoop
8.1-2 IsExactGroupFactorization
8.1-3 RightBolLoopByExactGroupFactorization
8.2 Moufang Modifications
8.2-1 LoopByCyclicModification
8.2-2 LoopByDihedralModification
8.2-3 LoopMG2
8.3 Triality for Moufang Loops
8.3-1 TrialityPermGroup
8.3-2 TrialityPcGroup
8.4 Realizing Groups as Multiplication Groups of Loops
8.4-1 AllLoopTablesInGroup
8.4-2 AllProperLoopTablesInGroup
8.4-3 OneLoopTableInGroup
8.4-4 OneProperLoopTableInGroup
8.4-5 AllLoopsWithMltGroup
8.4-6 OneLoopWithMltGroup
9 Libraries of Loops
9.1 A Typical Library
9.1-1 LibraryLoop
9.1-2 MyLibraryLoop
9.1-3 DisplayLibraryInfo
9.2 Left Bol Loops and Right Bol Loops
9.2-1 LeftBolLoop
9.2-2 RightBolLoop
9.3 Moufang Loops
9.3-1 MoufangLoop
9.4 Code Loops
9.4-1 CodeLoop
9.5 Steiner Loops
9.5-1 SteinerLoop
9.6 Conjugacy Closed Loops
9.6-1 RCCLoop and RightConjugacyClosedLoop
9.6-2 LCCLoop and LeftConjugacyClosedLoop
9.6-3 CCLoop and ConjugacyClosedLoop
9.7 Small Loops
9.7-1 SmallLoop
9.8 Paige Loops
9.8-1 PaigeLoop
9.9 Nilpotent Loops
9.9-1 NilpotentLoop
9.10 Automorphic Loops
9.10-1 AutomorphicLoop
9.11 Interesting Loops
9.11-1 InterestingLoop
9.12 Libraries of Loops Up To Isotopism
9.12-1 ItpSmallLoop
A Files
B Filters


550
doc/chap0_mj.html Normal file
View file

@ -0,0 +1,550 @@
<?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="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (Loops) - Contents</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="chap0" 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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap1_mj.html">[Next Chapter]</a>&nbsp; </div>
<p id="mathjaxlink" class="pcenter"><a href="chap0.html">[MathJax off]</a></p>
<p><a id="X7D2C85EC87DD46E5" name="X7D2C85EC87DD46E5"></a></p>
<div class="pcenter">
<h1>The <strong class="pkg">LOOPS</strong> Package</h1>
<h2>Computing with quasigroups and loops in <strong class="pkg">GAP</strong></h2>
<p>Version 3.3.0</p>
</div>
<p><b>Gábor P. Nagy
</b>
<br />Email: <span class="URL"><a href="mailto:nagyg@math.u-szeged.hu">nagyg@math.u-szeged.hu</a></span>
<br />Address: <br />Department of Mathematics, University of Szeged
</p><p><b>Petr Vojtěchovský
</b>
<br />Email: <span class="URL"><a href="mailto:petr@math.du.edu">petr@math.du.edu</a></span>
<br />Address: <br />Department of Mathematics, University of Denver
</p>
<p><a id="X81488B807F2A1CF1" name="X81488B807F2A1CF1"></a></p>
<h3>Copyright</h3>
<p>© 2016 Gábor P. Nagy and Petr Vojtěchovský.</p>
<p><a id="X8537FEB07AF2BEC8" name="X8537FEB07AF2BEC8"></a></p>
<div class="contents">
<h3>Contents<a id="contents" name="contents"></a></h3>
<div class="ContChap"><a href="chap1_mj.html#X7DFB63A97E67C0A1">1 <span class="Heading">Introduction</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap1_mj.html#X861E5DF986F89AE2">1.1 <span class="Heading">License</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap1_mj.html#X8360C04082558A12">1.2 <span class="Heading">Installation</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap1_mj.html#X7F4F8D6F7CD6B765">1.3 <span class="Heading">Documentation</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap1_mj.html#X801051CC86594630">1.4 <span class="Heading">Test Files</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap1_mj.html#X79342B4E7E55FD0F">1.5 <span class="Heading">Memory Management</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap1_mj.html#X80D704CC7EBFDF7A">1.6 <span class="Heading">Feedback</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap1_mj.html#X811B08C07BD79486">1.7 <span class="Heading">Acknowledgment</span></a>
</span>
</div>
</div>
<div class="ContChap"><a href="chap2_mj.html#X7EF1B6708069B0C7">2 <span class="Heading">Mathematical Background</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap2_mj.html#X80243DE5826583B8">2.1 <span class="Heading">Quasigroups and Loops</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap2_mj.html#X7EC01B437CC2B2C9">2.2 <span class="Heading">Translations</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap2_mj.html#X83EDF04F7952143F">2.3 <span class="Heading">Subquasigroups and Subloops</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap2_mj.html#X869CBCE381E2C422">2.4 <span class="Heading">Nilpotence and Solvability</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap2_mj.html#X7E0849977869E53D">2.5 <span class="Heading">Associators and Commutators</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap2_mj.html#X791066ED7DD9F254">2.6 <span class="Heading">Homomorphism and Homotopisms</span></a>
</span>
</div>
</div>
<div class="ContChap"><a href="chap3_mj.html#X7A6DF65E826B8CFF">3 <span class="Heading">How the Package Works</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap3_mj.html#X86F02BBD87FEA1C6">3.1 <span class="Heading">Representing Quasigroups</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap3_mj.html#X807D76EF81B9D061">3.2 <span class="Heading">Conversions between magmas, quasigroups, loops and groups</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap3_mj.html#X87E49ED884FA6DC4">3.3 <span class="Heading">Calculating with Quasigroups</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap3_mj.html#X7D75C7A6787AF72A">3.4 <span class="Heading">Naming, Viewing and Printing Quasigroups and their Elements</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap3_mj.html#X7A7EB1B579273D07">3.4-1 <span class="Heading">SetQuasigroupElmName and SetLoopElmName</span></a>
</span>
</div></div>
</div>
<div class="ContChap"><a href="chap4_mj.html#X7AA4B9C0877550ED">4 <span class="Heading">Creating Quasigroups and Loops</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X7DE8405B82BC36A9">4.1 <span class="Heading">About Cayley Tables</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X7827BF877AA87246">4.2 <span class="Heading">Testing Cayley Tables</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X81179355869B9DFE">4.2-1 <span class="Heading">IsQuasigroupTable and IsQuasigroupCayleyTable</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X7AAE48507A471069">4.2-2 <span class="Heading">IsLoopTable and IsLoopCayleyTable</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X7BA749CA7DB4EA87">4.3 <span class="Heading">Canonical and Normalized Cayley Tables</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X7971CCB87DAFF7B9">4.3-1 CanonicalCayleyTable</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X7B816D887F46E6B7">4.3-2 CanonicalCopy</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X821A2F9E85FAD8BF">4.3-3 NormalizedQuasigroupTable</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X7C2372BB8739C5A2">4.4 <span class="Heading">Creating Quasigroups and Loops From Cayley Tables</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X860135BB85F2DB19">4.4-1 <span class="Heading">QuasigroupByCayleyTable and LoopByCayleyTable</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X849944F17E2B37F8">4.5 <span class="Heading">Creating Quasigroups and Loops from a File</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X81A1DB918057933E">4.5-1 <span class="Heading">QuasigroupFromFile and LoopFromFile</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X820E67F88319C38B">4.6 <span class="Heading">Creating Quasigroups and Loops From Sections</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X7F94C8DD7E1A3470">4.6-1 CayleyTableByPerms</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X7EC1EB0D7B8382A1">4.6-2 <span class="Heading">QuasigroupByLeftSection and LoopByLeftSection</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X80B436ED7CC0749E">4.6-3 <span class="Heading">QuasigroupByRightSection and LoopByRightSection</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X85ABE99E84E5B0E8">4.7 <span class="Heading">Creating Quasigroups and Loops From Folders</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X83168E62861F70AB">4.7-1 <span class="Heading">QuasigroupByRightFolder and LoopByRightFolder</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X8759431780AC81A9">4.8 <span class="Heading">Creating Quasigroups and Loops By Nuclear Extensions</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X784733C67AA6B2FA">4.8-1 NuclearExtension</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X79AEE93E7E15B802">4.8-2 LoopByExtension</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X7AE29A1A7AA5C25A">4.9 <span class="Heading">Random Quasigroups and Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X8271C0F5786B6FA9">4.9-1 <span class="Heading">RandomQuasigroup and RandomLoop</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X817132C887D3FD3A">4.9-2 RandomNilpotentLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X7BC2D8877A943D74">4.10 <span class="Heading">Conversions</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X84575A4B78CC545E">4.10-1 IntoQuasigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X79CEA57C850C7070">4.10-2 PrincipalLoopIsotope</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X7A59C36683118E5A">4.10-3 IntoLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X7B5C6C64831B866E">4.10-4 IntoGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X79B7327C79029086">4.11 <span class="Heading">Products of Quasigroups and Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X861BA02C7902A4F4">4.11-1 DirectProduct</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X7865FC8D7854C2E3">4.12 <span class="Heading">Opposite Quasigroups and Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X87B6AED47EE2BCD3">4.12-1 <span class="Heading">Opposite, OppositeQuasigroup and OppositeLoop</span></a>
</span>
</div></div>
</div>
<div class="ContChap"><a href="chap5_mj.html#X7B9F619279641FAA">5 <span class="Heading">Basic Methods And Attributes</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap5_mj.html#X8373A7348161DB23">5.1 <span class="Heading">Basic Attributes</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X79B130FC7906FB4C">5.1-1 Elements</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X85457FA27DE7114D">5.1-2 CayleyTable</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X8129A6877FFD804B">5.1-3 One</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X858ADA3B7A684421">5.1-4 Size</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X7D44470C7DA59C1C">5.1-5 Exponent</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap5_mj.html#X82F2CA4A848ABD2B">5.2 <span class="Heading">Basic Arithmetic Operations</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X7D5956967BCC1834">5.2-1 <span class="Heading">LeftDivision and RightDivision</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X804F67C8796A0EB3">5.2-2 <span class="Heading">LeftDivisionCayleyTable and RightDivisionCayleyTable</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap5_mj.html#X810850247ADB4EE9">5.3 <span class="Heading">Powers and Inverses</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X805781838020CF44">5.3-1 <span class="Heading">LeftInverse, RightInverse and Inverse</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap5_mj.html#X7E0849977869E53D">5.4 <span class="Heading">Associators and Commutators</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X82B7448879B91F7B">5.4-1 Associator</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X7D624A9587FB1FE5">5.4-2 Commutator</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap5_mj.html#X7BD5B55C802805B4">5.5 <span class="Heading">Generators</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X83944A777D161D10">5.5-1 <span class="Heading">GeneratorsOfQuasigroup and GeneratorsOfLoop</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X82FD78AF7F80A0E2">5.5-2 GeneratorsSmallest</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X814DBABC878D5232">5.5-3 SmallGeneratingSet</a></span>
</div></div>
</div>
<div class="ContChap"><a href="chap6_mj.html#X794A04C5854D352B">6 <span class="Heading">Methods Based on Permutation Groups</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X8731D818827C08F3">6.1 <span class="Heading">Parent of a Quasigroup</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7BC856CC7F116BB0">6.1-1 Parent</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X79975EC6783B4293">6.1-2 Position</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X832295DE866E44EE">6.1-3 PosInParent</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X83EDF04F7952143F">6.2 <span class="Heading">Subquasigroups and Subloops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7DD511FF864FCDFF">6.2-1 Subquasigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X84E6744E804AE830">6.2-2 Subloop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X87AC8B7E80CE9260">6.2-3 <span class="Heading">IsSubquasigroup and IsSubloop</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X859B6C8183537E75">6.2-4 AllSubquasigroups</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X81EF252585592001">6.2-5 AllSubloops</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X835F48248571364F">6.2-6 RightCosets</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X85C65D06822E716F">6.2-7 RightTransversal</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X78AA3D177CCA49FF">6.3 <span class="Heading">Translations and Sections</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7B45B48C7C4D6061">6.3-1 <span class="Heading">LeftTranslation and RightTranslation</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7EB9197C80FB4664">6.3-2 <span class="Heading">LeftSection and RightSection</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X78ED50F578A88046">6.4 <span class="Heading">Multiplication Groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X87302BE983A5FC61">6.4-1 <span class="Heading">LeftMutliplicationGroup, RightMultiplicationGroup and MultiplicationGroup</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X847256B779E1E7E5">6.4-2 <span class="Heading">RelativeLeftMultiplicationGroup, RelativeRightMultiplicationGroup and RelativeMultiplicationGroup</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X8740D61178ACD217">6.5 <span class="Heading">Inner Mapping Groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7EE1E78C856C6F7C">6.5-1 <span class="Heading">LeftInnerMapping, RightInnerMapping, MiddleInnerMapping</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X79CDA09A7D48BF2B">6.5-2 <span class="Heading">LeftInnerMappingGroup, RightInnerMappingGroup, MiddleInnerMappingGroup</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X82513A3B7C3A6420">6.5-3 InnerMappingGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X7B45C2AF7C2E28AB">6.6 <span class="Heading">Nuclei, Commutant, Center, and Associator Subloop</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7DF536FC85BBD1D2">6.6-1 <span class="Heading">LeftNucles, MiddleNucleus, and RightNucleus</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X84D389677A91C290">6.6-2 <span class="Heading">Nuc, NucleusOfQuasigroup and NucleusOfLoop</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7C8428DE791F3CE1">6.6-3 Commutant</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7C1FBE7A84DD4873">6.6-4 Center</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7F7FDE82780EDD7E">6.6-5 AssociatorSubloop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X85B650D284FE39F3">6.7 <span class="Heading">Normal Subloops and Simple Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X838186F9836F678C">6.7-1 IsNormal</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7BDEA0A98720D1BB">6.7-2 NormalClosure</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7D8E63A7824037CC">6.7-3 IsSimple</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X87F66DB383C29A4A">6.8 <span class="Heading">Factor Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X83E1953980E2DE2F">6.8-1 FactorLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X870FCB497AECC730">6.8-2 NaturalHomomorphismByNormalSubloop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X821F40748401D698">6.9 <span class="Heading">Nilpotency and Central Series</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X78A4B93781C96AAE">6.9-1 IsNilpotent</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7D5FC62581A99482">6.9-2 NilpotencyClassOfLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7E7C2D117B55F6A0">6.9-3 IsStronglyNilpotent</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7ED37AA07BEE79E0">6.9-4 UpperCentralSeries</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X817BDBC2812992ED">6.9-5 LowerCentralSeries</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X83A38A6C7EDBCA63">6.10 <span class="Heading">Solvability, Derived Series and Frattini Subloop</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X79B10B337A3B1C6E">6.10-1 IsSolvable</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7A82DC4680DAD67C">6.10-2 DerivedSubloop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7A9AA1577CEC891F">6.10-3 DerivedLength</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X85BD2C517FA7A47E">6.10-4 <span class="Heading">FrattiniSubloop and FrattinifactorSize</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X855286367A2D5A54">6.10-5 FrattinifactorSize</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X81F3496578EAA74E">6.11 <span class="Heading">Isomorphisms and Automorphisms</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X801067F67E5292F7">6.11-1 IsomorphismQuasigroups</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7D7B10D6836FCA9F">6.11-2 IsomorphismLoops</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X82373C5479574F22">6.11-3 QuasigroupsUpToIsomorphism</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X8308F38283C61B20">6.11-4 LoopsUpToIsomorphism</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X87677B0787B4461A">6.11-5 AutomorphismGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X85B3E22679FD8D81">6.11-6 IsomorphicCopyByPerm</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X8121DE3A78795040">6.11-7 IsomorphicCopyByNormalSubloop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7D09D8957E4A0973">6.11-8 Discriminator</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X812F0DEE7C896E18">6.11-9 AreEqualDiscriminators</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X7E996BDD81E594F9">6.12 <span class="Heading">Isotopisms</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X84C5ADE77F910F63">6.12-1 IsotopismLoops</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X841E540B7A7EF29F">6.12-2 LoopsUpToIsotopism</a></span>
</div></div>
</div>
<div class="ContChap"><a href="chap7_mj.html#X7910E575825C713E">7 <span class="Heading">Testing Properties of Quasigroups and Loops</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap7_mj.html#X7960E3FB7A7F0F00">7.1 <span class="Heading">Associativity, Commutativity and Generalizations</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7C83B5A47FD18FB7">7.1-1 IsAssociative</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X830A4A4C795FBC2D">7.1-2 IsCommutative</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7D53EA947F1CDA69">7.1-3 IsPowerAssociative</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X872DCA027E1A4A1D">7.1-4 IsDiassociative</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap7_mj.html#X853841C5820BFEA4">7.2 <span class="Heading">Inverse Propeties</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X85EDD10586596458">7.2-1 <span class="Heading">HasLeftInverseProperty, HasRightInverseProperty and HasInverseProperty</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X86B93E1B7AEA6EDA">7.2-2 HasTwosidedInverses</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X793909B780761EA8">7.2-3 HasWeakInverseProperty</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7F46CE6B7D387158">7.2-4 HasAutomorphicInverseProperty</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X8538D4638232DB51">7.2-5 HasAntiautomorphicInverseProperty</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap7_mj.html#X7D8CB6DA828FD744">7.3 <span class="Heading">Some Properties of Quasigroups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X834848ED85F9012B">7.3-1 IsSemisymmetric</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X834F809B8060B754">7.3-2 IsTotallySymmetric</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7CB5896082D29173">7.3-3 IsIdempotent</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X83DE7DD77C056C1F">7.3-4 IsSteinerQuasigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7CA3DCA07B6CB9BD">7.3-5 IsUnipotent</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7B76FD6E878ED4F1">7.3-6 <span class="Heading">IsLeftDistributive, IsRightDistributive, IsDistributive</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7F23D4D97A38D223">7.3-7 <span class="Heading">IsEntropic and IsMedial</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap7_mj.html#X780D907986EBA6C7">7.4 <span class="Heading">Loops of Bol Moufang Type</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7988AFE27D06ACB5">7.4-1 IsExtraLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7F1C151484C97E61">7.4-2 IsMoufangLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X866F04DC7AE54B7C">7.4-3 IsCLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X801DAAE8834A1A65">7.4-4 IsLeftBolLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X79279F9787E72566">7.4-5 IsRightBolLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X789E0A6979697C4C">7.4-6 IsLCLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7B03CC577802F4AB">7.4-7 IsRCLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X819F285887B5EB9E">7.4-8 IsLeftNuclearSquareLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X8474F55681244A8A">7.4-9 IsMiddleNuclearSquareLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X807B3B21825E3076">7.4-10 IsRightNuclearSquareLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X796650088213229B">7.4-11 IsNuclearSquareLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7C32851A7AF1C45F">7.4-12 IsFlexible</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7DF0196786B9CE08">7.4-13 IsLeftAlternative</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X8416FAD87F148F5D">7.4-14 IsRightAlternative</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X8379356E82DB5DDA">7.4-15 IsAlternative</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap7_mj.html#X83A501387E1AC371">7.5 <span class="Heading">Power Alternative Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X875C3DF681B3FAE2">7.5-1 <span class="Heading">IsLeftPowerAlternative, IsRightPowerAlternative and IsPowerAlternative</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap7_mj.html#X8176B2C47A4629CD">7.6 <span class="Heading">Conjugacy Closed Loops and Related Properties</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X784E08CD7B710AF4">7.6-1 IsLCCLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7B3016B47A1A8213">7.6-2 IsRCCLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X878B614479DCB83F">7.6-3 IsCCLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X8655956878205FC1">7.6-4 IsOsbornLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap7_mj.html#X793B22EA8643C667">7.7 <span class="Heading">Automorphic Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7F063914804659F1">7.7-1 IsLeftAutomorphicLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7DFE830584A769E5">7.7-2 IsMiddleAutomorphicLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7EA9165A87F99E35">7.7-3 IsRightAutomorphicLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7899603184CF13FD">7.7-4 IsAutomorphicLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap7_mj.html#X846F363879BAB349">7.8 <span class="Heading">Additonal Varieties of Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X790FA1188087D5C1">7.8-1 IsCodeLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X793600C9801F4F62">7.8-2 IsSteinerLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X85F1BD4280E44F5B">7.8-3 <span class="Heading">IsLeftBruckLoop and IsLeftKLoop</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X857B373E7B4E0519">7.8-4 <span class="Heading">IsRightBruckLoop and IsRightKLoop</span></a>
</span>
</div></div>
</div>
<div class="ContChap"><a href="chap8_mj.html#X85AFC9C47FD3C03F">8 <span class="Heading">Specific Methods</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap8_mj.html#X7990F2F880E717EE">8.1 <span class="Heading">Core Methods for Bol Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X8664CA927DD73DBE">8.1-1 <span class="Heading">AssociatedLeftBruckLoop and AssociatedRightBruckLoop</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X82FC16F386CE11F1">8.1-2 IsExactGroupFactorization</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X7DCA64807F899127">8.1-3 RightBolLoopByExactGroupFactorization</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap8_mj.html#X819F82737C2A860D">8.2 <span class="Heading">Moufang Modifications</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X7B3165C083709831">8.2-1 LoopByCyclicModification</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X7D7717C587BC2D1E">8.2-2 LoopByDihedralModification</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X7CC6CDB786E9BBA0">8.2-3 LoopMG2</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap8_mj.html#X83E73A767D79FAFD">8.3 <span class="Heading">Triality for Moufang Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X7DB4DE647F6F56F0">8.3-1 TrialityPermGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X82CC977085DFDFE8">8.3-2 TrialityPcGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap8_mj.html#X841ED66B8084AA73">8.4 <span class="Heading">Realizing Groups as Multiplication Groups of Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X804F40087DD1225D">8.4-1 AllLoopTablesInGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X7854C8E382DC8E8B">8.4-2 AllProperLoopTablesInGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X7BFFC66A824BA6AA">8.4-3 OneLoopTableInGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X84C5A76585B335FF">8.4-4 OneProperLoopTableInGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X7E5F1C2879358EEF">8.4-5 AllLoopsWithMltGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X8266DE05824226E6">8.4-6 OneLoopWithMltGroup</a></span>
</div></div>
</div>
<div class="ContChap"><a href="chap9_mj.html#X7BF3EE6E7953560D">9 <span class="Heading">Libraries of Loops</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X874DFEAA79B3377C">9.1 <span class="Heading">A Typical Library</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X849865D6786EEF9B">9.1-1 LibraryLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X78C4B8757902D49F">9.1-2 MyLibraryLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X7A64372E81E713B4">9.1-3 DisplayLibraryInfo</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X7DF21BD685FBF258">9.2 <span class="Heading">Left Bol Loops and Right Bol Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X7EE99F647C537994">9.2-1 LeftBolLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X8774304282654C58">9.2-2 RightBolLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X7953702D84E60AF4">9.3 <span class="Heading">Moufang Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X81E82098822543EE">9.3-1 MoufangLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X7BCA6BCB847F79DC">9.4 <span class="Heading">Code Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X7DB4D3B27BB4D7EE">9.4-1 CodeLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X84E941EE7846D3EE">9.5 <span class="Heading">Steiner Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X87C235457E859AF4">9.5-1 SteinerLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X867E5F0783FEB8B5">9.6 <span class="Heading">Conjugacy Closed Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X806B2DE67990E42F">9.6-1 <span class="Heading">RCCLoop and RightConjugacyClosedLoop</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X80AB8B107D55FB19">9.6-2 <span class="Heading">LCCLoop and LeftConjugacyClosedLoop</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X798BC601843E8916">9.6-3 <span class="Heading">CCLoop and ConjugacyClosedLoop</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X7E3A8F2C790F2CA1">9.7 <span class="Heading">Small Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X7C6EE23E84CD87D3">9.7-1 SmallLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X8135C8FD8714C606">9.8 <span class="Heading">Paige Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X7FCF4D6B7AD66D74">9.8-1 PaigeLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X86695C577A4D1784">9.9 <span class="Heading">Nilpotent Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X7A9C960D86E2AD28">9.9-1 NilpotentLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X793B22EA8643C667">9.10 <span class="Heading">Automorphic Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X784FFA9E7FDA9F43">9.10-1 AutomorphicLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X843BD73F788049F7">9.11 <span class="Heading">Interesting Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X87F24AD3811910D3">9.11-1 InterestingLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X864839227D5C0A90">9.12 <span class="Heading">Libraries of Loops Up To Isotopism</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X850C4C01817A098D">9.12-1 ItpSmallLoop</a></span>
</div></div>
</div>
<div class="ContChap"><a href="chapA_mj.html#X7BC4571A79FFB7D0">A <span class="Heading">Files</span></a>
</div>
<div class="ContChap"><a href="chapB_mj.html#X84EFA4C07D4277BB">B <span class="Heading">Filters</span></a>
</div>
<div class="ContChap"><a href="chapBib_mj.html"><span class="Heading">References</span></a></div>
<div class="ContChap"><a href="chapInd_mj.html"><span class="Heading">Index</span></a></div>
<br />
</div>
<div class="chlinkprevnextbot">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap1_mj.html">[Next Chapter]</a>&nbsp; </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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</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>

100
doc/chap1.txt Normal file
View file

@ -0,0 +1,100 @@
1 Introduction
LOOPS is a package for GAP4 whose purpose is to:
 provide researchers in nonassociative algebra with a powerful
computational tool concerning finite loops and quasigroups,
 extend GAP toward the realm of nonassociative structures.
LOOPS has been accepted as an official package of GAP in May 2015.
1.1 License
LOOPS is free software. You can redistribute it and/or modify it under the
terms of the GNU General Public License version 3 as published by the Free
Software Foundation.
1.2 Installation
Have GAP 4.7 or newer installed on your computer.
If you do not see the subfolder pkg/loops in the main directory of GAP then
download the LOOPS package from the distribution website
http://www.math.du.edu/loops and unpack the downloaded file into the pkg
subfolder.
The package LOOPS can then be loaded to GAP anytime by calling
LoadPackage("loops");.
If you wish to load LOOPS automatically while starting GAP, start GAP,
execute the following commands,
gap> pref := UserPreference( "PackagesToLoad " );;
gap> Add( pref, "loops" );;
gap> SetUserPreference( "PackagesToLoad", pref );;
gap> WriteGapIniFile();;
quit GAP and restart it.
1.3 Documentation
The documentation has been prepared with the GAPDoc package and is therefore
available in several formats: LaTeX, pdf, ps, html, and as an inline help in
GAP. All these formats have been obtained directly from the master XML
documentation file. Consequently, the different formats of the documentation
differ only in their appearance, not in content.
The preferred format of the documentation is html with MathJax turned on.
All formats of the documentation can be found in the doc folder of LOOPS.
You can also download the documentation from the LOOPS distribution website.
The inline GAP help is available upon installing LOOPS and can be accessed
in the usual way, i.e., upon typing ?command, GAP displays the section of
the LOOPS manual containing information about command.
1.4 Test Files
Test files conforming to GAP standards are provided for LOOPS and can be
found in the folder tst. The command ReadPackage("loops","tst/testall.g")
runs all tests for LOOPS.
1.5 Memory Management
Some libraries of loops are loaded only upon explicit demand and can occupy
a lot of memory. For instance, the library or RCC loops occupies close to
100 MB of memory when fully loaded. The command LOOPS_FreeMemory(); will
attempt to free memory by unbinding on-demand library data loaded by LOOPS.
1.6 Feedback
We welcome all comments and suggestions on LOOPS, especially those
concerning the future development of the package. You can contact us by
e-mail.
1.7 Acknowledgment
We thank the following people for sending us remarks and comments, and for
suggesting new functionality of the package: Muniru Asiru, Bjoern Assmann,
Andreas Distler, Aleš Drápal, Steve Flammia, Kenneth W. Johnson, Michael K.
Kinyon, Alexander Konovalov, Frank Lübeck and Jonathan D.H. Smith.
The library of Moufang loops of order 243 was generated from data provided
by Michael C. Slattery and Ashley L. Zenisek. The library of right conjugacy
closed loops of order less than 28 was generated from data provided by
Katharina Artic. The library of commutative automorphic loops of order 27,
81 and 243 was obtained jointly with Izabella Stuhl.
Gábor P. Nagy was supported by OTKA grants F042959 and T043758, and Petr
Vojtěchovský was supported by the 2006 and 2016 University of Denver PROF
grants and the Simons Foundation Collaboration Grant 210176.

145
doc/chap1_mj.html Normal file
View file

@ -0,0 +1,145 @@
<?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="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (Loops) - Chapter 1: Introduction</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="chap1" 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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap0_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chap2_mj.html">[Next Chapter]</a>&nbsp; </div>
<p id="mathjaxlink" class="pcenter"><a href="chap1.html">[MathJax off]</a></p>
<p><a id="X7DFB63A97E67C0A1" name="X7DFB63A97E67C0A1"></a></p>
<div class="ChapSects"><a href="chap1_mj.html#X7DFB63A97E67C0A1">1 <span class="Heading">Introduction</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap1_mj.html#X861E5DF986F89AE2">1.1 <span class="Heading">License</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap1_mj.html#X8360C04082558A12">1.2 <span class="Heading">Installation</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap1_mj.html#X7F4F8D6F7CD6B765">1.3 <span class="Heading">Documentation</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap1_mj.html#X801051CC86594630">1.4 <span class="Heading">Test Files</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap1_mj.html#X79342B4E7E55FD0F">1.5 <span class="Heading">Memory Management</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap1_mj.html#X80D704CC7EBFDF7A">1.6 <span class="Heading">Feedback</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap1_mj.html#X811B08C07BD79486">1.7 <span class="Heading">Acknowledgment</span></a>
</span>
</div>
</div>
<h3>1 <span class="Heading">Introduction</span></h3>
<p><strong class="pkg">LOOPS</strong> is a package for <strong class="pkg">GAP4</strong> whose purpose is to:</p>
<ul>
<li><p>provide researchers in nonassociative algebra with a powerful computational tool concerning finite loops and quasigroups,</p>
</li>
<li><p>extend <strong class="pkg">GAP</strong> toward the realm of nonassociative structures.</p>
</li>
</ul>
<p><strong class="pkg">LOOPS</strong> has been accepted as an official package of <strong class="pkg">GAP</strong> in May 2015.</p>
<p><a id="X861E5DF986F89AE2" name="X861E5DF986F89AE2"></a></p>
<h4>1.1 <span class="Heading">License</span></h4>
<p><strong class="pkg">LOOPS</strong> is free software. You can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.</p>
<p><a id="X8360C04082558A12" name="X8360C04082558A12"></a></p>
<h4>1.2 <span class="Heading">Installation</span></h4>
<p>Have <strong class="pkg">GAP 4.7</strong> or newer installed on your computer.</p>
<p>If you do not see the subfolder <code class="file">pkg/loops</code> in the main directory of <strong class="pkg">GAP</strong> then download the <strong class="pkg">LOOPS</strong> package from the distribution website <span class="URL"><a href="http://www.math.du.edu/loops">http://www.math.du.edu/loops</a></span> and unpack the downloaded file into the <code class="file">pkg</code> subfolder.</p>
<p>The package <strong class="pkg">LOOPS</strong> can then be loaded to <strong class="pkg">GAP</strong> anytime by calling <code class="code">LoadPackage("loops");</code>.</p>
<p>If you wish to load <strong class="pkg">LOOPS</strong> automatically while starting <strong class="pkg">GAP</strong>, start <strong class="pkg">GAP</strong>, execute the following commands,</p>
<pre class="normal">
gap&gt; pref := UserPreference( "PackagesToLoad " );;
gap&gt; Add( pref, "loops" );;
gap&gt; SetUserPreference( "PackagesToLoad", pref );;
gap&gt; WriteGapIniFile();;
</pre>
<p>quit <strong class="pkg">GAP</strong> and restart it.</p>
<p><a id="X7F4F8D6F7CD6B765" name="X7F4F8D6F7CD6B765"></a></p>
<h4>1.3 <span class="Heading">Documentation</span></h4>
<p>The documentation has been prepared with the <strong class="pkg">GAPDoc</strong> package and is therefore available in several formats: LaTeX, pdf, ps, html, and as an inline help in <strong class="pkg">GAP</strong>. All these formats have been obtained directly from the master XML documentation file. Consequently, the different formats of the documentation differ only in their appearance, not in content.</p>
<p>The preferred format of the documentation is html with MathJax turned on.</p>
<p>All formats of the documentation can be found in the <code class="file">doc</code> folder of <strong class="pkg">LOOPS</strong>. You can also download the documentation from the <strong class="pkg">LOOPS</strong> distribution website.</p>
<p>The inline <strong class="pkg">GAP</strong> help is available upon installing <strong class="pkg">LOOPS</strong> and can be accessed in the usual way, i.e., upon typing <code class="code">?command</code>, <strong class="pkg">GAP</strong> displays the section of the <strong class="pkg">LOOPS</strong> manual containing information about <code class="code">command</code>.</p>
<p><a id="X801051CC86594630" name="X801051CC86594630"></a></p>
<h4>1.4 <span class="Heading">Test Files</span></h4>
<p>Test files conforming to <strong class="pkg">GAP</strong> standards are provided for <strong class="pkg">LOOPS</strong> and can be found in the folder <code class="file">tst</code>. The command <code class="code">ReadPackage("loops","tst/testall.g")</code> runs all tests for <strong class="pkg">LOOPS</strong>.</p>
<p><a id="X79342B4E7E55FD0F" name="X79342B4E7E55FD0F"></a></p>
<h4>1.5 <span class="Heading">Memory Management</span></h4>
<p>Some libraries of loops are loaded only upon explicit demand and can occupy a lot of memory. For instance, the library or RCC loops occupies close to 100 MB of memory when fully loaded. The command <code class="code">LOOPS_FreeMemory();</code> will attempt to free memory by unbinding on-demand library data loaded by <strong class="pkg">LOOPS</strong>.</p>
<p><a id="X80D704CC7EBFDF7A" name="X80D704CC7EBFDF7A"></a></p>
<h4>1.6 <span class="Heading">Feedback</span></h4>
<p>We welcome all comments and suggestions on <strong class="pkg">LOOPS</strong>, especially those concerning the future development of the package. You can contact us by e-mail.</p>
<p><a id="X811B08C07BD79486" name="X811B08C07BD79486"></a></p>
<h4>1.7 <span class="Heading">Acknowledgment</span></h4>
<p>We thank the following people for sending us remarks and comments, and for suggesting new functionality of the package: Muniru Asiru, Bjoern Assmann, Andreas Distler, Aleš Drápal, Steve Flammia, Kenneth W. Johnson, Michael K. Kinyon, Alexander Konovalov, Frank Lübeck and Jonathan D.H. Smith.</p>
<p>The library of Moufang loops of order 243 was generated from data provided by Michael C. Slattery and Ashley L. Zenisek. The library of right conjugacy closed loops of order less than 28 was generated from data provided by Katharina Artic. The library of commutative automorphic loops of order 27, 81 and 243 was obtained jointly with Izabella Stuhl.</p>
<p>Gábor P. Nagy was supported by OTKA grants F042959 and T043758, and Petr Vojtěchovský was supported by the 2006 and 2016 University of Denver PROF grants and the Simons Foundation Collaboration Grant 210176.</p>
<div class="chlinkprevnextbot">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap0_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chap2_mj.html">[Next Chapter]</a>&nbsp; </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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</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>

132
doc/chap2.txt Normal file
View file

@ -0,0 +1,132 @@
2 Mathematical Background
We assume that you are familiar with the theory of quasigroups and loops,
for instance with the textbook of Bruck [Bru58] or Pflugfelder [Pfl90].
Nevertheless, we did include definitions and results in this manual in order
to unify terminology and improve legibility of the text. Some general
concepts of quasigroups and loops can be found in this chapter. More special
concepts are defined throughout the text as needed.
2.1 Quasigroups and Loops
A set with one binary operation (denoted ⋅ here) is called groupoid or
magma, the latter name being used in GAP.
An element 1 of a groupoid G is a neutral element or an identity element if
1⋅ x = x⋅ 1 = x for every x in G.
Let G be a groupoid with neutral element 1. Then an element x^-1 is called a
two-sided inverse of x in G if x⋅ x^-1 = x^-1⋅ x = 1.
Recall that groups are associative groupoids with an identity element and
two-sided inverses. Groups can be reached in another way from groupoids,
namely via quasigroups and loops.
A quasigroup Q is a groupoid such that the equation x⋅ y=z has a unique
solution in Q whenever two of the three elements x, y, z of Q are specified.
Note that multiplication tables of finite quasigroups are precisely latin
squares, i.e., square arrays with symbols arranged so that each symbol
occurs in each row and in each column exactly once. A loop L is a quasigroup
with a neutral element.
Groups are clearly loops. Conversely, it is not hard to show that
associative quasigroups are groups.
2.2 Translations
Given an element x of a quasigroup Q, we can associative two permutations of
Q with it: the left translation L_x:Q-> Q defined by y↦ x⋅ y, and the right
translation R_x:Q-> Q defined by y↦ y⋅ x.
The binary operation xbackslash y = L_x^-1(y) is called the left division,
and x/y = R_y^-1(x) is called the right division.
Although it is possible to compose two left (right) translations of a
quasigroup, the resulting permutation is not necessarily a left (right)
translation. The set {L_x|x∈ Q} is called the left section of Q, and {R_x|x∈
Q} is the right section of Q.
Let S_Q be the symmetric group on Q. Then the subgroup Mlt_λ(Q)=⟨ L_x|x∈ Q⟩
of S_Q generated by all left translations is the left multiplication group
of Q. Similarly, Mlt_ρ(Q)= ⟨ R_x|x∈ Q⟩ is the right multiplication group of
Q. The smallest group containing both Mlt_λ(Q) and Mlt_ρ(Q) is called the
multiplication group of Q and is denoted by Mlt(Q).
For a loop Q, the left inner mapping group Inn_λ(Q) is the stabilizer of 1
in Mlt_λ(Q). The right inner mapping group Inn_ρ(Q) is defined dually. The
inner mapping group Inn(Q) is the stabilizer of 1 in Q.
2.3 Subquasigroups and Subloops
A nonempty subset S of a quasigroup Q is a subquasigroup if it is closed
under multiplication and the left and right divisions. In the finite case,
it suffices for S to be closed under multiplication. Subloops are defined
analogously when Q is a loop.
The left nucleus Nuc_λ(Q) of Q consists of all elements x of Q such that
x(yz) = (xy)z for every y, z in Q. The middle nucleus Nuc_μ(Q) and the right
nucleus Nuc_ρ(Q) are defined analogously. The nucleus Nuc(Q) is the
intersection of the left, middle and right nuclei.
The commutant C(Q) of Q consists of all elements x of Q that commute with
all elements of Q. The center Z(Q) of Q is the intersection of Nuc(Q) with
C(Q).
A subloop S of Q is normal in Q if f(S)=S for every inner mapping f of Q.
2.4 Nilpotence and Solvability
For a loop Q define Z_0(Q) = 1 and let Z_i+1(Q) be the preimage of the
center of Q/Z_i(Q) in Q. A loop Q is nilpotent of class n if n is the least
nonnegative integer such that Z_n(Q)=Q. In such case Z_0(Q)le Z_1(Q)le dots
le Z_n(Q) is the upper central series.
The derived subloop Q' of Q is the least normal subloop of Q such that Q/Q'
is a commutative group. Define Q^(0)=Q and let Q^(i+1) be the derived
subloop of Q^(i). Then Q is solvable of class n if n is the least
nonnegative integer such that Q^(n) = 1. In such a case Q^(0)ge Q^(1)ge ⋯ ge
Q^(n) is the derived series of Q.
2.5 Associators and Commutators
Let Q be a quasigroup and let x, y, z be elements of Q. Then the commutator
of x, y is the unique element [x,y] of Q such that xy = [x,y](yx), and the
associator of x, y, z is the unique element [x,y,z] of Q such that (xy)z =
[x,y,z](x(yz)).
The associator subloop A(Q) of Q is the least normal subloop of Q such that
Q/A(Q) is a group.
It is not hard to see that A(Q) is the least normal subloop of Q containing
all commutators, and Q' is the least normal subloop of Q containing all
commutators and associators.
2.6 Homomorphism and Homotopisms
Let K, H be two quasigroups. Then a map f:K-> H is a homomorphism if f(x)⋅
f(y)=f(x⋅ y) for every x, y∈ K. If f is also a bijection, we speak of an
isomorphism, and the two quasigroups are called isomorphic.
An ordered triple (α,β,γ) of maps α, β, γ:K-> H is a homotopism if α(x)⋅β(y)
= γ(x⋅ y) for every x, y in K. If the three maps are bijections, then
(α,β,γ) is an isotopism, and the two quasigroups are isotopic.
Isotopic groups are necessarily isomorphic, but this is certainly not true
for nonassociative quasigroups or loops. In fact, every quasigroup is
isotopic to a loop.
Let (K,⋅), (K,∘) be two quasigroups defined on the same set K. Then an
isotopism (α,β, id_K) is called a principal isotopism. An important class of
principal isotopisms is obtained as follows: Let (K,⋅) be a quasigroup, and
let f, g be elements of K. Define a new operation ∘ on K by x∘ y =
R_g^-1(x)⋅ L_f^-1(y), where R_g, L_f are translations. Then (K,∘) is a
quasigroup isotopic to (K,⋅), in fact a loop with neutral element f⋅ g. We
call (K,∘) a principal loop isotope of (K,⋅).

133
doc/chap2_mj.html Normal file
View file

@ -0,0 +1,133 @@
<?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="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (Loops) - Chapter 2: Mathematical Background</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="chap2" 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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap1_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chap3_mj.html">[Next Chapter]</a>&nbsp; </div>
<p id="mathjaxlink" class="pcenter"><a href="chap2.html">[MathJax off]</a></p>
<p><a id="X7EF1B6708069B0C7" name="X7EF1B6708069B0C7"></a></p>
<div class="ChapSects"><a href="chap2_mj.html#X7EF1B6708069B0C7">2 <span class="Heading">Mathematical Background</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap2_mj.html#X80243DE5826583B8">2.1 <span class="Heading">Quasigroups and Loops</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap2_mj.html#X7EC01B437CC2B2C9">2.2 <span class="Heading">Translations</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap2_mj.html#X83EDF04F7952143F">2.3 <span class="Heading">Subquasigroups and Subloops</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap2_mj.html#X869CBCE381E2C422">2.4 <span class="Heading">Nilpotence and Solvability</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap2_mj.html#X7E0849977869E53D">2.5 <span class="Heading">Associators and Commutators</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap2_mj.html#X791066ED7DD9F254">2.6 <span class="Heading">Homomorphism and Homotopisms</span></a>
</span>
</div>
</div>
<h3>2 <span class="Heading">Mathematical Background</span></h3>
<p>We assume that you are familiar with the theory of quasigroups and loops, for instance with the textbook of Bruck <a href="chapBib_mj.html#biBBr">[Bru58]</a> or Pflugfelder <a href="chapBib_mj.html#biBPf">[Pfl90]</a>. Nevertheless, we did include definitions and results in this manual in order to unify terminology and improve legibility of the text. Some general concepts of quasigroups and loops can be found in this chapter. More special concepts are defined throughout the text as needed.</p>
<p><a id="X80243DE5826583B8" name="X80243DE5826583B8"></a></p>
<h4>2.1 <span class="Heading">Quasigroups and Loops</span></h4>
<p>A set with one binary operation (denoted <span class="SimpleMath">\(\cdot\)</span> here) is called <em>groupoid</em> or <em>magma</em>, the latter name being used in <strong class="pkg">GAP</strong>.</p>
<p>An element <span class="SimpleMath">\(1\)</span> of a groupoid <span class="SimpleMath">\(G\)</span> is a <em>neutral element</em> or an <em>identity element</em> if <span class="SimpleMath">\(1\cdot x = x\cdot 1 = x\)</span> for every <span class="SimpleMath">\(x\)</span> in <span class="SimpleMath">\(G\)</span>.</p>
<p>Let <span class="SimpleMath">\(G\)</span> be a groupoid with neutral element <span class="SimpleMath">\(1\)</span>. Then an element <span class="SimpleMath">\(x^{-1}\)</span> is called a <em>two-sided inverse</em> of <span class="SimpleMath">\(x\)</span> in <span class="SimpleMath">\(G\)</span> if <span class="SimpleMath">\( x\cdot x^{-1} = x^{-1}\cdot x = 1\)</span>.</p>
<p>Recall that groups are associative groupoids with an identity element and two-sided inverses. Groups can be reached in another way from groupoids, namely via quasigroups and loops.</p>
<p>A <em>quasigroup</em> <span class="SimpleMath">\(Q\)</span> is a groupoid such that the equation <span class="SimpleMath">\(x\cdot y=z\)</span> has a unique solution in <span class="SimpleMath">\(Q\)</span> whenever two of the three elements <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span>, <span class="SimpleMath">\(z\)</span> of <span class="SimpleMath">\(Q\)</span> are specified. Note that multiplication tables of finite quasigroups are precisely <em>latin squares</em>, i.e., square arrays with symbols arranged so that each symbol occurs in each row and in each column exactly once. A <em>loop</em> <span class="SimpleMath">\(L\)</span> is a quasigroup with a neutral element.</p>
<p>Groups are clearly loops. Conversely, it is not hard to show that associative quasigroups are groups.</p>
<p><a id="X7EC01B437CC2B2C9" name="X7EC01B437CC2B2C9"></a></p>
<h4>2.2 <span class="Heading">Translations</span></h4>
<p>Given an element <span class="SimpleMath">\(x\)</span> of a quasigroup <span class="SimpleMath">\(Q\)</span>, we can associative two permutations of <span class="SimpleMath">\(Q\)</span> with it: the <em>left translation</em> <span class="SimpleMath">\(L_x:Q\to Q\)</span> defined by <span class="SimpleMath">\(y\mapsto x\cdot y\)</span>, and the <em>right translation</em> <span class="SimpleMath">\(R_x:Q\to Q\)</span> defined by <span class="SimpleMath">\(y\mapsto y\cdot x\)</span>.</p>
<p>The binary operation <span class="SimpleMath">\(x\backslash y = L_x^{-1}(y)\)</span> is called the <em>left division</em>, and <span class="SimpleMath">\(x/y = R_y^{-1}(x)\)</span> is called the <em>right division</em>.</p>
<p>Although it is possible to compose two left (right) translations of a quasigroup, the resulting permutation is not necessarily a left (right) translation. The set <span class="SimpleMath">\(\{L_x|x\in Q\}\)</span> is called the <em>left section</em> of <span class="SimpleMath">\(Q\)</span>, and <span class="SimpleMath">\(\{R_x|x\in Q\}\)</span> is the <em>right section</em> of <span class="SimpleMath">\(Q\)</span>.</p>
<p>Let <span class="SimpleMath">\(S_Q\)</span> be the symmetric group on <span class="SimpleMath">\(Q\)</span>. Then the subgroup <span class="SimpleMath">\({\rm Mlt}_{\lambda}(Q)=\langle L_x|x\in Q\rangle\)</span> of <span class="SimpleMath">\(S_Q\)</span> generated by all left translations is the <em>left multiplication group</em> of <span class="SimpleMath">\(Q\)</span>. Similarly, <span class="SimpleMath">\({\rm Mlt}_{\rho}(Q)= \langle R_x|x\in Q\rangle\)</span> is the <em>right multiplication group</em> of <span class="SimpleMath">\(Q\)</span>. The smallest group containing both <span class="SimpleMath">\({\rm Mlt}_{\lambda}(Q)\)</span> and <span class="SimpleMath">\({\rm Mlt}_{\rho}(Q)\)</span> is called the <em>multiplication group</em> of <span class="SimpleMath">\(Q\)</span> and is denoted by <span class="SimpleMath">\({\rm Mlt}(Q)\)</span>.</p>
<p>For a loop <span class="SimpleMath">\(Q\)</span>, the <em>left inner mapping group</em> <span class="SimpleMath">\({\rm Inn}_{\lambda}(Q)\)</span> is the stabilizer of <span class="SimpleMath">\(1\)</span> in <span class="SimpleMath">\({\rm Mlt}_{\lambda}(Q)\)</span>. The <em>right inner mapping group</em> <span class="SimpleMath">\({\rm Inn}_{\rho}(Q)\)</span> is defined dually. The <em>inner mapping group</em> <span class="SimpleMath">\({\rm Inn}(Q)\)</span> is the stabilizer of <span class="SimpleMath">\(1\)</span> in <span class="SimpleMath">\(Q\)</span>.</p>
<p><a id="X83EDF04F7952143F" name="X83EDF04F7952143F"></a></p>
<h4>2.3 <span class="Heading">Subquasigroups and Subloops</span></h4>
<p>A nonempty subset <span class="SimpleMath">\(S\)</span> of a quasigroup <span class="SimpleMath">\(Q\)</span> is a <em>subquasigroup</em> if it is closed under multiplication and the left and right divisions. In the finite case, it suffices for <span class="SimpleMath">\(S\)</span> to be closed under multiplication. <em>Subloops</em> are defined analogously when <span class="SimpleMath">\(Q\)</span> is a loop.</p>
<p>The <em>left nucleus</em> <span class="SimpleMath">\({\rm Nuc}_{\lambda}(Q)\)</span> of <span class="SimpleMath">\(Q\)</span> consists of all elements <span class="SimpleMath">\(x\)</span> of <span class="SimpleMath">\(Q\)</span> such that <span class="SimpleMath">\(x(yz) = (xy)z\)</span> for every <span class="SimpleMath">\(y\)</span>, <span class="SimpleMath">\(z\)</span> in <span class="SimpleMath">\(Q\)</span>. The <em>middle nucleus</em> <span class="SimpleMath">\({\rm Nuc}_{\mu}(Q)\)</span> and the <em>right nucleus</em> <span class="SimpleMath">\({\rm Nuc}_{\rho}(Q)\)</span> are defined analogously. The <em>nucleus</em> <span class="SimpleMath">\({\rm Nuc}(Q)\)</span> is the intersection of the left, middle and right nuclei.</p>
<p>The <em>commutant</em> <span class="SimpleMath">\(C(Q)\)</span> of <span class="SimpleMath">\(Q\)</span> consists of all elements <span class="SimpleMath">\(x\)</span> of <span class="SimpleMath">\(Q\)</span> that commute with all elements of <span class="SimpleMath">\(Q\)</span>. The <em>center</em> <span class="SimpleMath">\(Z(Q)\)</span> of <span class="SimpleMath">\(Q\)</span> is the intersection of <span class="SimpleMath">\({\rm Nuc}(Q)\)</span> with <span class="SimpleMath">\(C(Q)\)</span>.</p>
<p>A subloop <span class="SimpleMath">\(S\)</span> of <span class="SimpleMath">\(Q\)</span> is <em>normal</em> in <span class="SimpleMath">\(Q\)</span> if <span class="SimpleMath">\(f(S)=S\)</span> for every inner mapping <span class="SimpleMath">\(f\)</span> of <span class="SimpleMath">\(Q\)</span>.</p>
<p><a id="X869CBCE381E2C422" name="X869CBCE381E2C422"></a></p>
<h4>2.4 <span class="Heading">Nilpotence and Solvability</span></h4>
<p>For a loop <span class="SimpleMath">\(Q\)</span> define <span class="SimpleMath">\(Z_0(Q) = 1\)</span> and let <span class="SimpleMath">\(Z_{i+1}(Q)\)</span> be the preimage of the center of <span class="SimpleMath">\(Q/Z_i(Q)\)</span> in <span class="SimpleMath">\(Q\)</span>. A loop <span class="SimpleMath">\(Q\)</span> is <em>nilpotent of class</em> <span class="SimpleMath">\(n\)</span> if <span class="SimpleMath">\(n\)</span> is the least nonnegative integer such that <span class="SimpleMath">\(Z_n(Q)=Q\)</span>. In such case <span class="SimpleMath">\(Z_0(Q)\le Z_1(Q)\le \dots \le Z_n(Q)\)</span> is the <em>upper central series</em>.</p>
<p>The <em>derived subloop</em> <span class="SimpleMath">\(Q'\)</span> of <span class="SimpleMath">\(Q\)</span> is the least normal subloop of <span class="SimpleMath">\(Q\)</span> such that <span class="SimpleMath">\(Q/Q'\)</span> is a commutative group. Define <span class="SimpleMath">\(Q^{(0)}=Q\)</span> and let <span class="SimpleMath">\(Q^{(i+1)}\)</span> be the derived subloop of <span class="SimpleMath">\(Q^{(i)}\)</span>. Then <span class="SimpleMath">\(Q\)</span> is <em>solvable of class</em> <span class="SimpleMath">\(n\)</span> if <span class="SimpleMath">\(n\)</span> is the least nonnegative integer such that <span class="SimpleMath">\(Q^{(n)} = 1\)</span>. In such a case <span class="SimpleMath">\(Q^{(0)}\ge Q^{(1)}\ge \cdots \ge Q^{(n)}\)</span> is the <em>derived series</em> of <span class="SimpleMath">\(Q\)</span>.</p>
<p><a id="X7E0849977869E53D" name="X7E0849977869E53D"></a></p>
<h4>2.5 <span class="Heading">Associators and Commutators</span></h4>
<p>Let <span class="SimpleMath">\(Q\)</span> be a quasigroup and let <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span>, <span class="SimpleMath">\(z\)</span> be elements of <span class="SimpleMath">\(Q\)</span>. Then the <em>commutator</em> of <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span> is the unique element <span class="SimpleMath">\([x,y]\)</span> of <span class="SimpleMath">\(Q\)</span> such that <span class="SimpleMath">\(xy = [x,y](yx)\)</span>, and the <em>associator</em> of <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span>, <span class="SimpleMath">\(z\)</span> is the unique element <span class="SimpleMath">\([x,y,z]\)</span> of <span class="SimpleMath">\(Q\)</span> such that <span class="SimpleMath">\((xy)z = [x,y,z](x(yz))\)</span>.</p>
<p>The <em>associator subloop</em> <span class="SimpleMath">\(A(Q)\)</span> of <span class="SimpleMath">\(Q\)</span> is the least normal subloop of <span class="SimpleMath">\(Q\)</span> such that <span class="SimpleMath">\(Q/A(Q)\)</span> is a group.</p>
<p>It is not hard to see that <span class="SimpleMath">\(A(Q)\)</span> is the least normal subloop of <span class="SimpleMath">\(Q\)</span> containing all commutators, and <span class="SimpleMath">\(Q'\)</span> is the least normal subloop of <span class="SimpleMath">\(Q\)</span> containing all commutators and associators.</p>
<p><a id="X791066ED7DD9F254" name="X791066ED7DD9F254"></a></p>
<h4>2.6 <span class="Heading">Homomorphism and Homotopisms</span></h4>
<p>Let <span class="SimpleMath">\(K\)</span>, <span class="SimpleMath">\(H\)</span> be two quasigroups. Then a map <span class="SimpleMath">\(f:K\to H\)</span> is a <em>homomorphism</em> if <span class="SimpleMath">\(f(x)\cdot f(y)=f(x\cdot y)\)</span> for every <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\in K\)</span>. If <span class="SimpleMath">\(f\)</span> is also a bijection, we speak of an <em>isomorphism</em>, and the two quasigroups are called isomorphic.</p>
<p>An ordered triple <span class="SimpleMath">\((\alpha,\beta,\gamma)\)</span> of maps <span class="SimpleMath">\(\alpha\)</span>, <span class="SimpleMath">\(\beta\)</span>, <span class="SimpleMath">\(\gamma:K\to H\)</span> is a <em>homotopism</em> if <span class="SimpleMath">\(\alpha(x)\cdot\beta(y) = \gamma(x\cdot y)\)</span> for every <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span> in <span class="SimpleMath">\(K\)</span>. If the three maps are bijections, then <span class="SimpleMath">\((\alpha,\beta,\gamma)\)</span> is an <em>isotopism</em>, and the two quasigroups are isotopic.</p>
<p>Isotopic groups are necessarily isomorphic, but this is certainly not true for nonassociative quasigroups or loops. In fact, every quasigroup is isotopic to a loop.</p>
<p>Let <span class="SimpleMath">\((K,\cdot)\)</span>, <span class="SimpleMath">\((K,\circ)\)</span> be two quasigroups defined on the same set <span class="SimpleMath">\(K\)</span>. Then an isotopism <span class="SimpleMath">\((\alpha,\beta,{\rm id}_K)\)</span> is called a <em>principal isotopism</em>. An important class of principal isotopisms is obtained as follows: Let <span class="SimpleMath">\((K,\cdot)\)</span> be a quasigroup, and let <span class="SimpleMath">\(f\)</span>, <span class="SimpleMath">\(g\)</span> be elements of <span class="SimpleMath">\(K\)</span>. Define a new operation <span class="SimpleMath">\(\circ\)</span> on <span class="SimpleMath">\(K\)</span> by <span class="SimpleMath">\(x\circ y = R_g^{-1}(x)\cdot L_f^{-1}(y)\)</span>, where <span class="SimpleMath">\(R_g\)</span>, <span class="SimpleMath">\(L_f\)</span> are translations. Then <span class="SimpleMath">\((K,\circ)\)</span> is a quasigroup isotopic to <span class="SimpleMath">\((K,\cdot)\)</span>, in fact a loop with neutral element <span class="SimpleMath">\(f\cdot g\)</span>. We call <span class="SimpleMath">\((K,\circ)\)</span> a <em>principal loop isotope</em> of <span class="SimpleMath">\((K,\cdot)\)</span>.</p>
<div class="chlinkprevnextbot">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap1_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chap3_mj.html">[Next Chapter]</a>&nbsp; </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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</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>

167
doc/chap3.txt Normal file
View file

@ -0,0 +1,167 @@
3 How the Package Works
The package consists of three complementary components:
 the core algorithms for quasigroup theoretical notions (see Chapters
4, 5, 6 and 7),
 algorithms for specific varieties of loops, mostly for Moufang loops
(see Chapter 8),
 the library of small loops (see Chapter 9).
Although we do not explain the algorithms in detail here, we describe the
general philosophy so that users can anticipate the capabilities and
behavior of LOOPS.
3.1 Representing Quasigroups
Since permutation representation in the usual sense is impossible for
nonassociative structures, and since the theory of nonassociative
presentations is not well understood, we resorted to multiplication tables
to represent quasigroups in GAP. (In order to save storage space, we
sometimes use one multiplication table to represent several quasigroups, for
instance when a quasigroup is a subquasigroup of another quasigroup. See
Section 4.1 for more details.)
Consequently, the package is intended primarily for quasigroups and loops of
small order, say up to 1000.
The GAP categories IsQuasigroupElement, IsLoopElement, IsQuasigroup and
IsLoop are declared in LOOPS as follows:
DeclareCategory( "IsQuasigroupElement", IsMultiplicativeElement );
DeclareRepresentation( "IsQuasigroupElmRep",
IsPositionalObjectRep and IsMultiplicativeElement, [1] );
DeclareCategory( "IsLoopElement",
IsQuasigroupElement and IsMultiplicativeElementWithInverse );
DeclareRepresentation( "IsLoopElmRep",
IsPositionalObjectRep and IsMultiplicativeElementWithInverse, [1] );
## latin (auxiliary category for GAP to tell apart IsMagma and IsQuasigroup)
DeclareCategory( "IsLatin", IsObject );
DeclareCategory( "IsQuasigroup", IsMagma and IsLatin );
DeclareCategory( "IsLoop", IsQuasigroup and
IsMultiplicativeElementWithInverseCollection);
3.2 Conversions between magmas, quasigroups, loops and groups
Whether an object is considered a magma, quasigroup, loop or group is a
matter of declaration in LOOPS. Loops are automatically quasigroups, and
both groups and quasigroups are automatically magmas. All standard GAP
commands for magmas are therefore available for quasigroups and loops.
In GAP, functions of the type AsSomething(X) convert the domain X into
Something, if possible, without changing the underlying domain X. For
example, if X is declared as magma but is associative and has neutral
element and inverses, AsGroup(X) returns the corresponding group with the
underlying domain X.
We have opted for a more general kind of conversions in LOOPS (starting with
version 2.1.0), using functions of the type IntoSomething(X). The two main
features that distinguish IntoSomething from AsSomething are:
 The function IntoSomething(X) does not necessarily return the same
domain as X. The reason is that X can be a group, for instance,
defined on one of many possible domains, while IntoLoop(X) must result
in a loop, and hence be defined on a subset of some interval 1, dots,
n (see Section 6.1).
 In some special situations, the function IntoSomething(X) allows to
convert X into Something even though X does not have all the
properties of Something. For instance, every quasigroup is isotopic to
a loop, so it makes sense to allow the conversion IntoLoop(Q) even if
the quasigroup Q does not posses a neutral element.
Details of all conversions in LOOPS can be found in Section 4.10.
3.3 Calculating with Quasigroups
Although the quasigroups are ultimately represented by multiplication
tables, the algorithms are efficient because nearly all calculations are
delegated to groups. The connection between quasigroups and groups is
facilitated via translations (see Section 2.2), and we illustrate it with a
few examples:
Example: This example shows how properties of quasigroups can be translated
into properties of translations in a straightforward way. Let Q be a
quasigroup. We ask if Q is associative. We can either test if (xy)z=x(yz)
for every x, y, z in Q, or we can ask if L_xy=L_xL_y for every x, y in Q.
Note that since L_xy, L_x and L_y are elements of a permutation group, we do
not have to refer directly to the multiplication table once the left
translations of Q are known.
Example: This example shows how properties of loops can be translated into
properties of translations in a way that requires some theory. A left Bol
loop is a loop satisfying x(y(xz)) = (x(yx))z. We claim (without proof) that
a loop Q is left Bol if and only if L_xL_yL_x is a left translation for
every x, y in Q.
Example: This example shows that many properties of loops become purely
group-theoretical once they are expressed in terms of translations. A loop
is simple if it has no nontrivial congruences. It is possible to show that a
loop is simple if and only if its multiplication group is a primitive
permutation group.
The main idea of the package is therefore to:
 calculate the translations and the associated permutation groups when
they are needed,
 store them as attributes,
 use them in algorithms as often as possible.
3.4 Naming, Viewing and Printing Quasigroups and their Elements
GAP displays information about objects in two modes: the View mode (default,
short), and the Print mode (longer). Moreover, when the name of an object is
set, the name is always shown, no matter which display mode is used.
Only loops contained in the libraries of LOOPS are named. For instance, the
loop obtained via MoufangLoop(32,4), the 4th Moufang loop of order 32, is
named "Moufang loop 32/4'' and is shown as <Moufang loop 32/4>.
A generic quasigroup of order n is displayed as <quasigroup of order n>.
Similarly, a loop of order n appears as <loop of order n>.
The displayed information of a generic loop is enhanced if more information
about the loop becomes available. For instance, when it is established that
a loop of order 12 has the left alternative property, the loop will be shown
as <left alternative loop of order 12> until a stronger property is
obtained. Which property is diplayed is governed by the filters built into
LOOPS (see Appendix B).
3.4-1 SetQuasigroupElmName and SetLoopElmName
SetQuasigroupElmName( Q, name )  function
SetLoopElmName( Q, name )  function
The above functions change the names of elements of a quasigroup (resp.
loop) Q to name.
By default, elements of a quasigroup appear as qi and elements of a loop
appear as li in both display modes, where i is a positive integer. The
neutral element of a loop is always indexed by 1.
For quasigroups and loops in the Print mode, we display the multiplication
table (if it is known), otherwise we display the elements.
In the following example, L is a loop with two elements.
 Example 
gap> L; 
<loop of order 2> 
gap> Print( L ); 
<loop with multiplication table [ [ 1, 2 ], [ 2, 1 ] ]> 
gap> Elements( L ); 
[ l1, l2 ] 
gap> SetLoopElmName( L, "loop_element" );; Elements( L ); 
[ loop_element1, loop_element2 ] 


185
doc/chap3_mj.html Normal file
View file

@ -0,0 +1,185 @@
<?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="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (Loops) - Chapter 3: How the Package Works</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="chap3" 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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap2_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chap4_mj.html">[Next Chapter]</a>&nbsp; </div>
<p id="mathjaxlink" class="pcenter"><a href="chap3.html">[MathJax off]</a></p>
<p><a id="X7A6DF65E826B8CFF" name="X7A6DF65E826B8CFF"></a></p>
<div class="ChapSects"><a href="chap3_mj.html#X7A6DF65E826B8CFF">3 <span class="Heading">How the Package Works</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap3_mj.html#X86F02BBD87FEA1C6">3.1 <span class="Heading">Representing Quasigroups</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap3_mj.html#X807D76EF81B9D061">3.2 <span class="Heading">Conversions between magmas, quasigroups, loops and groups</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap3_mj.html#X87E49ED884FA6DC4">3.3 <span class="Heading">Calculating with Quasigroups</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap3_mj.html#X7D75C7A6787AF72A">3.4 <span class="Heading">Naming, Viewing and Printing Quasigroups and their Elements</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap3_mj.html#X7A7EB1B579273D07">3.4-1 <span class="Heading">SetQuasigroupElmName and SetLoopElmName</span></a>
</span>
</div></div>
</div>
<h3>3 <span class="Heading">How the Package Works</span></h3>
<p>The package consists of three complementary components:</p>
<ul>
<li><p>the core algorithms for quasigroup theoretical notions (see Chapters <a href="chap4_mj.html#X7AA4B9C0877550ED"><span class="RefLink">4</span></a>, <a href="chap5_mj.html#X7B9F619279641FAA"><span class="RefLink">5</span></a>, <a href="chap6_mj.html#X794A04C5854D352B"><span class="RefLink">6</span></a> and <a href="chap7_mj.html#X7910E575825C713E"><span class="RefLink">7</span></a>),</p>
</li>
<li><p>algorithms for specific varieties of loops, mostly for Moufang loops (see Chapter <a href="chap8_mj.html#X85AFC9C47FD3C03F"><span class="RefLink">8</span></a>),</p>
</li>
<li><p>the library of small loops (see Chapter <a href="chap9_mj.html#X7BF3EE6E7953560D"><span class="RefLink">9</span></a>).</p>
</li>
</ul>
<p>Although we do not explain the algorithms in detail here, we describe the general philosophy so that users can anticipate the capabilities and behavior of <strong class="pkg">LOOPS</strong>.</p>
<p><a id="X86F02BBD87FEA1C6" name="X86F02BBD87FEA1C6"></a></p>
<h4>3.1 <span class="Heading">Representing Quasigroups</span></h4>
<p>Since permutation representation in the usual sense is impossible for nonassociative structures, and since the theory of nonassociative presentations is not well understood, we resorted to multiplication tables to represent quasigroups in <strong class="pkg">GAP</strong>. (In order to save storage space, we sometimes use one multiplication table to represent several quasigroups, for instance when a quasigroup is a subquasigroup of another quasigroup. See Section <a href="chap4_mj.html#X7DE8405B82BC36A9"><span class="RefLink">4.1</span></a> for more details.)</p>
<p>Consequently, the package is intended primarily for quasigroups and loops of small order, say up to 1000.</p>
<p>The <strong class="pkg">GAP</strong> categories <code class="code">IsQuasigroupElement</code>, <code class="code">IsLoopElement</code>, <code class="code">IsQuasigroup</code> and <code class="code">IsLoop</code> are declared in <strong class="pkg">LOOPS</strong> as follows:</p>
<pre class="normal">
DeclareCategory( "IsQuasigroupElement", IsMultiplicativeElement );
DeclareRepresentation( "IsQuasigroupElmRep",
IsPositionalObjectRep and IsMultiplicativeElement, [1] );
DeclareCategory( "IsLoopElement",
IsQuasigroupElement and IsMultiplicativeElementWithInverse );
DeclareRepresentation( "IsLoopElmRep",
IsPositionalObjectRep and IsMultiplicativeElementWithInverse, [1] );
## latin (auxiliary category for GAP to tell apart IsMagma and IsQuasigroup)
DeclareCategory( "IsLatin", IsObject );
DeclareCategory( "IsQuasigroup", IsMagma and IsLatin );
DeclareCategory( "IsLoop", IsQuasigroup and
IsMultiplicativeElementWithInverseCollection);
</pre>
<p><a id="X807D76EF81B9D061" name="X807D76EF81B9D061"></a></p>
<h4>3.2 <span class="Heading">Conversions between magmas, quasigroups, loops and groups</span></h4>
<p>Whether an object is considered a magma, quasigroup, loop or group is a matter of declaration in <strong class="pkg">LOOPS</strong>. Loops are automatically quasigroups, and both groups and quasigroups are automatically magmas. All standard <strong class="pkg">GAP</strong> commands for magmas are therefore available for quasigroups and loops.</p>
<p>In <strong class="pkg">GAP</strong>, functions of the type <code class="code">AsSomething(<var class="Arg">X</var>)</code> convert the domain <var class="Arg">X</var> into <code class="code">Something</code>, if possible, without changing the underlying domain <var class="Arg">X</var>. For example, if <var class="Arg">X</var> is declared as magma but is associative and has neutral element and inverses, <code class="code">AsGroup(<var class="Arg">X</var>)</code> returns the corresponding group with the underlying domain <var class="Arg">X</var>.</p>
<p>We have opted for a more general kind of conversions in <strong class="pkg">LOOPS</strong> (starting with version 2.1.0), using functions of the type <code class="code">IntoSomething(<var class="Arg">X</var>)</code>. The two main features that distinguish <code class="code">IntoSomething</code> from <code class="code">AsSomething</code> are:</p>
<ul>
<li><p>The function <code class="code">IntoSomething(<var class="Arg">X</var>)</code> does not necessarily return the same domain as <var class="Arg">X</var>. The reason is that <var class="Arg">X</var> can be a group, for instance, defined on one of many possible domains, while <code class="code">IntoLoop(<var class="Arg">X</var>)</code> must result in a loop, and hence be defined on a subset of some interval <span class="SimpleMath">\(1\)</span>, <span class="SimpleMath">\(\dots\)</span>, <span class="SimpleMath">\(n\)</span> (see Section <a href="chap6_mj.html#X8731D818827C08F3"><span class="RefLink">6.1</span></a>).</p>
</li>
<li><p>In some special situations, the function <code class="code">IntoSomething(<var class="Arg">X</var>)</code> allows to convert <var class="Arg">X</var> into <code class="code">Something</code> even though <var class="Arg">X</var> does not have all the properties of <code class="code">Something</code>. For instance, every quasigroup is isotopic to a loop, so it makes sense to allow the conversion <code class="code">IntoLoop(<var class="Arg">Q</var>)</code> even if the quasigroup <var class="Arg">Q</var> does not posses a neutral element.</p>
</li>
</ul>
<p>Details of all conversions in <strong class="pkg">LOOPS</strong> can be found in Section <a href="chap4_mj.html#X7BC2D8877A943D74"><span class="RefLink">4.10</span></a>.</p>
<p><a id="X87E49ED884FA6DC4" name="X87E49ED884FA6DC4"></a></p>
<h4>3.3 <span class="Heading">Calculating with Quasigroups</span></h4>
<p>Although the quasigroups are ultimately represented by multiplication tables, the algorithms are efficient because nearly all calculations are delegated to groups. The connection between quasigroups and groups is facilitated via translations (see Section <a href="chap2_mj.html#X7EC01B437CC2B2C9"><span class="RefLink">2.2</span></a>), and we illustrate it with a few examples: <br /></p>
<p><strong class="button">Example:</strong> This example shows how properties of quasigroups can be translated into properties of translations in a straightforward way. Let <span class="SimpleMath">\(Q\)</span> be a quasigroup. We ask if <span class="SimpleMath">\(Q\)</span> is associative. We can either test if <span class="SimpleMath">\((xy)z=x(yz)\)</span> for every <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span>, <span class="SimpleMath">\(z\)</span> in <span class="SimpleMath">\(Q\)</span>, or we can ask if <span class="SimpleMath">\(L_{xy}=L_xL_y\)</span> for every <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span> in <span class="SimpleMath">\(Q\)</span>. Note that since <span class="SimpleMath">\(L_{xy}\)</span>, <span class="SimpleMath">\(L_x\)</span> and <span class="SimpleMath">\(L_y\)</span> are elements of a permutation group, we do not have to refer directly to the multiplication table once the left translations of <span class="SimpleMath">\(Q\)</span> are known. <br /></p>
<p><strong class="button">Example:</strong> This example shows how properties of loops can be translated into properties of translations in a way that requires some theory. A <em>left Bol loop</em> is a loop satisfying <span class="SimpleMath">\(x(y(xz)) = (x(yx))z\)</span>. We claim (without proof) that a loop <span class="SimpleMath">\(Q\)</span> is left Bol if and only if <span class="SimpleMath">\(L_xL_yL_x\)</span> is a left translation for every <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span> in <span class="SimpleMath">\(Q\)</span>. <br /></p>
<p><strong class="button">Example:</strong> This example shows that many properties of loops become purely group-theoretical once they are expressed in terms of translations. A loop is <em>simple</em> if it has no nontrivial congruences. It is possible to show that a loop is simple if and only if its multiplication group is a primitive permutation group. <br /></p>
<p>The main idea of the package is therefore to:</p>
<ul>
<li><p>calculate the translations and the associated permutation groups when they are needed,</p>
</li>
<li><p>store them as attributes,</p>
</li>
<li><p>use them in algorithms as often as possible.</p>
</li>
</ul>
<p><a id="X7D75C7A6787AF72A" name="X7D75C7A6787AF72A"></a></p>
<h4>3.4 <span class="Heading">Naming, Viewing and Printing Quasigroups and their Elements</span></h4>
<p><strong class="pkg">GAP</strong> displays information about objects in two modes: the <code class="code">View</code> mode (default, short), and the <code class="code">Print</code> mode (longer). Moreover, when the name of an object is set, the name is always shown, no matter which display mode is used.</p>
<p>Only loops contained in the libraries of <strong class="pkg">LOOPS</strong> are named. For instance, the loop obtained via <code class="code">MoufangLoop(32,4)</code>, the 4th Moufang loop of order 32, is named "Moufang loop 32/4'' and is shown as <code class="code">&lt;Moufang loop 32/4&gt;</code>.</p>
<p>A generic quasigroup of order <span class="SimpleMath">\(n\)</span> is displayed as <code class="code">&lt;quasigroup of order n&gt;</code>. Similarly, a loop of order <span class="SimpleMath">\(n\)</span> appears as <code class="code">&lt;loop of order n&gt;</code>.</p>
<p>The displayed information of a generic loop is enhanced if more information about the loop becomes available. For instance, when it is established that a loop of order 12 has the left alternative property, the loop will be shown as <code class="code">&lt;left alternative loop of order 12&gt;</code> until a stronger property is obtained. Which property is diplayed is governed by the filters built into <strong class="pkg">LOOPS</strong> (see Appendix <a href="chapB_mj.html#X84EFA4C07D4277BB"><span class="RefLink">B</span></a>).</p>
<p><a id="X7A7EB1B579273D07" name="X7A7EB1B579273D07"></a></p>
<h5>3.4-1 <span class="Heading">SetQuasigroupElmName and SetLoopElmName</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; SetQuasigroupElmName</code>( <var class="Arg">Q</var>, <var class="Arg">name</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">&#8227; SetLoopElmName</code>( <var class="Arg">Q</var>, <var class="Arg">name</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>The above functions change the names of elements of a quasigroup (resp. loop) <var class="Arg">Q</var> to <var class="Arg">name</var>.</p>
<p>By default, elements of a quasigroup appear as <code class="code">qi</code> and elements of a loop appear as <code class="code">li</code> in both display modes, where <code class="code">i</code> is a positive integer. The neutral element of a loop is always indexed by 1.<br /></p>
<p>For quasigroups and loops in the <code class="code">Print</code> mode, we display the multiplication table (if it is known), otherwise we display the elements. <br /></p>
<p>In the following example, <code class="code">L</code> is a loop with two elements.</p>
<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">L; </span>
&lt;loop of order 2&gt;
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">Print( L ); </span>
&lt;loop with multiplication table [ [ 1, 2 ], [ 2, 1 ] ]&gt;
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">Elements( L ); </span>
[ l1, l2 ]
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">SetLoopElmName( L, "loop_element" );; Elements( L ); </span>
[ loop_element1, loop_element2 ]
</pre></div>
<div class="chlinkprevnextbot">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap2_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chap4_mj.html">[Next Chapter]</a>&nbsp; </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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</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>

453
doc/chap4.txt Normal file
View file

@ -0,0 +1,453 @@
4 Creating Quasigroups and Loops
In this chapter we describe several ways in which quasigroups and loops can
be created in LOOPS.
4.1 About Cayley Tables
Let X={x_1,dots,x_n} be a set and ⋅ a binary operation on X. Then an n by n
array with rows and columns bordered by x_1, dots, x_n, in this order, is a
Cayley table, or a multiplication table of ⋅, if the entry in the row x_i
and column x_j is x_i⋅ x_j.
A Cayley table is a quasigroup table if it is a latin square, i.e., if every
entry x_i appears in every column and every row exactly once.
An unfortunate feature of multiplication tables in practice is that they are
often not bordered, that is, it is up to the reader to figure out what is
meant. Throughout this manual and in LOOPS, we therefore make the following
assumption: All distinct entries in a quasigroup table must be positive
integers, say x_1 < x_2 < ⋯ < x_n, and if no border is specified, we assume
that the table is bordered by x_1, dots, x_n, in this order. Note that we do
not assume that the distinct entries x_1, dots, x_n form the interval 1,
dots, n. The significance of this observation will become clear in Chapter
6.
Finally, we say that a quasigroup table is a loop table if the first row and
the first column are the same, and if the entries in the first row are
ordered in an ascending fashion.
4.2 Testing Cayley Tables
4.2-1 IsQuasigroupTable and IsQuasigroupCayleyTable
IsQuasigroupTable( T )  operation
IsQuasigroupCayleyTable( T )  operation
Returns: true if T is a quasigroup table as defined above, else false.
4.2-2 IsLoopTable and IsLoopCayleyTable
IsLoopTable( T )  operation
IsLoopCayleyTable( T )  operation
Returns: true if T is a loop table as defined above, else false.
Remark:The package GUAVA also contains operations dealing with latin
squares. In particular, IsLatinSquare is declared in GUAVA.
4.3 Canonical and Normalized Cayley Tables
4.3-1 CanonicalCayleyTable
CanonicalCayleyTable( T )  operation
Returns: Canonical Cayley table constructed from Cayley table T by
replacing entries x_i with i.
A Cayley table is said to be canonical if it is based on elements 1, dots,
n. Although we do not assume that every quasigroup table is canonical, it is
often desirable to present quasigroup tables in canonical way.
4.3-2 CanonicalCopy
CanonicalCopy( Q )  operation
Returns: A canonical copy of the quasigroup or loop Q.
This is a shorthand for QuasigroupByCayleyTable(CanonicalCayleyTable(Q) when
Q is a declared quasigroup, and LoopByCayleyTable(CanonicalCayleyTable(Q)
when Q is a loop.
4.3-3 NormalizedQuasigroupTable
NormalizedQuasigroupTable( T )  operation
Returns: A normalized version of the Cayley table T.
A given Cayley table T is normalized in three steps as follows: first,
CanonicalCayleyTable is called to rename entries to 1, dots, n, then the
columns of T are permuted so that the first row reads 1, dots, n, and
finally the rows of T are permuted so that the first column reads 1, dots,
n.
4.4 Creating Quasigroups and Loops From Cayley Tables
4.4-1 QuasigroupByCayleyTable and LoopByCayleyTable
QuasigroupByCayleyTable( T )  operation
LoopByCayleyTable( T )  operation
Returns: The quasigroup (resp. loop) with quasigroup table (resp. loop
table) T.
Since CanonicalCayleyTable is called within the above operation, the
resulting quasigroup will have Cayley table with distinct entries 1, dots,
n.
 Example 
gap> ct := CanonicalCayleyTable( [[5,3],[3,5]] ); 
[ [ 2, 1 ], [ 1, 2 ] ] 
gap> NormalizedQuasigroupTable( ct ); 
[ [ 1, 2 ], [ 2, 1 ] ] 
gap> LoopByCayleyTable( last ); 
<loop of order 2> 
gap> [ IsQuasigroupTable( ct ), IsLoopTable( ct ) ]; 
[ true, false ] 

4.5 Creating Quasigroups and Loops from a File
Typing a large multiplication table manually is tedious and error-prone. We
have therefore included a general method in LOOPS that reads multiplication
tables of quasigroups from a file.
Instead of writing a separate algorithm for each common format, our
algorithm relies on the user to provide a bit of information about the input
file. Here is an outline of the algorithm, with file named filename and a
string del as input (in essence, the characters of del will be ignored while
reading the file):
 read the entire content of filename into a string s,
 replace all end-of-line characters in s by spaces,
 replace by spaces all characters of s that appear in del,
 split s into maximal substrings without spaces, called chunks here,
 let n be the number of distinct chunks,
 if the number of chunks is not n^2, report error,
 construct the multiplication table by assigning numerical values 1,
dots, n to chunks, depending on their position among distinct chunks.
The following examples clarify the algorithm and document its versatility.
All examples are of the form F+D⟹ T, meaning that an input file containing F
together with the deletion string D produce multiplication table T.
Example: Data does not have to be arranged into an array of any kind.
\begin{array}{cccc} 0&1&2&1\\ 2&0&2& \\ 0&1& & \end{array}\quad +
\quad "" \quad \Longrightarrow\quad \begin{array}{ccc} 1&2&3\\ 2&3&1\\
3&1&2 \end{array} 
Example: Chunks can be any strings.
\begin{array}{cc} {\rm red}&{\rm green}\\ {\rm green}&{\rm red}\\
\end{array}\quad + \quad "" \quad \Longrightarrow\quad
\begin{array}{cc} 1& 2\\ 2& 1 \end{array} 
Example: A typical table produced by GAP is easily parsed by deleting
brackets and commas.
[ [0, 1], [1, 0] ] \quad + \quad "[,]" \quad \Longrightarrow\quad
\begin{array}{cc} 1& 2\\ 2& 1 \end{array} 
Example: A typical TeX table with rows separated by lines is also easily
converted. Note that we have to use backslashbackslash to ensure that every
occurrence of backslash is deleted, since backslashbackslash represents the
character backslash in GAP
\begin{array}{lll} x\&& y\&&\ z\backslash\backslash\cr y\&& z\&&\
x\backslash\backslash\cr z\&& x\&&\ y \end{array} \quad + \quad
"\backslash\backslash\&" \quad \Longrightarrow\quad \begin{array}{ccc}
1&2&3\cr 2&3&1\cr 3&1&2 \end{array} 
4.5-1 QuasigroupFromFile and LoopFromFile
QuasigroupFromFile( filename, del )  operation
LoopFromFile( filename, del )  operation
Returns: The quasigroup (resp. loop) whose multiplication table data is in
file filename, ignoring the characters contained in the string
del.
4.6 Creating Quasigroups and Loops From Sections
4.6-1 CayleyTableByPerms
CayleyTableByPerms( P )  operation
Returns: If P is a set of n permutations of an n-element set X, returns
Cayley table C such that C[i][j] = X[j]^P[i].
The cardinality of the underlying set is determined by the moved points of
the first permutation in P, unless the first permutation is the identity
permutation, in which case the second permutation is used.
In particular, if P is the left section of a quasigroup Q,
CayleyTableByPerms(Q) returns the multiplication table of Q.
4.6-2 QuasigroupByLeftSection and LoopByLeftSection
QuasigroupByLeftSection( P )  operation
LoopByLeftSection( P )  operation
Returns: If P is a set of permutations corresponding to the left
translations of a quasigroup (resp. loop), returns the
corresponding quasigroup (resp. loop).
The order of permutations in P is important in the quasigroup case, but it
is disregarded in the loop case, since then the order of rows in the
corresponding multiplication table is determined by the presence of the
neutral element.
4.6-3 QuasigroupByRightSection and LoopByRightSection
QuasigroupByRightSection( P )  operation
LoopByRightSection( P )  operation
These are the dual operations to QuasigroupByLeftSection and
LoopByLeftSection.
 Example 
gap> S := Subloop( MoufangLoop( 12, 1 ), [ 3 ] );; 
gap> ls := LeftSection( S ); 
[ (), (1,3,5), (1,5,3) ] 
gap> CayleyTableByPerms( ls ); 
[ [ 1, 3, 5 ], [ 3, 5, 1 ], [ 5, 1, 3 ] ] 
gap> CayleyTable( LoopByLeftSection( ls ) ); 
[ [ 1, 2, 3 ], [ 2, 3, 1 ], [ 3, 1, 2 ] ] 

4.7 Creating Quasigroups and Loops From Folders
Let G be a group, H a subgroup of G, and T a right transversal to H in G.
Let τ:G-> T be defined by x∈ Hτ(x). Then the operation ∘ defined on the
right cosets Q = {Ht|t∈ T} by Hs∘ Ht = Hτ(st) turns Q into a quasigroup if
and only if T is a right transversal to all conjugates g^-1Hg of H in G. (In
fact, every quasigroup Q can be obtained in this way by letting G= Mlt_ρ(Q),
H= Inn_ρ(Q) and T={R_x|x∈ Q}.)
We call the triple (G,H,T) a right quasigroup (or loop) folder.
4.7-1 QuasigroupByRightFolder and LoopByRightFolder
QuasigroupByRightFolder( G, H, T )  operation
LoopByRightFolder( G, H, T )  operation
Returns: The quasigroup (resp. loop) from the right folder (G, H, T).
Remark: We do not support the dual operations for left sections since, by
default, actions in GAP act on the right.
Here is a simple example in which T is actually the right section of the
resulting loop.
 Example 
gap> T := [ (), (1,2)(3,4,5), (1,3,5)(2,4), (1,4,3)(2,5), (1,5,4)(2,3) ];; 
gap> G := Group( T );; H := Stabilizer( G, 1 );; 
gap> LoopByRightFolder( G, H, T ); 
<loop of order 5> 

4.8 Creating Quasigroups and Loops By Nuclear Extensions
Let K, F be loops. Then a loop Q is an extension of K by F if K is a normal
subloop of Q such that Q/K is isomorphic to F. An extension Q of K by F is
nuclear if K is an abelian group and Kle N(Q).
A map θ:F× F-> K is a cocycle if θ(1,x) = θ(x,1) = 1 for every x∈ F.
The following theorem holds for loops Q, F and an abelian group K: Q is a
nuclear extension of K by F if and only if there is a cocycle θ:F× F-> K and
a homomorphism φ:F-> Aut(Q) such that K× F with multiplication (a,x)(b,y) =
(aφ_x(b)θ(x,y),xy) is isomorphic to Q.
4.8-1 NuclearExtension
NuclearExtension( Q, K )  operation
Returns: The data necessary to construct Q as a nuclear extension of the
subloop K by Q/K, namely [K, F, φ, θ] as above. Note that K must
be a commutative subloop of the nucleus of Q.
If n=|F| and m=|K|, the cocycle θ is returned as an n× n array with entries
in {1,dots,m}, and the homomorphism φ is returned as a list of length n of
permutations of {1,dots,m}.
4.8-2 LoopByExtension
LoopByExtension( K, F, f, t )  operation
Returns: The extension of an abelian group K by a loop F, using action f
and cocycle t. The arguments must be formatted as the output of
NuclearExtension.
 Example 
gap> F := IntoLoop( Group( (1,2) ) ); 
<loop of order 2> 
gap> K := DirectProduct( F, F );; 
gap> phi := [ (), (2,3) ];; 
gap> theta := [ [ 1, 1 ], [ 1, 3 ] ];; 
gap> LoopByExtension( K, F, phi, theta ); 
<loop of order 8> 
gap> IsAssociative( last ); 
false 

4.9 Random Quasigroups and Loops
An algorithm is said to select a latin square of order n at random if every
latin square of order n is returned by the algorithm with the same
probability. Selecting a latin square at random is a nontrivial problem.
In [JM96], Jacobson and Matthews defined a random walk on the space of latin
squares and so-called improper latin squares that visits every latin square
with the same probability. The diameter of the space is no more than
4(n-1)^3 in the sense that no more than 4(n-1)^3 properly chosen steps are
needed to travel from one latin square of order n to another.
The Jacobson-Matthews algorithm can be used to generate random quasigroups
as follows: (i) select any latin square of order n, for instance the
canonical multiplication table of the cyclic group of order n, (ii) perform
sufficiently many steps of the random walk, stopping at a proper or improper
latin square, (iii) if necessary, perform a few more steps to end up with a
proper latin square. Upon normalizing the resulting latin square, we obtain
a random loop of order n.
By the above result, it suffices to use about n^3 steps to arrive at any
latin square of order n from the initial latin square. In fact, a smaller
number of steps is probably sufficient.
4.9-1 RandomQuasigroup and RandomLoop
RandomQuasigroup( n[, iter] )  operation
RandomLoop( n[, iter] )  operation
Returns: A random quasigroup (resp. loop) of order n using the
Jacobson-Matthews algorithm. If the optional argument iter is
omitted, n^3 steps are used. Otherwise iter steps are used.
If iter is small, the Cayley table of the returned quasigroup (resp. loop)
will be close to the canonical Cayley table of the cyclic group of order n.
4.9-2 RandomNilpotentLoop
RandomNilpotentLoop( lst )  operation
Returns: A random nilpotent loop as follows (see Section 6.9 for more
information on nilpotency): lst must be a list of positive
integers and/or finite abelian groups. If lst=[a1] and a1 is an
integer, a random abelian group of order a1 is returned, else a1
is an abelian group and AsLoop(a1) is returned. If lst=
[a1,...,am], a random central extension of
RandomNilpotentLoop([a1]) by RandomNilpotentLoop([a2,...,am]) is
returned.
To determine the nilpotency class c of the resulting loop, assume that lst
has length at least 2, contains only integers bigger than 1, and let m be
the last entry of lst. If m>2 then c is equal to Length(lst), else c is
equal to Length(lst)-1.
4.10 Conversions
LOOPS contains methods that convert between magmas, quasigroups, loops and
groups, provided such conversions are possible. Each of the conversion
methods IntoQuasigroup, IntoLoop and IntoGroup returns fail if the requested
conversion is not possible.
Remark: Up to version 2.0.0 of LOOPS, we supported AsQuasigroup, AsLoop and
AsGroup in place of IntoQuasigroup, IntoLoop and IntoGroup, respectively. We
have changed the terminology starting with version 2.1.0 in order to comply
with GAP naming rules for AsSomething, as explained in Chapter 3. Finally,
the method AsGroup is a core method of GAP that returns an fp group if its
argument is an associative loop.
4.10-1 IntoQuasigroup
IntoQuasigroup( M )  operation
Returns: If M is a declared magma that happens to be a quasigroup, the
corresponding quasigroup is returned. If M is already declared as
a quasigroup, M is returned.
4.10-2 PrincipalLoopIsotope
PrincipalLoopIsotope( M, f, g )  operation
Returns: An isomorphic copy of the principal isotope (M,∘) via the
transposition (1,f⋅g). An isomorphic copy is returned rather than
(M,∘) because in LOOPS all loops have to have neutral element
labeled as 1.
Given a quasigroup M and two of its elements f, g, the principal loop
isotope x∘ y = R_g^-1(x)⋅ L_f^-1(y) turns (M,∘) into a loop with neutral
element f⋅ g (see Section 2.6).
4.10-3 IntoLoop
IntoLoop( M )  operation
Returns: If M is a declared magma that happens to be a quasigroup (but not
necessarily a loop!), a loop is returned as follows: If M is
already declared as a loop, M is returned. Else, if M possesses a
neutral element e and if f is the first element of M, then an
isomorphic copy of M via the transposition (e,f) is returned. If M
does not posses a neutral element, PrincipalLoopIsotope(M, M.1,
M.1) is returned.
Remark: One could obtain a loop from a declared magma M in yet another way,
by normalizing the Cayley table of M. The three approaches can result in
nonisomorphic loops in general.
4.10-4 IntoGroup
IntoGroup( M )  operation
Returns: If M is a declared magma that happens to be a group, the
corresponding group is returned as follows: If M is already
declared as a group, M is returned, else
RightMultiplicationGroup(IntoLoop(M)) is returned, which is a
permutation group isomorphic to M.
4.11 Products of Quasigroups and Loops
4.11-1 DirectProduct
DirectProduct( Q1, ..., Qn )  operation
Returns: If each Qi is either a declared quasigroup, declared loop or a
declared group, the direct product of Q1, dots, Qn is returned. If
every Qi is a declared group, a group is returned; if every Qi is
a declared loop, a loop is returned; otherwise a quasigroup is
returned.
4.12 Opposite Quasigroups and Loops
When Q is a quasigroup with multiplication ⋅, the opposite quasigroup of Q
is a quasigroup with the same underlying set as Q and with multiplication *
defined by x*y=y⋅ x.
4.12-1 Opposite, OppositeQuasigroup and OppositeLoop
Opposite( Q )  attribute
OppositeQuasigroup( Q )  operation
OppositeLoop( Q )  operation
Returns: The opposite of the quasigroup (resp. loop) Q. Note that if
OppositeQuasigroup(Q) or OppositeLoop(Q) are called, then the
returned quasigroup or loop is not stored as an attribute of Q.

515
doc/chap4_mj.html Normal file
View file

@ -0,0 +1,515 @@
<?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="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (Loops) - Chapter 4: Creating Quasigroups and Loops</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="chap4" 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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap3_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chap5_mj.html">[Next Chapter]</a>&nbsp; </div>
<p id="mathjaxlink" class="pcenter"><a href="chap4.html">[MathJax off]</a></p>
<p><a id="X7AA4B9C0877550ED" name="X7AA4B9C0877550ED"></a></p>
<div class="ChapSects"><a href="chap4_mj.html#X7AA4B9C0877550ED">4 <span class="Heading">Creating Quasigroups and Loops</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X7DE8405B82BC36A9">4.1 <span class="Heading">About Cayley Tables</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X7827BF877AA87246">4.2 <span class="Heading">Testing Cayley Tables</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X81179355869B9DFE">4.2-1 <span class="Heading">IsQuasigroupTable and IsQuasigroupCayleyTable</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X7AAE48507A471069">4.2-2 <span class="Heading">IsLoopTable and IsLoopCayleyTable</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X7BA749CA7DB4EA87">4.3 <span class="Heading">Canonical and Normalized Cayley Tables</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X7971CCB87DAFF7B9">4.3-1 CanonicalCayleyTable</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X7B816D887F46E6B7">4.3-2 CanonicalCopy</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X821A2F9E85FAD8BF">4.3-3 NormalizedQuasigroupTable</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X7C2372BB8739C5A2">4.4 <span class="Heading">Creating Quasigroups and Loops From Cayley Tables</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X860135BB85F2DB19">4.4-1 <span class="Heading">QuasigroupByCayleyTable and LoopByCayleyTable</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X849944F17E2B37F8">4.5 <span class="Heading">Creating Quasigroups and Loops from a File</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X81A1DB918057933E">4.5-1 <span class="Heading">QuasigroupFromFile and LoopFromFile</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X820E67F88319C38B">4.6 <span class="Heading">Creating Quasigroups and Loops From Sections</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X7F94C8DD7E1A3470">4.6-1 CayleyTableByPerms</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X7EC1EB0D7B8382A1">4.6-2 <span class="Heading">QuasigroupByLeftSection and LoopByLeftSection</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X80B436ED7CC0749E">4.6-3 <span class="Heading">QuasigroupByRightSection and LoopByRightSection</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X85ABE99E84E5B0E8">4.7 <span class="Heading">Creating Quasigroups and Loops From Folders</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X83168E62861F70AB">4.7-1 <span class="Heading">QuasigroupByRightFolder and LoopByRightFolder</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X8759431780AC81A9">4.8 <span class="Heading">Creating Quasigroups and Loops By Nuclear Extensions</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X784733C67AA6B2FA">4.8-1 NuclearExtension</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X79AEE93E7E15B802">4.8-2 LoopByExtension</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X7AE29A1A7AA5C25A">4.9 <span class="Heading">Random Quasigroups and Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X8271C0F5786B6FA9">4.9-1 <span class="Heading">RandomQuasigroup and RandomLoop</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X817132C887D3FD3A">4.9-2 RandomNilpotentLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X7BC2D8877A943D74">4.10 <span class="Heading">Conversions</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X84575A4B78CC545E">4.10-1 IntoQuasigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X79CEA57C850C7070">4.10-2 PrincipalLoopIsotope</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X7A59C36683118E5A">4.10-3 IntoLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X7B5C6C64831B866E">4.10-4 IntoGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X79B7327C79029086">4.11 <span class="Heading">Products of Quasigroups and Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X861BA02C7902A4F4">4.11-1 DirectProduct</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap4_mj.html#X7865FC8D7854C2E3">4.12 <span class="Heading">Opposite Quasigroups and Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap4_mj.html#X87B6AED47EE2BCD3">4.12-1 <span class="Heading">Opposite, OppositeQuasigroup and OppositeLoop</span></a>
</span>
</div></div>
</div>
<h3>4 <span class="Heading">Creating Quasigroups and Loops</span></h3>
<p>In this chapter we describe several ways in which quasigroups and loops can be created in <strong class="pkg">LOOPS</strong>.</p>
<p><a id="X7DE8405B82BC36A9" name="X7DE8405B82BC36A9"></a></p>
<h4>4.1 <span class="Heading">About Cayley Tables</span></h4>
<p>Let <span class="SimpleMath">\(X=\{x_1,\dots,x_n\}\)</span> be a set and <span class="SimpleMath">\(\cdot\)</span> a binary operation on <span class="SimpleMath">\(X\)</span>. Then an <span class="SimpleMath">\(n\)</span> by <span class="SimpleMath">\(n\)</span> array with rows and columns bordered by <span class="SimpleMath">\(x_1\)</span>, <span class="SimpleMath">\(\dots\)</span>, <span class="SimpleMath">\(x_n\)</span>, in this order, is a <em>Cayley table</em>, or a <em>multiplication table</em> of <span class="SimpleMath">\(\cdot\)</span>, if the entry in the row <span class="SimpleMath">\(x_i\)</span> and column <span class="SimpleMath">\(x_j\)</span> is <span class="SimpleMath">\(x_i\cdot x_j\)</span>.</p>
<p>A Cayley table is a <em>quasigroup table</em> if it is a latin square, i.e., if every entry <span class="SimpleMath">\(x_i\)</span> appears in every column and every row exactly once.</p>
<p>An unfortunate feature of multiplication tables in practice is that they are often not bordered, that is, it is up to the reader to figure out what is meant. Throughout this manual and in <strong class="pkg">LOOPS</strong>, we therefore make the following assumption: <em>All distinct entries in a quasigroup table must be positive integers, say <span class="SimpleMath">\(x_1 &lt; x_2 &lt; \cdots &lt; x_n\)</span>, and if no border is specified, we assume that the table is bordered by <span class="SimpleMath">\(x_1\)</span>, <span class="SimpleMath">\(\dots\)</span>, <span class="SimpleMath">\(x_n\)</span>, in this order.</em> Note that we do not assume that the distinct entries <span class="SimpleMath">\(x_1\)</span>, <span class="SimpleMath">\(\dots\)</span>, <span class="SimpleMath">\(x_n\)</span> form the interval <span class="SimpleMath">\(1\)</span>, <span class="SimpleMath">\(\dots\)</span>, <span class="SimpleMath">\(n\)</span>. The significance of this observation will become clear in Chapter <a href="chap6_mj.html#X794A04C5854D352B"><span class="RefLink">6</span></a>.</p>
<p>Finally, we say that a quasigroup table is a <em>loop table</em> if the first row and the first column are the same, and if the entries in the first row are ordered in an ascending fashion.</p>
<p><a id="X7827BF877AA87246" name="X7827BF877AA87246"></a></p>
<h4>4.2 <span class="Heading">Testing Cayley Tables</span></h4>
<p><a id="X81179355869B9DFE" name="X81179355869B9DFE"></a></p>
<h5>4.2-1 <span class="Heading">IsQuasigroupTable and IsQuasigroupCayleyTable</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsQuasigroupTable</code>( <var class="Arg">T</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">&#8227; IsQuasigroupCayleyTable</code>( <var class="Arg">T</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">T</var> is a quasigroup table as defined above, else <code class="code">false</code>.</p>
<p><a id="X7AAE48507A471069" name="X7AAE48507A471069"></a></p>
<h5>4.2-2 <span class="Heading">IsLoopTable and IsLoopCayleyTable</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsLoopTable</code>( <var class="Arg">T</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">&#8227; IsLoopCayleyTable</code>( <var class="Arg">T</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">T</var> is a loop table as defined above, else <code class="code">false</code>.<br /></p>
<p><strong class="button">Remark:</strong>The package <strong class="pkg">GUAVA</strong> also contains operations dealing with latin squares. In particular, <code class="code">IsLatinSquare</code> is declared in <strong class="pkg">GUAVA</strong>.</p>
<p><a id="X7BA749CA7DB4EA87" name="X7BA749CA7DB4EA87"></a></p>
<h4>4.3 <span class="Heading">Canonical and Normalized Cayley Tables</span></h4>
<p><a id="X7971CCB87DAFF7B9" name="X7971CCB87DAFF7B9"></a></p>
<h5>4.3-1 CanonicalCayleyTable</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; CanonicalCayleyTable</code>( <var class="Arg">T</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: Canonical Cayley table constructed from Cayley table <var class="Arg">T</var> by replacing entries <span class="SimpleMath">\(x_i\)</span> with <span class="SimpleMath">\(i\)</span>.</p>
<p>A Cayley table is said to be <em>canonical</em> if it is based on elements <span class="SimpleMath">\(1\)</span>, <span class="SimpleMath">\(\dots\)</span>, <span class="SimpleMath">\(n\)</span>. Although we do not assume that every quasigroup table is canonical, it is often desirable to present quasigroup tables in canonical way.</p>
<p><a id="X7B816D887F46E6B7" name="X7B816D887F46E6B7"></a></p>
<h5>4.3-2 CanonicalCopy</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; CanonicalCopy</code>( <var class="Arg">Q</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A canonical copy of the quasigroup or loop <var class="Arg">Q</var>.</p>
<p>This is a shorthand for <code class="code">QuasigroupByCayleyTable(CanonicalCayleyTable(<var class="Arg">Q</var>)</code> when <var class="Arg">Q</var> is a declared quasigroup, and <code class="code">LoopByCayleyTable(CanonicalCayleyTable(<var class="Arg">Q</var>)</code> when <var class="Arg">Q</var> is a loop.</p>
<p><a id="X821A2F9E85FAD8BF" name="X821A2F9E85FAD8BF"></a></p>
<h5>4.3-3 NormalizedQuasigroupTable</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; NormalizedQuasigroupTable</code>( <var class="Arg">T</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A normalized version of the Cayley table <var class="Arg">T</var>.</p>
<p>A given Cayley table <var class="Arg">T</var> is normalized in three steps as follows: first, <code class="code">CanonicalCayleyTable</code> is called to rename entries to <span class="SimpleMath">\(1\)</span>, <span class="SimpleMath">\(\dots\)</span>, <span class="SimpleMath">\(n\)</span>, then the columns of <var class="Arg">T</var> are permuted so that the first row reads <span class="SimpleMath">\(1\)</span>, <span class="SimpleMath">\(\dots\)</span>, <span class="SimpleMath">\(n\)</span>, and finally the rows of <var class="Arg">T</var> are permuted so that the first column reads <span class="SimpleMath">\(1\)</span>, <span class="SimpleMath">\(\dots\)</span>, <span class="SimpleMath">\(n\)</span>.</p>
<p><a id="X7C2372BB8739C5A2" name="X7C2372BB8739C5A2"></a></p>
<h4>4.4 <span class="Heading">Creating Quasigroups and Loops From Cayley Tables</span></h4>
<p><a id="X860135BB85F2DB19" name="X860135BB85F2DB19"></a></p>
<h5>4.4-1 <span class="Heading">QuasigroupByCayleyTable and LoopByCayleyTable</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; QuasigroupByCayleyTable</code>( <var class="Arg">T</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">&#8227; LoopByCayleyTable</code>( <var class="Arg">T</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The quasigroup (resp. loop) with quasigroup table (resp. loop table) <var class="Arg">T</var>.</p>
<p>Since <code class="code">CanonicalCayleyTable</code> is called within the above operation, the resulting quasigroup will have Cayley table with distinct entries <span class="SimpleMath">\(1\)</span>, <span class="SimpleMath">\(\dots\)</span>, <span class="SimpleMath">\(n\)</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">ct := CanonicalCayleyTable( [[5,3],[3,5]] ); </span>
[ [ 2, 1 ], [ 1, 2 ] ]
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">NormalizedQuasigroupTable( ct ); </span>
[ [ 1, 2 ], [ 2, 1 ] ]
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">LoopByCayleyTable( last ); </span>
&lt;loop of order 2&gt;
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">[ IsQuasigroupTable( ct ), IsLoopTable( ct ) ]; </span>
[ true, false ]
</pre></div>
<p><a id="X849944F17E2B37F8" name="X849944F17E2B37F8"></a></p>
<h4>4.5 <span class="Heading">Creating Quasigroups and Loops from a File</span></h4>
<p>Typing a large multiplication table manually is tedious and error-prone. We have therefore included a general method in <strong class="pkg">LOOPS</strong> that reads multiplication tables of quasigroups from a file.</p>
<p>Instead of writing a separate algorithm for each common format, our algorithm relies on the user to provide a bit of information about the input file. Here is an outline of the algorithm, with file named <var class="Arg">filename</var> and a string <var class="Arg">del</var> as input (in essence, the characters of <var class="Arg">del</var> will be ignored while reading the file):</p>
<ul>
<li><p>read the entire content of <var class="Arg">filename</var> into a string <var class="Arg">s</var>,</p>
</li>
<li><p>replace all end-of-line characters in <var class="Arg">s</var> by spaces,</p>
</li>
<li><p>replace by spaces all characters of <var class="Arg">s</var> that appear in <var class="Arg">del</var>,</p>
</li>
<li><p>split <var class="Arg">s</var> into maximal substrings without spaces, called <em>chunks</em> here,</p>
</li>
<li><p>let <span class="SimpleMath">\(n\)</span> be the number of distinct chunks,</p>
</li>
<li><p>if the number of chunks is not <span class="SimpleMath">\(n^2\)</span>, report error,</p>
</li>
<li><p>construct the multiplication table by assigning numerical values <span class="SimpleMath">\(1\)</span>, <span class="SimpleMath">\(\dots\)</span>, <span class="SimpleMath">\(n\)</span> to chunks, depending on their position among distinct chunks.</p>
</li>
</ul>
<p>The following examples clarify the algorithm and document its versatility. All examples are of the form <span class="SimpleMath">\(F+D\Longrightarrow T\)</span>, meaning that an input file containing <span class="SimpleMath">\(F\)</span> together with the deletion string <span class="SimpleMath">\(D\)</span> produce multiplication table <span class="SimpleMath">\(T\)</span>. <br /></p>
<p><strong class="button">Example:</strong> Data does not have to be arranged into an array of any kind.</p>
<p class="center">\[
\begin{array}{cccc}
0&amp;1&amp;2&amp;1\\
2&amp;0&amp;2&amp; \\
0&amp;1&amp; &amp;
\end{array}\quad + \quad "" \quad \Longrightarrow\quad
\begin{array}{ccc}
1&amp;2&amp;3\\
2&amp;3&amp;1\\
3&amp;1&amp;2
\end{array}
\]</p>
<p><strong class="button">Example:</strong> Chunks can be any strings.</p>
<p class="center">\[
\begin{array}{cc}
{\rm red}&amp;{\rm green}\\
{\rm green}&amp;{\rm red}\\
\end{array}\quad + \quad "" \quad \Longrightarrow\quad
\begin{array}{cc}
1&amp; 2\\
2&amp; 1
\end{array}
\]</p>
<p><strong class="button">Example:</strong> A typical table produced by <strong class="pkg">GAP</strong> is easily parsed by deleting brackets and commas.</p>
<p class="center">\[
[ [0, 1], [1, 0] ] \quad + \quad "[,]" \quad \Longrightarrow\quad
\begin{array}{cc}
1&amp; 2\\
2&amp; 1
\end{array}
\]</p>
<p><strong class="button">Example:</strong> A typical TeX table with rows separated by lines is also easily converted. Note that we have to use <span class="SimpleMath">\(\backslash\backslash\)</span> to ensure that every occurrence of <span class="SimpleMath">\(\backslash\)</span> is deleted, since <span class="SimpleMath">\(\backslash\backslash\)</span> represents the character <span class="SimpleMath">\(\backslash\)</span> in <strong class="pkg">GAP</strong></p>
<p class="center">\[
\begin{array}{lll}
x\&amp;&amp; y\&amp;&amp;\ z\backslash\backslash\cr
y\&amp;&amp; z\&amp;&amp;\ x\backslash\backslash\cr
z\&amp;&amp; x\&amp;&amp;\ y
\end{array}
\quad + \quad "\backslash\backslash\&amp;" \quad \Longrightarrow\quad
\begin{array}{ccc}
1&amp;2&amp;3\cr
2&amp;3&amp;1\cr
3&amp;1&amp;2
\end{array}
\]</p>
<p><a id="X81A1DB918057933E" name="X81A1DB918057933E"></a></p>
<h5>4.5-1 <span class="Heading">QuasigroupFromFile and LoopFromFile</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; QuasigroupFromFile</code>( <var class="Arg">filename</var>, <var class="Arg">del</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">&#8227; LoopFromFile</code>( <var class="Arg">filename</var>, <var class="Arg">del</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The quasigroup (resp. loop) whose multiplication table data is in file <var class="Arg">filename</var>, ignoring the characters contained in the string <var class="Arg">del</var>.</p>
<p><a id="X820E67F88319C38B" name="X820E67F88319C38B"></a></p>
<h4>4.6 <span class="Heading">Creating Quasigroups and Loops From Sections</span></h4>
<p><a id="X7F94C8DD7E1A3470" name="X7F94C8DD7E1A3470"></a></p>
<h5>4.6-1 CayleyTableByPerms</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; CayleyTableByPerms</code>( <var class="Arg">P</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: If <var class="Arg">P</var> is a set of <span class="SimpleMath">\(n\)</span> permutations of an <span class="SimpleMath">\(n\)</span>-element set <span class="SimpleMath">\(X\)</span>, returns Cayley table <span class="SimpleMath">\(C\)</span> such that <span class="SimpleMath">\(C[i][j] = X[j]^{P[i]}\)</span>.</p>
<p>The cardinality of the underlying set is determined by the moved points of the first permutation in <var class="Arg">P</var>, unless the first permutation is the identity permutation, in which case the second permutation is used.</p>
<p>In particular, if <var class="Arg">P</var> is the left section of a quasigroup <var class="Arg">Q</var>, <code class="code">CayleyTableByPerms(<var class="Arg">Q</var>)</code> returns the multiplication table of <var class="Arg">Q</var>.</p>
<p><a id="X7EC1EB0D7B8382A1" name="X7EC1EB0D7B8382A1"></a></p>
<h5>4.6-2 <span class="Heading">QuasigroupByLeftSection and LoopByLeftSection</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; QuasigroupByLeftSection</code>( <var class="Arg">P</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">&#8227; LoopByLeftSection</code>( <var class="Arg">P</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: If <var class="Arg">P</var> is a set of permutations corresponding to the left translations of a quasigroup (resp. loop), returns the corresponding quasigroup (resp. loop).</p>
<p>The order of permutations in <var class="Arg">P</var> is important in the quasigroup case, but it is disregarded in the loop case, since then the order of rows in the corresponding multiplication table is determined by the presence of the neutral element.</p>
<p><a id="X80B436ED7CC0749E" name="X80B436ED7CC0749E"></a></p>
<h5>4.6-3 <span class="Heading">QuasigroupByRightSection and LoopByRightSection</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; QuasigroupByRightSection</code>( <var class="Arg">P</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">&#8227; LoopByRightSection</code>( <var class="Arg">P</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>These are the dual operations to <code class="code">QuasigroupByLeftSection</code> and <code class="code">LoopByLeftSection</code>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">S := Subloop( MoufangLoop( 12, 1 ), [ 3 ] );; </span>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">ls := LeftSection( S ); </span>
[ (), (1,3,5), (1,5,3) ]
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">CayleyTableByPerms( ls ); </span>
[ [ 1, 3, 5 ], [ 3, 5, 1 ], [ 5, 1, 3 ] ]
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">CayleyTable( LoopByLeftSection( ls ) ); </span>
[ [ 1, 2, 3 ], [ 2, 3, 1 ], [ 3, 1, 2 ] ]
</pre></div>
<p><a id="X85ABE99E84E5B0E8" name="X85ABE99E84E5B0E8"></a></p>
<h4>4.7 <span class="Heading">Creating Quasigroups and Loops From Folders</span></h4>
<p>Let <span class="SimpleMath">\(G\)</span> be a group, <span class="SimpleMath">\(H\)</span> a subgroup of <span class="SimpleMath">\(G\)</span>, and <span class="SimpleMath">\(T\)</span> a right transversal to <span class="SimpleMath">\(H\)</span> in <span class="SimpleMath">\(G\)</span>. Let <span class="SimpleMath">\(\tau:G\to T\)</span> be defined by <span class="SimpleMath">\(x\in H\tau(x)\)</span>. Then the operation <span class="SimpleMath">\(\circ\)</span> defined on the right cosets <span class="SimpleMath">\(Q = \{Ht|t\in T\}\)</span> by <span class="SimpleMath">\(Hs\circ Ht = H\tau(st)\)</span> turns <span class="SimpleMath">\(Q\)</span> into a quasigroup if and only if <span class="SimpleMath">\(T\)</span> is a right transversal to all conjugates <span class="SimpleMath">\(g^{-1}Hg\)</span> of <span class="SimpleMath">\(H\)</span> in <span class="SimpleMath">\(G\)</span>. (In fact, every quasigroup <span class="SimpleMath">\(Q\)</span> can be obtained in this way by letting <span class="SimpleMath">\(G={\rm Mlt}_\rho(Q)\)</span>, <span class="SimpleMath">\(H={\rm Inn}_\rho(Q)\)</span> and <span class="SimpleMath">\(T=\{R_x|x\in Q\}\)</span>.)</p>
<p>We call the triple <span class="SimpleMath">\((G,H,T)\)</span> a <em>right quasigroup (or loop) folder</em>.</p>
<p><a id="X83168E62861F70AB" name="X83168E62861F70AB"></a></p>
<h5>4.7-1 <span class="Heading">QuasigroupByRightFolder and LoopByRightFolder</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; QuasigroupByRightFolder</code>( <var class="Arg">G</var>, <var class="Arg">H</var>, <var class="Arg">T</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">&#8227; LoopByRightFolder</code>( <var class="Arg">G</var>, <var class="Arg">H</var>, <var class="Arg">T</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The quasigroup (resp. loop) from the right folder (<var class="Arg">G</var>, <var class="Arg">H</var>, <var class="Arg">T</var>).</p>
<p><strong class="button">Remark:</strong> We do not support the dual operations for left sections since, by default, actions in <strong class="pkg">GAP</strong> act on the right. <br /></p>
<p>Here is a simple example in which <span class="SimpleMath">\(T\)</span> is actually the right section of the resulting loop.</p>
<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">T := [ (), (1,2)(3,4,5), (1,3,5)(2,4), (1,4,3)(2,5), (1,5,4)(2,3) ];; </span>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">G := Group( T );; H := Stabilizer( G, 1 );; </span>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">LoopByRightFolder( G, H, T ); </span>
&lt;loop of order 5&gt;
</pre></div>
<p><a id="X8759431780AC81A9" name="X8759431780AC81A9"></a></p>
<h4>4.8 <span class="Heading">Creating Quasigroups and Loops By Nuclear Extensions</span></h4>
<p>Let <span class="SimpleMath">\(K\)</span>, <span class="SimpleMath">\(F\)</span> be loops. Then a loop <span class="SimpleMath">\(Q\)</span> is an <em>extension</em> of <span class="SimpleMath">\(K\)</span> by <span class="SimpleMath">\(F\)</span> if <span class="SimpleMath">\(K\)</span> is a normal subloop of <span class="SimpleMath">\(Q\)</span> such that <span class="SimpleMath">\(Q/K\)</span> is isomorphic to <span class="SimpleMath">\(F\)</span>. An extension <span class="SimpleMath">\(Q\)</span> of <span class="SimpleMath">\(K\)</span> by <span class="SimpleMath">\(F\)</span> is <em>nuclear</em> if <span class="SimpleMath">\(K\)</span> is an abelian group and <span class="SimpleMath">\(K\le N(Q)\)</span>.</p>
<p>A map <span class="SimpleMath">\(\theta:F\times F\to K\)</span> is a <em>cocycle</em> if <span class="SimpleMath">\(\theta(1,x) = \theta(x,1) = 1\)</span> for every <span class="SimpleMath">\(x\in F\)</span>.</p>
<p>The following theorem holds for loops <span class="SimpleMath">\(Q\)</span>, <span class="SimpleMath">\(F\)</span> and an abelian group <span class="SimpleMath">\(K\)</span>: <span class="SimpleMath">\(Q\)</span> is a nuclear extension of <span class="SimpleMath">\(K\)</span> by <span class="SimpleMath">\(F\)</span> if and only if there is a cocycle <span class="SimpleMath">\(\theta:F\times F\to K\)</span> and a homomorphism <span class="SimpleMath">\(\varphi:F\to{\rm Aut}(Q)\)</span> such that <span class="SimpleMath">\(K\times F\)</span> with multiplication <span class="SimpleMath">\((a,x)(b,y) = (a\varphi_x(b)\theta(x,y),xy)\)</span> is isomorphic to <span class="SimpleMath">\(Q\)</span>.</p>
<p><a id="X784733C67AA6B2FA" name="X784733C67AA6B2FA"></a></p>
<h5>4.8-1 NuclearExtension</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; NuclearExtension</code>( <var class="Arg">Q</var>, <var class="Arg">K</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The data necessary to construct <var class="Arg">Q</var> as a nuclear extension of the subloop <var class="Arg">K</var> by <var class="Arg">Q</var><span class="SimpleMath">\(/\)</span><var class="Arg">K</var>, namely <span class="SimpleMath">\([K, F, \varphi, \theta]\)</span> as above. Note that <var class="Arg">K</var> must be a commutative subloop of the nucleus of <var class="Arg">Q</var>.</p>
<p>If <span class="SimpleMath">\(n=|F|\)</span> and <span class="SimpleMath">\(m=|\)</span><var class="Arg">K</var><span class="SimpleMath">\(|\)</span>, the cocycle <span class="SimpleMath">\(\theta\)</span> is returned as an <span class="SimpleMath">\(n\times n\)</span> array with entries in <span class="SimpleMath">\(\{1,\dots,m\}\)</span>, and the homomorphism <span class="SimpleMath">\(\varphi\)</span> is returned as a list of length <span class="SimpleMath">\(n\)</span> of permutations of <span class="SimpleMath">\(\{1,\dots,m\}\)</span>.</p>
<p><a id="X79AEE93E7E15B802" name="X79AEE93E7E15B802"></a></p>
<h5>4.8-2 LoopByExtension</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LoopByExtension</code>( <var class="Arg">K</var>, <var class="Arg">F</var>, <var class="Arg">f</var>, <var class="Arg">t</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The extension of an abelian group <var class="Arg">K</var> by a loop <var class="Arg">F</var>, using action <var class="Arg">f</var> and cocycle <var class="Arg">t</var>. The arguments must be formatted as the output of <code class="code">NuclearExtension</code>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">F := IntoLoop( Group( (1,2) ) ); </span>
&lt;loop of order 2&gt;
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">K := DirectProduct( F, F );; </span>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">phi := [ (), (2,3) ];; </span>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">theta := [ [ 1, 1 ], [ 1, 3 ] ];; </span>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">LoopByExtension( K, F, phi, theta ); </span>
&lt;loop of order 8&gt;
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">IsAssociative( last ); </span>
false
</pre></div>
<p><a id="X7AE29A1A7AA5C25A" name="X7AE29A1A7AA5C25A"></a></p>
<h4>4.9 <span class="Heading">Random Quasigroups and Loops</span></h4>
<p>An algorithm is said to select a latin square of order <span class="SimpleMath">\(n\)</span> <em>at random</em> if every latin square of order <span class="SimpleMath">\(n\)</span> is returned by the algorithm with the same probability. Selecting a latin square at random is a nontrivial problem.</p>
<p>In <a href="chapBib_mj.html#biBJaMa">[JM96]</a>, Jacobson and Matthews defined a random walk on the space of latin squares and so-called improper latin squares that visits every latin square with the same probability. The diameter of the space is no more than <span class="SimpleMath">\(4(n-1)^3\)</span> in the sense that no more than <span class="SimpleMath">\(4(n-1)^3\)</span> properly chosen steps are needed to travel from one latin square of order <span class="SimpleMath">\(n\)</span> to another.</p>
<p>The Jacobson-Matthews algorithm can be used to generate random quasigroups as follows: (i) select any latin square of order <span class="SimpleMath">\(n\)</span>, for instance the canonical multiplication table of the cyclic group of order <span class="SimpleMath">\(n\)</span>, (ii) perform sufficiently many steps of the random walk, stopping at a proper or improper latin square, (iii) if necessary, perform a few more steps to end up with a proper latin square. Upon normalizing the resulting latin square, we obtain a random loop of order <span class="SimpleMath">\(n\)</span>.</p>
<p>By the above result, it suffices to use about <span class="SimpleMath">\(n^3\)</span> steps to arrive at any latin square of order <span class="SimpleMath">\(n\)</span> from the initial latin square. In fact, a smaller number of steps is probably sufficient.</p>
<p><a id="X8271C0F5786B6FA9" name="X8271C0F5786B6FA9"></a></p>
<h5>4.9-1 <span class="Heading">RandomQuasigroup and RandomLoop</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; RandomQuasigroup</code>( <var class="Arg">n</var>[, <var class="Arg">iter</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">&#8227; RandomLoop</code>( <var class="Arg">n</var>[, <var class="Arg">iter</var>] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A random quasigroup (resp. loop) of order <var class="Arg">n</var> using the Jacobson-Matthews algorithm. If the optional argument <var class="Arg">iter</var> is omitted, <var class="Arg">n</var><span class="SimpleMath">\({}^3\)</span> steps are used. Otherwise <var class="Arg">iter</var> steps are used.</p>
<p>If <var class="Arg">iter</var> is small, the Cayley table of the returned quasigroup (resp. loop) will be close to the canonical Cayley table of the cyclic group of order <var class="Arg">n</var>.</p>
<p><a id="X817132C887D3FD3A" name="X817132C887D3FD3A"></a></p>
<h5>4.9-2 RandomNilpotentLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; RandomNilpotentLoop</code>( <var class="Arg">lst</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A random nilpotent loop as follows (see Section <a href="chap6_mj.html#X821F40748401D698"><span class="RefLink">6.9</span></a> for more information on nilpotency): <var class="Arg">lst</var> must be a list of positive integers and/or finite abelian groups. If <code class="code"><var class="Arg">lst</var>=[a1]</code> and <code class="code">a1</code> is an integer, a random abelian group of order <code class="code">a1</code> is returned, else <code class="code">a1</code> is an abelian group and <code class="code">AsLoop(a1)</code> is returned. If <code class="code"><var class="Arg">lst</var>= [a1,...,am]</code>, a random central extension of <code class="code">RandomNilpotentLoop([a1])</code> by <code class="code">RandomNilpotentLoop([a2,...,am])</code> is returned.</p>
<p>To determine the nilpotency class <span class="SimpleMath">\(c\)</span> of the resulting loop, assume that <var class="Arg">lst</var> has length at least 2, contains only integers bigger than 1, and let <span class="SimpleMath">\(m\)</span> be the last entry of <var class="Arg">lst</var>. If <span class="SimpleMath">\(m&gt;2\)</span> then <span class="SimpleMath">\(c\)</span> is equal to <code class="code">Length(<var class="Arg">lst</var>)</code>, else <span class="SimpleMath">\(c\)</span> is equal to <code class="code">Length(<var class="Arg">lst</var>)-1</code>.</p>
<p><a id="X7BC2D8877A943D74" name="X7BC2D8877A943D74"></a></p>
<h4>4.10 <span class="Heading">Conversions</span></h4>
<p><strong class="pkg">LOOPS</strong> contains methods that convert between magmas, quasigroups, loops and groups, provided such conversions are possible. Each of the conversion methods <code class="code">IntoQuasigroup</code>, <code class="code">IntoLoop</code> and <code class="code">IntoGroup</code> returns <code class="code">fail</code> if the requested conversion is not possible. <br /></p>
<p><strong class="button">Remark:</strong> Up to version 2.0.0 of <strong class="pkg">LOOPS</strong>, we supported <code class="code">AsQuasigroup</code>, <code class="code">AsLoop</code> and <code class="code">AsGroup</code> in place of <code class="code">IntoQuasigroup</code>, <code class="code">IntoLoop</code> and <code class="code">IntoGroup</code>, respectively. We have changed the terminology starting with version 2.1.0 in order to comply with <strong class="pkg">GAP</strong> naming rules for <code class="code">AsSomething</code>, as explained in Chapter <a href="chap3_mj.html#X7A6DF65E826B8CFF"><span class="RefLink">3</span></a>. Finally, the method <code class="code">AsGroup</code> is a core method of <strong class="pkg">GAP</strong> that returns an fp group if its argument is an associative loop.</p>
<p><a id="X84575A4B78CC545E" name="X84575A4B78CC545E"></a></p>
<h5>4.10-1 IntoQuasigroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IntoQuasigroup</code>( <var class="Arg">M</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: If <var class="Arg">M</var> is a declared magma that happens to be a quasigroup, the corresponding quasigroup is returned. If <var class="Arg">M</var> is already declared as a quasigroup, <var class="Arg">M</var> is returned.</p>
<p><a id="X79CEA57C850C7070" name="X79CEA57C850C7070"></a></p>
<h5>4.10-2 PrincipalLoopIsotope</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; PrincipalLoopIsotope</code>( <var class="Arg">M</var>, <var class="Arg">f</var>, <var class="Arg">g</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: An isomorphic copy of the principal isotope <span class="SimpleMath">\((\)</span><var class="Arg">M</var>,<span class="SimpleMath">\(\circ)\)</span> via the transposition <span class="SimpleMath">\((1\)</span>,<var class="Arg">f</var><span class="SimpleMath">\(\cdot\)</span><var class="Arg">g</var><span class="SimpleMath">\()\)</span>. An isomorphic copy is returned rather than <span class="SimpleMath">\((\)</span><var class="Arg">M</var>,<span class="SimpleMath">\(\circ)\)</span> because in <strong class="pkg">LOOPS</strong> all loops have to have neutral element labeled as <span class="SimpleMath">\(1\)</span>.</p>
<p>Given a quasigroup <span class="SimpleMath">\(M\)</span> and two of its elements <span class="SimpleMath">\(f\)</span>, <span class="SimpleMath">\(g\)</span>, the principal loop isotope <span class="SimpleMath">\(x\circ y = R_g^{-1}(x)\cdot L_f^{-1}(y)\)</span> turns <span class="SimpleMath">\((M,\circ)\)</span> into a loop with neutral element <span class="SimpleMath">\(f\cdot g\)</span> (see Section <a href="chap2_mj.html#X791066ED7DD9F254"><span class="RefLink">2.6</span></a>).</p>
<p><a id="X7A59C36683118E5A" name="X7A59C36683118E5A"></a></p>
<h5>4.10-3 IntoLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IntoLoop</code>( <var class="Arg">M</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: If <var class="Arg">M</var> is a declared magma that happens to be a quasigroup (but not necessarily a loop!), a loop is returned as follows: If <var class="Arg">M</var> is already declared as a loop, <var class="Arg">M</var> is returned. Else, if <var class="Arg">M</var> possesses a neutral element <span class="SimpleMath">\(e\)</span> and if <span class="SimpleMath">\(f\)</span> is the first element of <var class="Arg">M</var>, then an isomorphic copy of <var class="Arg">M</var> via the transposition <span class="SimpleMath">\((e,f)\)</span> is returned. If <var class="Arg">M</var> does not posses a neutral element, <code class="code">PrincipalLoopIsotope(<var class="Arg">M</var>, <var class="Arg">M.1</var>, <var class="Arg">M.1</var>)</code> is returned.<br /></p>
<p><strong class="button">Remark:</strong> One could obtain a loop from a declared magma <var class="Arg">M</var> in yet another way, by normalizing the Cayley table of <var class="Arg">M</var>. The three approaches can result in nonisomorphic loops in general.</p>
<p><a id="X7B5C6C64831B866E" name="X7B5C6C64831B866E"></a></p>
<h5>4.10-4 IntoGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IntoGroup</code>( <var class="Arg">M</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: If <var class="Arg">M</var> is a declared magma that happens to be a group, the corresponding group is returned as follows: If <var class="Arg">M</var> is already declared as a group, <var class="Arg">M</var> is returned, else <code class="code">RightMultiplicationGroup(IntoLoop(<var class="Arg">M</var>))</code> is returned, which is a permutation group isomorphic to <var class="Arg">M</var>.</p>
<p><a id="X79B7327C79029086" name="X79B7327C79029086"></a></p>
<h4>4.11 <span class="Heading">Products of Quasigroups and Loops</span></h4>
<p><a id="X861BA02C7902A4F4" name="X861BA02C7902A4F4"></a></p>
<h5>4.11-1 DirectProduct</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; DirectProduct</code>( <var class="Arg">Q1</var>, <var class="Arg">...</var>, <var class="Arg">Qn</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: If each <var class="Arg">Qi</var> is either a declared quasigroup, declared loop or a declared group, the direct product of <var class="Arg">Q1</var>, <span class="SimpleMath">\(\dots\)</span>, <var class="Arg">Qn</var> is returned. If every <var class="Arg">Qi</var> is a declared group, a group is returned; if every <var class="Arg">Qi</var> is a declared loop, a loop is returned; otherwise a quasigroup is returned.</p>
<p><a id="X7865FC8D7854C2E3" name="X7865FC8D7854C2E3"></a></p>
<h4>4.12 <span class="Heading">Opposite Quasigroups and Loops</span></h4>
<p>When <span class="SimpleMath">\(Q\)</span> is a quasigroup with multiplication <span class="SimpleMath">\(\cdot\)</span>, the <em>opposite quasigroup</em> of <span class="SimpleMath">\(Q\)</span> is a quasigroup with the same underlying set as <span class="SimpleMath">\(Q\)</span> and with multiplication <span class="SimpleMath">\(*\)</span> defined by <span class="SimpleMath">\(x*y=y\cdot x\)</span>.</p>
<p><a id="X87B6AED47EE2BCD3" name="X87B6AED47EE2BCD3"></a></p>
<h5>4.12-1 <span class="Heading">Opposite, OppositeQuasigroup and OppositeLoop</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; Opposite</code>( <var class="Arg">Q</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">&#8227; OppositeQuasigroup</code>( <var class="Arg">Q</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">&#8227; OppositeLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The opposite of the quasigroup (resp. loop) <var class="Arg">Q</var>. Note that if <code class="code">OppositeQuasigroup(<var class="Arg">Q</var>)</code> or <code class="code">OppositeLoop(<var class="Arg">Q</var>)</code> are called, then the returned quasigroup or loop is not stored as an attribute of <var class="Arg">Q</var>.</p>
<div class="chlinkprevnextbot">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap3_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chap5_mj.html">[Next Chapter]</a>&nbsp; </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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</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>

173
doc/chap5.txt Normal file
View file

@ -0,0 +1,173 @@
5 Basic Methods And Attributes
In this chapter we describe the basic core methods and attributes of the
LOOPS package.
5.1 Basic Attributes
We associate many attributes with quasigroups in order to speed up
computation. This section lists some basic attributes of quasigroups and
loops.
5.1-1 Elements
Elements( Q )  attribute
Returns: The list of elements of a quasigroup Q.
See Section 3.4 for more information about element labels.
5.1-2 CayleyTable
CayleyTable( Q )  attribute
Returns: The Cayley table of a quasigroup Q.
See Section 4.1 for more information about quasigroup Cayley tables.
5.1-3 One
One( Q )  attribute
Returns: The identity element of a loop Q.
Remark:If you want to know if a quasigroup Q has a neutral element, you can
find out with the standard function for magmas
MultiplicativeNeutralElement(Q).
5.1-4 Size
Size( Q )  attribute
Returns: The size of a quasigroup Q.
5.1-5 Exponent
Exponent( Q )  attribute
Returns: The exponent of a power associative loop Q. (The method does not
test if Q is power associative.)
When Q is a power associative loop, that is, the powers of elements are
well-defined in Q, then the exponent of Q is the smallest positive integer
divisible by the orders of all elements of Q.
5.2 Basic Arithmetic Operations
Each quasigroup element in GAP 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.
Two elements x, y of the same quasigroup are multiplied by x*y in GAP. Since
multiplication of at least three elements is ambiguous in the nonassociative
case, we parenthesize elements by default from left to right, i.e., x*y*z
means ((x*y)*z). Of course, one can specify the order of multiplications by
providing parentheses.
5.2-1 LeftDivision and RightDivision
LeftDivision( x, y )  operation
RightDivision( x, y )  operation
Returns: The left division xbackslashy (resp. the right division x/y) of
two elements x, y of the same quasigroup.
LeftDivision( S, x )  operation
LeftDivision( x, S )  operation
RightDivision( S, x )  operation
RightDivision( x, S )  operation
Returns: The list of elements obtained by performing the specified
arithmetical operation elementwise using a list S of elements and
an element x.
Remark: We support / in place of RightDivision. But we do not support
backslash in place of LeftDivision.
5.2-2 LeftDivisionCayleyTable and RightDivisionCayleyTable
LeftDivisionCayleyTable( Q )  operation
RightDivisionCayleyTable( Q )  operation
Returns: The Cayley table of the respective arithmetic operation of a
quasigroup Q.
5.3 Powers and Inverses
Powers of elements are generally not well-defined in quasigroups. For magmas
and a positive integral exponent, GAP calculates powers in the following
way: x^1=x, x^2k=(x^k)⋅(x^k) and x^2k+1=(x^2k)⋅ x. One can easily see that
this returns x^k in about log_2(k) steps. For LOOPS, we have decided to keep
this method, but the user should be aware that the method is sound only in
power associative quasigroups.
Let x be an element of a loop Q with neutral element 1. Then the left
inverse x^λ of x is the unique element of Q satisfying x^λ x=1. Similarly,
the right inverse x^ρ satisfies xx^ρ=1. If x^λ=x^ρ, we call x^-1=x^λ=x^ρ the
inverse of x.
5.3-1 LeftInverse, RightInverse and Inverse
LeftInverse( x )  operation
RightInverse( x )  operation
Inverse( x )  operation
Returns: The left inverse, right inverse and inverse, respectively, of the
quasigroup element x.
 Example 
gap> CayleyTable( Q ); 
[ [ 1, 2, 3, 4, 5 ], 
 [ 2, 1, 4, 5, 3 ], 
 [ 3, 4, 5, 1, 2 ], 
 [ 4, 5, 2, 3, 1 ], 
 [ 5, 3, 1, 2, 4 ] ] 
gap> elms := Elements( Q ); 
gap> [ l1, l2, l3, l4, l5 ]; 
gap> [ LeftInverse( elms[3] ), RightInverse( elms[3] ), Inverse( elms[3] ) ]; 
[ l5, l4, fail ] 

5.4 Associators and Commutators
See Section 2.5 for definitions of associators and commutators.
5.4-1 Associator
Associator( x, y, z )  operation
Returns: The associator of the elements x, y, z of the same quasigroup.
5.4-2 Commutator
Commutator( x, y )  operation
Returns: The commutator of the elements x, y of the same quasigroup.
5.5 Generators
5.5-1 GeneratorsOfQuasigroup and GeneratorsOfLoop
GeneratorsOfQuasigroup( Q )  attribute
GeneratorsOfLoop( Q )  attribute
Returns: A set of generators of a quasigroup (resp. loop) Q. (Both methods
are synonyms of GeneratorsOfMagma.)
As usual in GAP, one can refer to the ith generator of a quasigroup Q by
Q.i. Note that while it is often the case that  Q.i = Elements(Q)[i], it is
not necessarily so.
5.5-2 GeneratorsSmallest
GeneratorsSmallest( Q )  attribute
Returns: A generating set {q_0, dots, q_m} of Q such that Q_0=∅, Q_m=Q,
Q_i=⟨ q_1, dots, q_i ⟩, and q_i+1 is the least element of Q Q_i.
5.5-3 SmallGeneratingSet
SmallGeneratingSet( Q )  attribute
Returns: A small generating set {q_0, dots, q_m} of Q obtained as follows:
q_0 is the least element for which ⟨ q_0⟩ is largest possible,
q_1$ is the least element for which ⟨ q_0,q_1 is largest possible,
and so on.

240
doc/chap5_mj.html Normal file
View file

@ -0,0 +1,240 @@
<?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="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (Loops) - Chapter 5: Basic Methods And Attributes</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="chap5" 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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap4_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chap6_mj.html">[Next Chapter]</a>&nbsp; </div>
<p id="mathjaxlink" class="pcenter"><a href="chap5.html">[MathJax off]</a></p>
<p><a id="X7B9F619279641FAA" name="X7B9F619279641FAA"></a></p>
<div class="ChapSects"><a href="chap5_mj.html#X7B9F619279641FAA">5 <span class="Heading">Basic Methods And Attributes</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap5_mj.html#X8373A7348161DB23">5.1 <span class="Heading">Basic Attributes</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X79B130FC7906FB4C">5.1-1 Elements</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X85457FA27DE7114D">5.1-2 CayleyTable</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X8129A6877FFD804B">5.1-3 One</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X858ADA3B7A684421">5.1-4 Size</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X7D44470C7DA59C1C">5.1-5 Exponent</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap5_mj.html#X82F2CA4A848ABD2B">5.2 <span class="Heading">Basic Arithmetic Operations</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X7D5956967BCC1834">5.2-1 <span class="Heading">LeftDivision and RightDivision</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X804F67C8796A0EB3">5.2-2 <span class="Heading">LeftDivisionCayleyTable and RightDivisionCayleyTable</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap5_mj.html#X810850247ADB4EE9">5.3 <span class="Heading">Powers and Inverses</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X805781838020CF44">5.3-1 <span class="Heading">LeftInverse, RightInverse and Inverse</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap5_mj.html#X7E0849977869E53D">5.4 <span class="Heading">Associators and Commutators</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X82B7448879B91F7B">5.4-1 Associator</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X7D624A9587FB1FE5">5.4-2 Commutator</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap5_mj.html#X7BD5B55C802805B4">5.5 <span class="Heading">Generators</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X83944A777D161D10">5.5-1 <span class="Heading">GeneratorsOfQuasigroup and GeneratorsOfLoop</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X82FD78AF7F80A0E2">5.5-2 GeneratorsSmallest</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5_mj.html#X814DBABC878D5232">5.5-3 SmallGeneratingSet</a></span>
</div></div>
</div>
<h3>5 <span class="Heading">Basic Methods And Attributes</span></h3>
<p>In this chapter we describe the basic core methods and attributes of the <strong class="pkg">LOOPS</strong> package.</p>
<p><a id="X8373A7348161DB23" name="X8373A7348161DB23"></a></p>
<h4>5.1 <span class="Heading">Basic Attributes</span></h4>
<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><a id="X79B130FC7906FB4C" name="X79B130FC7906FB4C"></a></p>
<h5>5.1-1 Elements</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; Elements</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The list of elements of a quasigroup <var class="Arg">Q</var>.</p>
<p>See Section <a href="chap3_mj.html#X7D75C7A6787AF72A"><span class="RefLink">3.4</span></a> for more information about element labels.</p>
<p><a id="X85457FA27DE7114D" name="X85457FA27DE7114D"></a></p>
<h5>5.1-2 CayleyTable</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; CayleyTable</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The Cayley table of a quasigroup <var class="Arg">Q</var>.</p>
<p>See Section <a href="chap4_mj.html#X7DE8405B82BC36A9"><span class="RefLink">4.1</span></a> for more information about quasigroup Cayley tables.</p>
<p><a id="X8129A6877FFD804B" name="X8129A6877FFD804B"></a></p>
<h5>5.1-3 One</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; One</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The identity element of a loop <var class="Arg">Q</var>.</p>
<p><strong class="button">Remark:</strong>If you want to know if a quasigroup <var class="Arg">Q</var> has a neutral element, you can find out with the standard function for magmas <code class="code">MultiplicativeNeutralElement(<var class="Arg">Q</var>)</code>.</p>
<p><a id="X858ADA3B7A684421" name="X858ADA3B7A684421"></a></p>
<h5>5.1-4 Size</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; Size</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The size of a quasigroup <var class="Arg">Q</var>.</p>
<p><a id="X7D44470C7DA59C1C" name="X7D44470C7DA59C1C"></a></p>
<h5>5.1-5 Exponent</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; Exponent</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The exponent of a power associative loop <var class="Arg">Q</var>. (The method does not test if <var class="Arg">Q</var> is power associative.)</p>
<p>When <var class="Arg">Q</var> is a <em>power associative loop</em>, that is, the powers of elements are well-defined in <var class="Arg">Q</var>, then the <em>exponent</em> of <var class="Arg">Q</var> is the smallest positive integer divisible by the orders of all elements of <var class="Arg">Q</var>.</p>
<p><a id="X82F2CA4A848ABD2B" name="X82F2CA4A848ABD2B"></a></p>
<h4>5.2 <span class="Heading">Basic Arithmetic Operations</span></h4>
<p>Each quasigroup element in <strong class="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 <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span> of the same quasigroup are multiplied by <span class="SimpleMath">\(x*y\)</span> in <strong class="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., <span class="SimpleMath">\(x*y*z\)</span> means <span class="SimpleMath">\(((x*y)*z)\)</span>. Of course, one can specify the order of multiplications by providing parentheses.</p>
<p><a id="X7D5956967BCC1834" name="X7D5956967BCC1834"></a></p>
<h5>5.2-1 <span class="Heading">LeftDivision and RightDivision</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LeftDivision</code>( <var class="Arg">x</var>, <var class="Arg">y</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">&#8227; RightDivision</code>( <var class="Arg">x</var>, <var class="Arg">y</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The left division <var class="Arg">x</var><span class="SimpleMath">\(\backslash\)</span><var class="Arg">y</var> (resp. the right division <var class="Arg">x</var><span class="SimpleMath">\(/\)</span><var class="Arg">y</var>) of two elements <var class="Arg">x</var>, <var class="Arg">y</var> of the same quasigroup.<br /></p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LeftDivision</code>( <var class="Arg">S</var>, <var class="Arg">x</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">&#8227; LeftDivision</code>( <var class="Arg">x</var>, <var class="Arg">S</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">&#8227; RightDivision</code>( <var class="Arg">S</var>, <var class="Arg">x</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">&#8227; RightDivision</code>( <var class="Arg">x</var>, <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The list of elements obtained by performing the specified arithmetical operation elementwise using a list <var class="Arg">S</var> of elements and an element <var class="Arg">x</var>.<br /></p>
<p><strong class="button">Remark:</strong> We support <span class="SimpleMath">\(/\)</span> in place of <code class="code">RightDivision</code>. But we do not support <span class="SimpleMath">\(\backslash\)</span> in place of <code class="code">LeftDivision</code>.</p>
<p><a id="X804F67C8796A0EB3" name="X804F67C8796A0EB3"></a></p>
<h5>5.2-2 <span class="Heading">LeftDivisionCayleyTable and RightDivisionCayleyTable</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LeftDivisionCayleyTable</code>( <var class="Arg">Q</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">&#8227; RightDivisionCayleyTable</code>( <var class="Arg">Q</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The Cayley table of the respective arithmetic operation of a quasigroup <var class="Arg">Q</var>.</p>
<p><a id="X810850247ADB4EE9" name="X810850247ADB4EE9"></a></p>
<h4>5.3 <span class="Heading">Powers and Inverses</span></h4>
<p>Powers of elements are generally not well-defined in quasigroups. For magmas and a positive integral exponent, <strong class="pkg">GAP</strong> calculates powers in the following way: <span class="SimpleMath">\(x^1=x\)</span>, <span class="SimpleMath">\(x^{2k}=(x^k)\cdot(x^k)\)</span> and <span class="SimpleMath">\(x^{2k+1}=(x^{2k})\cdot x\)</span>. One can easily see that this returns <span class="SimpleMath">\(x^k\)</span> in about <span class="SimpleMath">\(\log_2(k)\)</span> steps. For <strong class="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 <span class="SimpleMath">\(x\)</span> be an element of a loop <span class="SimpleMath">\(Q\)</span> with neutral element <span class="SimpleMath">\(1\)</span>. Then the <em>left inverse</em> <span class="SimpleMath">\(x^\lambda\)</span> of <span class="SimpleMath">\(x\)</span> is the unique element of <span class="SimpleMath">\(Q\)</span> satisfying <span class="SimpleMath">\(x^\lambda x=1\)</span>. Similarly, the <em>right inverse</em> <span class="SimpleMath">\(x^\rho\)</span> satisfies <span class="SimpleMath">\(xx^\rho=1\)</span>. If <span class="SimpleMath">\(x^\lambda=x^\rho\)</span>, we call <span class="SimpleMath">\(x^{-1}=x^\lambda=x^\rho\)</span> the <em>inverse</em> of <span class="SimpleMath">\(x\)</span>.</p>
<p><a id="X805781838020CF44" name="X805781838020CF44"></a></p>
<h5>5.3-1 <span class="Heading">LeftInverse, RightInverse and Inverse</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LeftInverse</code>( <var class="Arg">x</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">&#8227; RightInverse</code>( <var class="Arg">x</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">&#8227; Inverse</code>( <var class="Arg">x</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The left inverse, right inverse and inverse, respectively, of the quasigroup element <var class="Arg">x</var>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">CayleyTable( Q ); </span>
[ [ 1, 2, 3, 4, 5 ],
[ 2, 1, 4, 5, 3 ],
[ 3, 4, 5, 1, 2 ],
[ 4, 5, 2, 3, 1 ],
[ 5, 3, 1, 2, 4 ] ]
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">elms := Elements( Q ); </span>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">[ l1, l2, l3, l4, l5 ]; </span>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">[ LeftInverse( elms[3] ), RightInverse( elms[3] ), Inverse( elms[3] ) ]; </span>
[ l5, l4, fail ]
</pre></div>
<p><a id="X7E0849977869E53D" name="X7E0849977869E53D"></a></p>
<h4>5.4 <span class="Heading">Associators and Commutators</span></h4>
<p>See Section <a href="chap2_mj.html#X7E0849977869E53D"><span class="RefLink">2.5</span></a> for definitions of associators and commutators.</p>
<p><a id="X82B7448879B91F7B" name="X82B7448879B91F7B"></a></p>
<h5>5.4-1 Associator</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; Associator</code>( <var class="Arg">x</var>, <var class="Arg">y</var>, <var class="Arg">z</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The associator of the elements <var class="Arg">x</var>, <var class="Arg">y</var>, <var class="Arg">z</var> of the same quasigroup.</p>
<p><a id="X7D624A9587FB1FE5" name="X7D624A9587FB1FE5"></a></p>
<h5>5.4-2 Commutator</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; Commutator</code>( <var class="Arg">x</var>, <var class="Arg">y</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The commutator of the elements <var class="Arg">x</var>, <var class="Arg">y</var> of the same quasigroup.</p>
<p><a id="X7BD5B55C802805B4" name="X7BD5B55C802805B4"></a></p>
<h4>5.5 <span class="Heading">Generators</span></h4>
<p><a id="X83944A777D161D10" name="X83944A777D161D10"></a></p>
<h5>5.5-1 <span class="Heading">GeneratorsOfQuasigroup and GeneratorsOfLoop</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; GeneratorsOfQuasigroup</code>( <var class="Arg">Q</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">&#8227; GeneratorsOfLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: A set of generators of a quasigroup (resp. loop) <var class="Arg">Q</var>. (Both methods are synonyms of <code class="code">GeneratorsOfMagma</code>.)</p>
<p>As usual in <strong class="pkg">GAP</strong>, one can refer to the <code class="code">i</code>th generator of a quasigroup <code class="code">Q</code> by <code class="code">Q.i</code>. Note that while it is often the case that <code class="code"> Q.i = Elements(Q)[i]</code>, it is not necessarily so.</p>
<p><a id="X82FD78AF7F80A0E2" name="X82FD78AF7F80A0E2"></a></p>
<h5>5.5-2 GeneratorsSmallest</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; GeneratorsSmallest</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: A generating set <span class="SimpleMath">\(\{q_0\)</span>, <span class="SimpleMath">\(\dots\)</span>, <span class="SimpleMath">\(q_m\}\)</span> of <var class="Arg">Q</var> such that <span class="SimpleMath">\(Q_0=\emptyset\)</span>, <span class="SimpleMath">\(Q_m=\)</span><var class="Arg">Q</var>, <span class="SimpleMath">\(Q_i=\langle q_1\)</span>, <span class="SimpleMath">\(\dots\)</span>, <span class="SimpleMath">\(q_i \rangle\)</span>, and <span class="SimpleMath">\(q_{i+1}\)</span> is the least element of <var class="Arg">Q</var><span class="SimpleMath">\(\setminus Q_i\)</span>.</p>
<p><a id="X814DBABC878D5232" name="X814DBABC878D5232"></a></p>
<h5>5.5-3 SmallGeneratingSet</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; SmallGeneratingSet</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: A small generating set <span class="SimpleMath">\(\{q_0\)</span>, <span class="SimpleMath">\(\dots\)</span>, <span class="SimpleMath">\(q_m\}\)</span> of <var class="Arg">Q</var> obtained as follows: <span class="SimpleMath">\(q_0\)</span> is the least element for which <span class="SimpleMath">\(\langle q_0\rangle\)</span> is largest possible, <span class="SimpleMath">\(q_1\)</span>$ is the least element for which <span class="SimpleMath">\(\langle q_0,q_1\)</span> is largest possible, and so on.</p>
<div class="chlinkprevnextbot">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap4_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chap6_mj.html">[Next Chapter]</a>&nbsp; </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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</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>

553
doc/chap6.txt Normal file
View file

@ -0,0 +1,553 @@
6 Methods Based on Permutation Groups
Most calculations in the LOOPS package are delegated to groups, taking
advantage of the various permutations and permutation groups associated with
quasigroups. This chapter explains in detail how the permutations associated
with a quasigroup are calculated, and it also describes some of the core
methods of LOOPS based on permutations. Additional core methods can be found
in Chapter 7.
6.1 Parent of a Quasigroup
Let Q be a quasigroup and S a subquasigroup of Q. Since the multiplication
in S coincides with the multiplication in Q, it is reasonable not to store
the multiplication table of S. However, the quasigroup S then must know that
it is a subquasigroup of Q.
6.1-1 Parent
Parent( Q )  attribute
Returns: The parent quasigroup of the quasigroup Q.
When Q is not created as a subquasigroup of another quasigroup, the
attribute Parent(Q) is set to Q. When Q is created as a subquasigroup of a
quasigroup H, we set Parent(Q) equal to Parent(H). Thus, in effect,
Parent(Q) is the largest quasigroup from which Q has been created.
6.1-2 Position
Position( Q, x )  operation
Returns: The position of x among the elements of Q.
Let Q be a quasigroup with parent P, where P is some n-element quasigroup.
Let x be an element of Q. Then x![1] is the position of x among the elements
of P, i.e., x![1] = Position(Elements(P),x).
While referring to elements of Q by their positions, the user should
understand whether the positions are meant among the elements of Q, or among
the elements of the parent P of Q. Since it requires no calculation to
obtain x![1], we always use the position of an element in its parent
quasigroup in LOOPS. In this way, many attributes of a quasigroup, including
its Cayley table, are permanently tied to its parent.
It is now clear why we have not insisted that Cayley tables of quasigroups
must have entries covering the entire interval 1, dots, n for some n.
6.1-3 PosInParent
PosInParent( S )  operation
Returns: When S is a list of quasigroup elements (not necessarily from the
same quasigroup), returns the corresponding list of positions of
elements of S in the corresponding parent, i.e., PosInParent(S)[i]
= S[i]![1] = Position(Parent(S[i]),S[i]).
Quasigroups with the same parent can be compared as follows. Assume that A,
B are two quasigroups with common parent Q. Let G_A, G_B be the canonical
generating sets of A and B, respectively, obtained by the method
GeneratorsSmallest (see Section 5.5). Then we define A<B if and only if
G_A<G_B lexicographically.
6.2 Subquasigroups and Subloops
6.2-1 Subquasigroup
Subquasigroup( Q, S )  operation
Returns: When S is a subset of elements or indices of a quasigroup (resp.
loop) Q, returns the smallest subquasigroup (resp. subloop) of Q
containing S.
We allow S to be a list of elements of Q, or a list of integers representing
the positions of the respective elements in the parent quasigroup (resp.
loop) of Q.
If S is empty, Subquasigroup(Q,S) returns the empty set if Q is a
quasigroup, and it returns the one-element subloop of Q if Q is a loop.
Remark: The empty set is sometimes considered to be a subquasigroup of Q
(although not in LOOPS). The above convention is useful for handling certain
situations, for instance when the user calls Center(Q) for a quasigroup Q
with empty center.
6.2-2 Subloop
Subloop( Q, S )  operation
This is an analog of Subquasigroup(Q,S) that can be used only when Q is a
loop. Since there is no difference in the outcome while calling
Subquasigroup(Q,S) or Subloop(Q,S) when Q is a loop, it is safe to always
call Subquasigroup(Q,S), whether Q is a loop or not.
6.2-3 IsSubquasigroup and IsSubloop
IsSubquasigroup( Q, S )  operation
IsSubloop( Q, S )  operation
Returns: true if S is a subquasigroup (resp. subloop) of a quasigroup
(resp. loop) Q, false otherwise. In other words, returns true if S
and Q are quasigroups (resp. loops) with the same parent and S is
a subset of Q.
6.2-4 AllSubquasigroups
AllSubquasigroups( Q )  operation
Returns: A list of all subquasigroups of a loop Q.
6.2-5 AllSubloops
AllSubloops( Q )  operation
Returns: A list of all subloops of a loop Q.
6.2-6 RightCosets
RightCosets( Q, S )  function
Returns: If S is a subloop of Q, returns a list of all right cosets of S in
Q.
The coset S is listed first, and the elements of each coset are ordered in
the same way as the elements of S, i.e., if S= [s_1,dots,s_m], then
Sx=[s_1x,dots,s_mx].
6.2-7 RightTransversal
RightTransversal( Q, S )  operation
Returns: A right transversal of a subloop S in a loop Q. The transversal
consists of the list of first elements from the right cosets
obtained by RightCosets(Q,S).
When S is a subloop of Q, the right transversal of S with respect to Q is a
subset of Q containing one element from each right coset of S in Q.
6.3 Translations and Sections
When x is an element of a quasigroup Q, the left translation L_x is a
permutation of Q. In LOOPS, all permutations associated with quasigroups and
their elements are permutations in the sense of GAP, i.e., they are
bijections of some interval 1, dots, n. Moreover, following our convention,
the numerical entries of the permutations point to the positions among
elements of the parent of Q, not among elements of Q.
6.3-1 LeftTranslation and RightTranslation
LeftTranslation( Q, x )  operation
RightTranslation( Q, x )  operation
Returns: If x is an element of a quasigroup Q, returns the left translation
(resp. right translation) by x in Q.
6.3-2 LeftSection and RightSection
LeftSection( Q )  operation
RightSection( Q )  operation
Returns: The left section (resp. right section) of a quasigroup Q.
Here is an example illustrating the main features of the subquasigroup
construction and the relationship between a quasigroup and its parent.
Note how the Cayley table of a subquasigroup is created only upon explicit
demand. Also note that changing the names of elements of a subquasigroup
(subloop) automatically changes the names of the elements of the parent
subquasigroup (subloop). This is because the elements are shared.
 Example 
gap> M := MoufangLoop( 12, 1 );; S := Subloop( M, [ M.5 ] ); 
<loop of order 3> 
gap> [ Parent( S ) = M, Elements( S ), PosInParent( S ) ]; 
[ true, [ l1, l3, l5], [ 1, 3, 5 ] ] 
gap> HasCayleyTable( S ); 
false 
gap> SetLoopElmName( S, "s" );; Elements( S ); Elements( M ); 
[ s1, s3, s5 ] 
[ s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12 ] 
gap> CayleyTable( S ); 
[ [ 1, 3, 5 ], [ 3, 5, 1 ], [ 5, 1, 3 ] ] 
gap> LeftSection( S ); 
[ (), (1,3,5), (1,5,3) ] 
gap> [ HasCayleyTable( S ), Parent( S ) = M ]; 
[ true, true ] 
gap> L := LoopByCayleyTable( CayleyTable( S ) );; Elements( L ); 
[ l1, l2, l3 ] 
gap> [ Parent( L ) = L, IsSubloop( M, S ), IsSubloop( M, L ) ]; 
[ true, true, false ] 
gap> LeftSection( L ); 
[ (), (1,2,3), (1,3,2) ] 

6.4 Multiplication Groups
6.4-1 LeftMutliplicationGroup, RightMultiplicationGroup and
MultiplicationGroup
LeftMultiplicationGroup( Q )  attribute
RightMultiplicationGroup( Q )  attribute
MultiplicationGroup( Q )  attribute
Returns: The left multiplication group, right multiplication group, resp.
multiplication group of a quasigroup Q.
6.4-2 RelativeLeftMultiplicationGroup, RelativeRightMultiplicationGroup and
RelativeMultiplicationGroup
RelativeLeftMultiplicationGroup( Q, S )  operation
RelativeRightMultiplicationGroup( Q, S )  operation
RelativeMultiplicationGroup( Q, S )  operation
Returns: The relative left multiplication group, the relative right
multiplication group, resp. the relative multiplication group of a
quasigroup Q with respect to a subquasigroup S of Q.
Let S be a subquasigroup of a quasigroup Q. Then the relative left
multiplication group of Q with respect to S is the group ⟨ L(x)|x∈ S⟩, where
L(x) is the left translation by x in Q restricted to S. The relative right
multiplication group and the relative multiplication group are defined
analogously.
6.5 Inner Mapping Groups
By a result of Bruck, the left inner mapping group of a loop is generated by
all left inner mappings L(x,y) = L_yx^-1L_yL_x, and the right inner mapping
group is generated by all right inner mappings R(x,y) = R_xy^-1R_yR_x.
In analogy with group theory, we define the conjugations or the middle inner
mappings as T(x) = L_x^-1R_x. The middle inner mapping grroup is then the
group generated by all conjugations.
6.5-1 LeftInnerMapping, RightInnerMapping, MiddleInnerMapping
LeftInnerMapping( Q, x, y )  operation
RightInnerMapping( Q, x, y )  operation
MiddleInnerMapping( Q, x )  operation
Returns: The left inner mapping L(x,y), the right inner mapping R(x,y),
resp. the middle inner mapping T(x) of a loop Q.
6.5-2 LeftInnerMappingGroup, RightInnerMappingGroup, MiddleInnerMappingGroup
LeftInnerMappingGroup( Q )  attribute
RightInnerMappingGroup( Q )  attribute
MiddleInnerMappingGroup( Q )  attribute
Returns: The left inner mapping group, right inner mapping group, resp.
middle inner mapping group of a loop Q.
6.5-3 InnerMappingGroup
InnerMappingGroup( Q )  attribute
Returns: The inner mapping group of a loop Q.
Here is an example for multiplication groups and inner mapping groups:
 Example 
gap> M := MoufangLoop(12,1); 
<Moufang loop 12/1> 
gap> LeftSection(M)[2]; 
(1,2)(3,4)(5,6)(7,8)(9,12)(10,11) 
gap> Mlt := MultiplicationGroup(M); Inn := InnerMappingGroup(M); 
<permutation group of size 2592 with 23 generators> 
Group([ (4,6)(7,11), (7,11)(8,10), (2,6,4)(7,9,11), (3,5)(9,11), (8,12,10) ]) 
gap> Size(Inn); 
216 

6.6 Nuclei, Commutant, Center, and Associator Subloop
See Section 2.3 for the relevant definitions.
6.6-1 LeftNucles, MiddleNucleus, and RightNucleus
LeftNucleus( Q )  attribute
MiddleNucleus( Q )  attribute
RightNucleus( Q )  attribute
Returns: The left nucleus, middle nucleus, resp. right nucleus of a
quasigroup Q.
6.6-2 Nuc, NucleusOfQuasigroup and NucleusOfLoop
Nuc( Q )  attribute
NucleusOfQuasigroup( Q )  attribute
NucleusOfLoop( Q )  attribute
Returns: These synonymous attributes return the nucleus of a quasigroup Q.
Since all nuclei are subquasigroups of Q, they are returned as
subquasigroups (resp. subloops). When Q is a loop then all nuclei are in
fact groups, and they are returned as associative loops.
Remark: The name Nucleus is a global function of GAP with two variables. We
have therefore used Nuc rather than Nucleus for the nucleus. This
abbreviation is sometimes used in the literature, too.
6.6-3 Commutant
Commutant( Q )  attribute
Returns: The commutant of a quasigroup Q.
6.6-4 Center
Center( Q )  attribute
Returns: The center of a quasigroup Q.
If Q is a loop, the center of Q is a subgroup of Q and it is returned as an
associative loop.
6.6-5 AssociatorSubloop
AssociatorSubloop( Q )  attribute
Returns: The associator subloop of a loop Q.
We calculate the associator subloop of Q as the smallest normal subloop of Q
containing all elements xbackslashα(x), where x is an element of Q and α is
a left inner mapping of Q.
6.7 Normal Subloops and Simple Loops
6.7-1 IsNormal
IsNormal( Q, S )  operation
Returns: true if S is a normal subloop of a loop Q.
A subloop S of a loop Q is normal if it is invariant under all inner
mappings of Q.
6.7-2 NormalClosure
NormalClosure( Q, S )  operation
Returns: The normal closure of a subset S of a loop Q.
For a subset S of a loop Q, the normal closure of S in Q is the smallest
normal subloop of Q containing S.
6.7-3 IsSimple
IsSimple( Q )  operation
Returns: true if Q is a simple loop.
A loop Q is simple if {1} and Q are the only normal subloops of Q.
6.8 Factor Loops
6.8-1 FactorLoop
FactorLoop( Q, S )  operation
Returns: When S is a normal subloop of a loop Q, returns the factor loop
Q/S.
6.8-2 NaturalHomomorphismByNormalSubloop
NaturalHomomorphismByNormalSubloop( Q, S )  operation
Returns: When S is a normal subloop of a loop Q, returns the natural
projection from Q onto Q/S.
 Example 
gap> M := MoufangLoop( 12, 1 );; S := Subloop( M, [ M.3 ] ); 
<loop of order 3> 
gap> IsNormal( M, S ); 
true 
gap> F := FactorLoop( M, S ); 
<loop of order 4> 
gap> NaturalHomomorphismByNormalSubloop( M, S ); 
MappingByFunction( <loop of order 12>, <loop of order 4>, 
 function( x ) ... end ) 

6.9 Nilpotency and Central Series
See Section 2.4 for the relevant definitions.
6.9-1 IsNilpotent
IsNilpotent( Q )  property
Returns: true if Q is a nilpotent loop.
6.9-2 NilpotencyClassOfLoop
NilpotencyClassOfLoop( Q )  attribute
Returns: The nilpotency class of a loop Q if Q is nilpotent, fail
otherwise.
6.9-3 IsStronglyNilpotent
IsStronglyNilpotent( Q )  property
Returns: true if Q is a strongly nilpotent loop.
A loop Q is said to be strongly nilpotent if its multiplication group is
nilpotent.
6.9-4 UpperCentralSeries
UpperCentralSeries( Q )  attribute
Returns: When Q is a nilpotent loop, returns the upper central series of Q,
else returns fail.
6.9-5 LowerCentralSeries
LowerCentralSeries( Q )  attribute
Returns: When Q is a nilpotent loop, returns the lower central series of Q,
else returns fail.
The lower central series for loops is defined analogously to groups.
6.10 Solvability, Derived Series and Frattini Subloop
See Section 2.4 for definitions of solvability an derived subloop.
6.10-1 IsSolvable
IsSolvable( Q )  property
Returns: true if Q is a solvable loop.
6.10-2 DerivedSubloop
DerivedSubloop( Q )  attribute
Returns: The derived subloop of a loop Q.
6.10-3 DerivedLength
DerivedLength( Q )  attribute
Returns: If Q is solvable, returns the derived length of Q, else returns
fail.
6.10-4 FrattiniSubloop and FrattinifactorSize
FrattiniSubloop( Q )  attribute
Returns: The Frattini subloop of Q. The method is implemented only for
strongly nilpotent loops.
Frattini subloop of a loop Q is the intersection of maximal subloops of Q.
6.10-5 FrattinifactorSize
FrattinifactorSize( Q )  attribute
6.11 Isomorphisms and Automorphisms
6.11-1 IsomorphismQuasigroups
IsomorphismQuasigroups( Q, L )  operation
Returns: An isomorphism from a quasigroup Q to a quasigroup L if the
quasigroups are isomorphic, fail otherwise.
If an isomorphism exists, it is returned as a permutation f of 1,dots,|Q|,
where i^f=j means that the ith element of Q is mapped onto the jth element
of L. Note that this convention is used even if the underlying sets of Q, L
are not indexed by consecutive integers.
6.11-2 IsomorphismLoops
IsomorphismLoops( Q, L )  operation
Returns: An isomorphism from a loop Q to a loop L if the loops are
isomorphic, fail otherwise, with the same convention as in
IsomorphismQuasigroups.
6.11-3 QuasigroupsUpToIsomorphism
QuasigroupsUpToIsomorphism( ls )  operation
Returns: Given a list ls of quasigroups, returns a sublist of ls consisting
of representatives of isomorphism classes of quasigroups from ls.
6.11-4 LoopsUpToIsomorphism
LoopsUpToIsomorphism( ls )  operation
Returns: Given a list ls of loops, returns a sublist of ls consisting of
representatives of isomorphism classes of loops from ls.
6.11-5 AutomorphismGroup
AutomorphismGroup( Q )  attribute
Returns: The automorphism group of a loop or quasigroups Q, with the same
convention on permutations as in IsomorphismQuasigroups.
Remark: Since two isomorphisms differ by an automorphism, all isomorphisms
from Q to L can be obtained by a combination of IsomorphismLoops(Q,L) (or
IsomorphismQuasigroups(Q,L)) and AutomorphismGroup(L).
While dealing with Cayley tables, it is often useful to rename or reorder
the elements of the underlying quasigroup without changing the isomorphism
type of the quasigroups. LOOPS contains several functions for this purpose.
6.11-6 IsomorphicCopyByPerm
IsomorphicCopyByPerm( Q, f )  operation
Returns: When Q is a quasigroup and f is a permutation of 1,dots,|Q|,
returns a quasigroup defined on the same set as Q with
multiplication * defined by x*y =f(f^-1(x)f^-1(y)). When Q is a
declared loop, a loop is returned. Consequently, when Q is a
declared loop and f(1) = kne 1, then f is first replaced with f∘
(1,k), to make sure that the resulting Cayley table is normalized.
6.11-7 IsomorphicCopyByNormalSubloop
IsomorphicCopyByNormalSubloop( Q, S )  operation
Returns: When S is a normal subloop of a loop Q, returns an isomorphic copy
of Q in which the elements are ordered according to the right
cosets of S. In particular, the Cayley table of S will appear in
the top left corner of the Cayley table of the resulting loop.
In order to speed up the search for isomorphisms and automorphisms, we first
calculate some loop invariants preserved under isomorphisms, and then we use
these invariants to partition the loop into blocks of elements preserved
under isomorphisms. The following two operations are used in the search.
6.11-8 Discriminator
Discriminator( Q )  operation
Returns: A data structure with isomorphism invariants of a loop Q.
See [Voj06] or the file iso.gi for more details. The format of the
discriminator has been changed from version 3.2.0 up to accommodate
isomorphism searches for quasigroups.
If two loops have different discriminators, they are not isomorphic. If they
have identical discriminators, they may or may not be isomorphic.
6.11-9 AreEqualDiscriminators
AreEqualDiscriminators( D1, D2 )  operation
Returns: true if D1, D2 are equal discriminators for the purposes of
isomorphism searches.
6.12 Isotopisms
At the moment, LOOPS contains only slow methods for testing if two loops are
isotopic. The method works as follows: It is well known that if a loop K is
isotopic to a loop L then there exist a principal loop isotope P of K such
that P is isomorphic to L. The algorithm first finds all principal isotopes
of K, then filters them up to isomorphism, and then checks if any of them is
isomorphic to L. This is rather slow already for small orders.
6.12-1 IsotopismLoops
IsotopismLoops( K, L )  operation
Returns: fail if K, L are not isotopic loops, else it returns an isotopism
as a triple of bijections on 1,dots,|K|.
6.12-2 LoopsUpToIsotopism
LoopsUpToIsotopism( ls )  operation
Returns: Given a list ls of loops, returns a sublist of ls consisting of
representatives of isotopism classes of loops from ls.

673
doc/chap6_mj.html Normal file
View file

@ -0,0 +1,673 @@
<?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="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (Loops) - Chapter 6: Methods Based on Permutation Groups</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="chap6" 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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap5_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chap7_mj.html">[Next Chapter]</a>&nbsp; </div>
<p id="mathjaxlink" class="pcenter"><a href="chap6.html">[MathJax off]</a></p>
<p><a id="X794A04C5854D352B" name="X794A04C5854D352B"></a></p>
<div class="ChapSects"><a href="chap6_mj.html#X794A04C5854D352B">6 <span class="Heading">Methods Based on Permutation Groups</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X8731D818827C08F3">6.1 <span class="Heading">Parent of a Quasigroup</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7BC856CC7F116BB0">6.1-1 Parent</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X79975EC6783B4293">6.1-2 Position</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X832295DE866E44EE">6.1-3 PosInParent</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X83EDF04F7952143F">6.2 <span class="Heading">Subquasigroups and Subloops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7DD511FF864FCDFF">6.2-1 Subquasigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X84E6744E804AE830">6.2-2 Subloop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X87AC8B7E80CE9260">6.2-3 <span class="Heading">IsSubquasigroup and IsSubloop</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X859B6C8183537E75">6.2-4 AllSubquasigroups</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X81EF252585592001">6.2-5 AllSubloops</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X835F48248571364F">6.2-6 RightCosets</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X85C65D06822E716F">6.2-7 RightTransversal</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X78AA3D177CCA49FF">6.3 <span class="Heading">Translations and Sections</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7B45B48C7C4D6061">6.3-1 <span class="Heading">LeftTranslation and RightTranslation</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7EB9197C80FB4664">6.3-2 <span class="Heading">LeftSection and RightSection</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X78ED50F578A88046">6.4 <span class="Heading">Multiplication Groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X87302BE983A5FC61">6.4-1 <span class="Heading">LeftMutliplicationGroup, RightMultiplicationGroup and MultiplicationGroup</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X847256B779E1E7E5">6.4-2 <span class="Heading">RelativeLeftMultiplicationGroup, RelativeRightMultiplicationGroup and RelativeMultiplicationGroup</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X8740D61178ACD217">6.5 <span class="Heading">Inner Mapping Groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7EE1E78C856C6F7C">6.5-1 <span class="Heading">LeftInnerMapping, RightInnerMapping, MiddleInnerMapping</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X79CDA09A7D48BF2B">6.5-2 <span class="Heading">LeftInnerMappingGroup, RightInnerMappingGroup, MiddleInnerMappingGroup</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X82513A3B7C3A6420">6.5-3 InnerMappingGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X7B45C2AF7C2E28AB">6.6 <span class="Heading">Nuclei, Commutant, Center, and Associator Subloop</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7DF536FC85BBD1D2">6.6-1 <span class="Heading">LeftNucles, MiddleNucleus, and RightNucleus</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X84D389677A91C290">6.6-2 <span class="Heading">Nuc, NucleusOfQuasigroup and NucleusOfLoop</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7C8428DE791F3CE1">6.6-3 Commutant</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7C1FBE7A84DD4873">6.6-4 Center</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7F7FDE82780EDD7E">6.6-5 AssociatorSubloop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X85B650D284FE39F3">6.7 <span class="Heading">Normal Subloops and Simple Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X838186F9836F678C">6.7-1 IsNormal</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7BDEA0A98720D1BB">6.7-2 NormalClosure</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7D8E63A7824037CC">6.7-3 IsSimple</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X87F66DB383C29A4A">6.8 <span class="Heading">Factor Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X83E1953980E2DE2F">6.8-1 FactorLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X870FCB497AECC730">6.8-2 NaturalHomomorphismByNormalSubloop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X821F40748401D698">6.9 <span class="Heading">Nilpotency and Central Series</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X78A4B93781C96AAE">6.9-1 IsNilpotent</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7D5FC62581A99482">6.9-2 NilpotencyClassOfLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7E7C2D117B55F6A0">6.9-3 IsStronglyNilpotent</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7ED37AA07BEE79E0">6.9-4 UpperCentralSeries</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X817BDBC2812992ED">6.9-5 LowerCentralSeries</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X83A38A6C7EDBCA63">6.10 <span class="Heading">Solvability, Derived Series and Frattini Subloop</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X79B10B337A3B1C6E">6.10-1 IsSolvable</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7A82DC4680DAD67C">6.10-2 DerivedSubloop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7A9AA1577CEC891F">6.10-3 DerivedLength</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X85BD2C517FA7A47E">6.10-4 <span class="Heading">FrattiniSubloop and FrattinifactorSize</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X855286367A2D5A54">6.10-5 FrattinifactorSize</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X81F3496578EAA74E">6.11 <span class="Heading">Isomorphisms and Automorphisms</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X801067F67E5292F7">6.11-1 IsomorphismQuasigroups</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7D7B10D6836FCA9F">6.11-2 IsomorphismLoops</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X82373C5479574F22">6.11-3 QuasigroupsUpToIsomorphism</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X8308F38283C61B20">6.11-4 LoopsUpToIsomorphism</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X87677B0787B4461A">6.11-5 AutomorphismGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X85B3E22679FD8D81">6.11-6 IsomorphicCopyByPerm</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X8121DE3A78795040">6.11-7 IsomorphicCopyByNormalSubloop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X7D09D8957E4A0973">6.11-8 Discriminator</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X812F0DEE7C896E18">6.11-9 AreEqualDiscriminators</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap6_mj.html#X7E996BDD81E594F9">6.12 <span class="Heading">Isotopisms</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X84C5ADE77F910F63">6.12-1 IsotopismLoops</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap6_mj.html#X841E540B7A7EF29F">6.12-2 LoopsUpToIsotopism</a></span>
</div></div>
</div>
<h3>6 <span class="Heading">Methods Based on Permutation Groups</span></h3>
<p>Most calculations in the <strong class="pkg">LOOPS</strong> package are delegated to groups, taking advantage of the various permutations and permutation groups associated with quasigroups. This chapter explains in detail how the permutations associated with a quasigroup are calculated, and it also describes some of the core methods of <strong class="pkg">LOOPS</strong> based on permutations. Additional core methods can be found in Chapter <a href="chap7_mj.html#X7910E575825C713E"><span class="RefLink">7</span></a>.</p>
<p><a id="X8731D818827C08F3" name="X8731D818827C08F3"></a></p>
<h4>6.1 <span class="Heading">Parent of a Quasigroup</span></h4>
<p>Let <span class="SimpleMath">\(Q\)</span> be a quasigroup and <span class="SimpleMath">\(S\)</span> a subquasigroup of <span class="SimpleMath">\(Q\)</span>. Since the multiplication in <span class="SimpleMath">\(S\)</span> coincides with the multiplication in <span class="SimpleMath">\(Q\)</span>, it is reasonable not to store the multiplication table of <span class="SimpleMath">\(S\)</span>. However, the quasigroup <span class="SimpleMath">\(S\)</span> then must know that it is a subquasigroup of <span class="SimpleMath">\(Q\)</span>.</p>
<p><a id="X7BC856CC7F116BB0" name="X7BC856CC7F116BB0"></a></p>
<h5>6.1-1 Parent</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; Parent</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The parent quasigroup of the quasigroup <var class="Arg">Q</var>.</p>
<p>When <var class="Arg">Q</var> is not created as a subquasigroup of another quasigroup, the attribute <code class="code">Parent(<var class="Arg">Q</var>)</code> is set to <var class="Arg">Q</var>. When <var class="Arg">Q</var> is created as a subquasigroup of a quasigroup <var class="Arg">H</var>, we set <code class="code">Parent(<var class="Arg">Q</var>)</code> equal to <code class="code">Parent(<var class="Arg">H</var>)</code>. Thus, in effect, <code class="code">Parent(<var class="Arg">Q</var>)</code> is the largest quasigroup from which <var class="Arg">Q</var> has been created.</p>
<p><a id="X79975EC6783B4293" name="X79975EC6783B4293"></a></p>
<h5>6.1-2 Position</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; Position</code>( <var class="Arg">Q</var>, <var class="Arg">x</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The position of <var class="Arg">x</var> among the elements of <var class="Arg">Q</var>.<br /></p>
<p>Let <var class="Arg">Q</var> be a quasigroup with parent <var class="Arg">P</var>, where <var class="Arg">P</var> is some <span class="SimpleMath">\(n\)</span>-element quasigroup. Let <var class="Arg">x</var> be an element of <var class="Arg">Q</var>. Then <code class="code"><var class="Arg">x</var>![1]</code> is the position of <var class="Arg">x</var> among the elements of <var class="Arg">P</var>, i.e., <code class="code"><var class="Arg">x</var>![1] = Position(Elements(<var class="Arg">P</var>),<var class="Arg">x</var>)</code>.</p>
<p>While referring to elements of <var class="Arg">Q</var> by their positions, the user should understand whether the positions are meant among the elements of <var class="Arg">Q</var>, or among the elements of the parent <var class="Arg">P</var> of <var class="Arg">Q</var>. Since it requires no calculation to obtain <code class="code"><var class="Arg">x</var>![1]</code>, we always use the position of an element in its parent quasigroup in <strong class="pkg">LOOPS</strong>. In this way, many attributes of a quasigroup, including its Cayley table, are permanently tied to its parent.</p>
<p>It is now clear why we have not insisted that Cayley tables of quasigroups must have entries covering the entire interval <span class="SimpleMath">\(1\)</span>, <span class="SimpleMath">\(\dots\)</span>, <span class="SimpleMath">\(n\)</span> for some <span class="SimpleMath">\(n\)</span>.</p>
<p><a id="X832295DE866E44EE" name="X832295DE866E44EE"></a></p>
<h5>6.1-3 PosInParent</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; PosInParent</code>( <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: When <var class="Arg">S</var> is a list of quasigroup elements (not necessarily from the same quasigroup), returns the corresponding list of positions of elements of <var class="Arg">S</var> in the corresponding parent, i.e., <code class="code">PosInParent(<var class="Arg">S</var>)[i] = <var class="Arg">S</var>[i]![1] = Position(Parent(<var class="Arg">S</var>[i]),<var class="Arg">S</var>[i])</code>.<br /></p>
<p>Quasigroups with the same parent can be compared as follows. Assume that <span class="SimpleMath">\(A\)</span>, <span class="SimpleMath">\(B\)</span> are two quasigroups with common parent <span class="SimpleMath">\(Q\)</span>. Let <span class="SimpleMath">\(G_A\)</span>, <span class="SimpleMath">\(G_B\)</span> be the canonical generating sets of <span class="SimpleMath">\(A\)</span> and <span class="SimpleMath">\(B\)</span>, respectively, obtained by the method <code class="code">GeneratorsSmallest</code> (see Section <a href="chap5_mj.html#X7BD5B55C802805B4"><span class="RefLink">5.5</span></a>). Then we define <span class="SimpleMath">\(A&lt;B\)</span> if and only if <span class="SimpleMath">\(G_A&lt;G_B\)</span> lexicographically.</p>
<p><a id="X83EDF04F7952143F" name="X83EDF04F7952143F"></a></p>
<h4>6.2 <span class="Heading">Subquasigroups and Subloops</span></h4>
<p><a id="X7DD511FF864FCDFF" name="X7DD511FF864FCDFF"></a></p>
<h5>6.2-1 Subquasigroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; Subquasigroup</code>( <var class="Arg">Q</var>, <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: When <var class="Arg">S</var> is a subset of elements or indices of a quasigroup (resp. loop) <var class="Arg">Q</var>, returns the smallest subquasigroup (resp. subloop) of <var class="Arg">Q</var> containing <var class="Arg">S</var>.</p>
<p>We allow <var class="Arg">S</var> to be a list of elements of <var class="Arg">Q</var>, or a list of integers representing the positions of the respective elements in the parent quasigroup (resp. loop) of <var class="Arg">Q</var>.</p>
<p>If <var class="Arg">S</var> is empty, <code class="code">Subquasigroup(<var class="Arg">Q</var>,<var class="Arg">S</var>)</code> returns the empty set if <var class="Arg">Q</var> is a quasigroup, and it returns the one-element subloop of <var class="Arg">Q</var> if <var class="Arg">Q</var> is a loop.</p>
<p><strong class="button">Remark:</strong> The empty set is sometimes considered to be a subquasigroup of <var class="Arg">Q</var> (although not in <strong class="pkg">LOOPS</strong>). The above convention is useful for handling certain situations, for instance when the user calls <code class="code">Center(<var class="Arg">Q</var>)</code> for a quasigroup <var class="Arg">Q</var> with empty center.</p>
<p><a id="X84E6744E804AE830" name="X84E6744E804AE830"></a></p>
<h5>6.2-2 Subloop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; Subloop</code>( <var class="Arg">Q</var>, <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>This is an analog of <code class="code">Subquasigroup(<var class="Arg">Q</var>,<var class="Arg">S</var>)</code> that can be used only when <var class="Arg">Q</var> is a loop. Since there is no difference in the outcome while calling <code class="code">Subquasigroup(<var class="Arg">Q</var>,<var class="Arg">S</var>)</code> or <code class="code">Subloop(<var class="Arg">Q</var>,<var class="Arg">S</var>)</code> when <var class="Arg">Q</var> is a loop, it is safe to always call <code class="code">Subquasigroup(<var class="Arg">Q</var>,<var class="Arg">S</var>)</code>, whether <var class="Arg">Q</var> is a loop or not.</p>
<p><a id="X87AC8B7E80CE9260" name="X87AC8B7E80CE9260"></a></p>
<h5>6.2-3 <span class="Heading">IsSubquasigroup and IsSubloop</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsSubquasigroup</code>( <var class="Arg">Q</var>, <var class="Arg">S</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">&#8227; IsSubloop</code>( <var class="Arg">Q</var>, <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">S</var> is a subquasigroup (resp. subloop) of a quasigroup (resp. loop) <var class="Arg">Q</var>, <code class="code">false</code> otherwise. In other words, returns <code class="code">true</code> if <var class="Arg">S</var> and <var class="Arg">Q</var> are quasigroups (resp. loops) with the same parent and <var class="Arg">S</var> is a subset of <var class="Arg">Q</var>.</p>
<p><a id="X859B6C8183537E75" name="X859B6C8183537E75"></a></p>
<h5>6.2-4 AllSubquasigroups</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; AllSubquasigroups</code>( <var class="Arg">Q</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A list of all subquasigroups of a loop <var class="Arg">Q</var>.</p>
<p><a id="X81EF252585592001" name="X81EF252585592001"></a></p>
<h5>6.2-5 AllSubloops</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; AllSubloops</code>( <var class="Arg">Q</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A list of all subloops of a loop <var class="Arg">Q</var>.</p>
<p><a id="X835F48248571364F" name="X835F48248571364F"></a></p>
<h5>6.2-6 RightCosets</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; RightCosets</code>( <var class="Arg">Q</var>, <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: If <var class="Arg">S</var> is a subloop of <var class="Arg">Q</var>, returns a list of all right cosets of <var class="Arg">S</var> in <var class="Arg">Q</var>.</p>
<p>The coset <var class="Arg">S</var> is listed first, and the elements of each coset are ordered in the same way as the elements of <var class="Arg">S</var>, i.e., if <var class="Arg">S</var><span class="SimpleMath">\( = [s_1,\dots,s_m]\)</span>, then <var class="Arg">S</var><span class="SimpleMath">\(x=[s_1x,\dots,s_mx]\)</span>.</p>
<p><a id="X85C65D06822E716F" name="X85C65D06822E716F"></a></p>
<h5>6.2-7 RightTransversal</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; RightTransversal</code>( <var class="Arg">Q</var>, <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A right transversal of a subloop <var class="Arg">S</var> in a loop <var class="Arg">Q</var>. The transversal consists of the list of first elements from the right cosets obtained by <code class="code">RightCosets(<var class="Arg">Q</var>,<var class="Arg">S</var>)</code>.</p>
<p>When <var class="Arg">S</var> is a subloop of <var class="Arg">Q</var>, the right transversal of <var class="Arg">S</var> with respect to <var class="Arg">Q</var> is a subset of <var class="Arg">Q</var> containing one element from each right coset of <var class="Arg">S</var> in <var class="Arg">Q</var>.</p>
<p><a id="X78AA3D177CCA49FF" name="X78AA3D177CCA49FF"></a></p>
<h4>6.3 <span class="Heading">Translations and Sections</span></h4>
<p>When <span class="SimpleMath">\(x\)</span> is an element of a quasigroup <span class="SimpleMath">\(Q\)</span>, the left translation <span class="SimpleMath">\(L_x\)</span> is a permutation of <span class="SimpleMath">\(Q\)</span>. In <strong class="pkg">LOOPS</strong>, all permutations associated with quasigroups and their elements are permutations in the sense of <strong class="pkg">GAP</strong>, i.e., they are bijections of some interval <span class="SimpleMath">\(1\)</span>, <span class="SimpleMath">\(\dots\)</span>, <span class="SimpleMath">\(n\)</span>. Moreover, following our convention, the numerical entries of the permutations point to the positions among elements of the parent of <span class="SimpleMath">\(Q\)</span>, not among elements of <span class="SimpleMath">\(Q\)</span>.</p>
<p><a id="X7B45B48C7C4D6061" name="X7B45B48C7C4D6061"></a></p>
<h5>6.3-1 <span class="Heading">LeftTranslation and RightTranslation</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LeftTranslation</code>( <var class="Arg">Q</var>, <var class="Arg">x</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">&#8227; RightTranslation</code>( <var class="Arg">Q</var>, <var class="Arg">x</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: If <var class="Arg">x</var> is an element of a quasigroup <var class="Arg">Q</var>, returns the left translation (resp. right translation) by <var class="Arg">x</var> in <var class="Arg">Q</var>.</p>
<p><a id="X7EB9197C80FB4664" name="X7EB9197C80FB4664"></a></p>
<h5>6.3-2 <span class="Heading">LeftSection and RightSection</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LeftSection</code>( <var class="Arg">Q</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">&#8227; RightSection</code>( <var class="Arg">Q</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The left section (resp. right section) of a quasigroup <var class="Arg">Q</var>.<br /></p>
<p>Here is an example illustrating the main features of the subquasigroup construction and the relationship between a quasigroup and its parent.</p>
<p>Note how the Cayley table of a subquasigroup is created only upon explicit demand. Also note that changing the names of elements of a subquasigroup (subloop) automatically changes the names of the elements of the parent subquasigroup (subloop). This is because the elements are shared.</p>
<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">M := MoufangLoop( 12, 1 );; S := Subloop( M, [ M.5 ] ); </span>
&lt;loop of order 3&gt;
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">[ Parent( S ) = M, Elements( S ), PosInParent( S ) ]; </span>
[ true, [ l1, l3, l5], [ 1, 3, 5 ] ]
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">HasCayleyTable( S ); </span>
false
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">SetLoopElmName( S, "s" );; Elements( S ); Elements( M ); </span>
[ s1, s3, s5 ]
[ s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12 ]
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">CayleyTable( S ); </span>
[ [ 1, 3, 5 ], [ 3, 5, 1 ], [ 5, 1, 3 ] ]
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">LeftSection( S ); </span>
[ (), (1,3,5), (1,5,3) ]
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">[ HasCayleyTable( S ), Parent( S ) = M ]; </span>
[ true, true ]
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">L := LoopByCayleyTable( CayleyTable( S ) );; Elements( L ); </span>
[ l1, l2, l3 ]
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">[ Parent( L ) = L, IsSubloop( M, S ), IsSubloop( M, L ) ]; </span>
[ true, true, false ]
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">LeftSection( L ); </span>
[ (), (1,2,3), (1,3,2) ]
</pre></div>
<p><a id="X78ED50F578A88046" name="X78ED50F578A88046"></a></p>
<h4>6.4 <span class="Heading">Multiplication Groups</span></h4>
<p><a id="X87302BE983A5FC61" name="X87302BE983A5FC61"></a></p>
<h5>6.4-1 <span class="Heading">LeftMutliplicationGroup, RightMultiplicationGroup and MultiplicationGroup</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LeftMultiplicationGroup</code>( <var class="Arg">Q</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">&#8227; RightMultiplicationGroup</code>( <var class="Arg">Q</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">&#8227; MultiplicationGroup</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The left multiplication group, right multiplication group, resp. multiplication group of a quasigroup <var class="Arg">Q</var>.</p>
<p><a id="X847256B779E1E7E5" name="X847256B779E1E7E5"></a></p>
<h5>6.4-2 <span class="Heading">RelativeLeftMultiplicationGroup, RelativeRightMultiplicationGroup and RelativeMultiplicationGroup</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; RelativeLeftMultiplicationGroup</code>( <var class="Arg">Q</var>, <var class="Arg">S</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">&#8227; RelativeRightMultiplicationGroup</code>( <var class="Arg">Q</var>, <var class="Arg">S</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">&#8227; RelativeMultiplicationGroup</code>( <var class="Arg">Q</var>, <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The relative left multiplication group, the relative right multiplication group, resp. the relative multiplication group of a quasigroup <var class="Arg">Q</var> with respect to a subquasigroup <var class="Arg">S</var> of <var class="Arg">Q</var>.</p>
<p>Let <span class="SimpleMath">\(S\)</span> be a subquasigroup of a quasigroup <span class="SimpleMath">\(Q\)</span>. Then the <em>relative left multiplication group</em> of <span class="SimpleMath">\(Q\)</span> with respect to <span class="SimpleMath">\(S\)</span> is the group <span class="SimpleMath">\(\langle L(x)|x\in S\rangle\)</span>, where <span class="SimpleMath">\(L(x)\)</span> is the left translation by <span class="SimpleMath">\(x\)</span> in <span class="SimpleMath">\(Q\)</span> restricted to <span class="SimpleMath">\(S\)</span>. The <em>relative right multiplication group</em> and the <em>relative multiplication group</em> are defined analogously.</p>
<p><a id="X8740D61178ACD217" name="X8740D61178ACD217"></a></p>
<h4>6.5 <span class="Heading">Inner Mapping Groups</span></h4>
<p>By a result of Bruck, the left inner mapping group of a loop is generated by all <em>left inner mappings</em> <span class="SimpleMath">\(L(x,y) = L_{yx}^{-1}L_yL_x\)</span>, and the right inner mapping group is generated by all <em>right inner mappings</em> <span class="SimpleMath">\(R(x,y) = R_{xy}^{-1}R_yR_x\)</span>.</p>
<p>In analogy with group theory, we define the <em>conjugations</em> or the <em>middle inner mappings</em> as <span class="SimpleMath">\(T(x) = L_x^{-1}R_x\)</span>. The <em>middle inner mapping grroup</em> is then the group generated by all conjugations.</p>
<p><a id="X7EE1E78C856C6F7C" name="X7EE1E78C856C6F7C"></a></p>
<h5>6.5-1 <span class="Heading">LeftInnerMapping, RightInnerMapping, MiddleInnerMapping</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LeftInnerMapping</code>( <var class="Arg">Q</var>, <var class="Arg">x</var>, <var class="Arg">y</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">&#8227; RightInnerMapping</code>( <var class="Arg">Q</var>, <var class="Arg">x</var>, <var class="Arg">y</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">&#8227; MiddleInnerMapping</code>( <var class="Arg">Q</var>, <var class="Arg">x</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The left inner mapping <span class="SimpleMath">\(L(\)</span><var class="Arg">x</var>,<var class="Arg">y</var><span class="SimpleMath">\()\)</span>, the right inner mapping <span class="SimpleMath">\(R(\)</span><var class="Arg">x</var>,<var class="Arg">y</var><span class="SimpleMath">\()\)</span>, resp. the middle inner mapping <span class="SimpleMath">\(T(\)</span><var class="Arg">x</var><span class="SimpleMath">\()\)</span> of a loop <var class="Arg">Q</var>.</p>
<p><a id="X79CDA09A7D48BF2B" name="X79CDA09A7D48BF2B"></a></p>
<h5>6.5-2 <span class="Heading">LeftInnerMappingGroup, RightInnerMappingGroup, MiddleInnerMappingGroup</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LeftInnerMappingGroup</code>( <var class="Arg">Q</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">&#8227; RightInnerMappingGroup</code>( <var class="Arg">Q</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">&#8227; MiddleInnerMappingGroup</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The left inner mapping group, right inner mapping group, resp. middle inner mapping group of a loop <var class="Arg">Q</var>.</p>
<p><a id="X82513A3B7C3A6420" name="X82513A3B7C3A6420"></a></p>
<h5>6.5-3 InnerMappingGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; InnerMappingGroup</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The inner mapping group of a loop <var class="Arg">Q</var>.<br /></p>
<p>Here is an example for multiplication groups and inner mapping groups:</p>
<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">M := MoufangLoop(12,1); </span>
&lt;Moufang loop 12/1&gt;
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">LeftSection(M)[2]; </span>
(1,2)(3,4)(5,6)(7,8)(9,12)(10,11)
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">Mlt := MultiplicationGroup(M); Inn := InnerMappingGroup(M); </span>
&lt;permutation group of size 2592 with 23 generators&gt;
Group([ (4,6)(7,11), (7,11)(8,10), (2,6,4)(7,9,11), (3,5)(9,11), (8,12,10) ])
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">Size(Inn); </span>
216
</pre></div>
<p><a id="X7B45C2AF7C2E28AB" name="X7B45C2AF7C2E28AB"></a></p>
<h4>6.6 <span class="Heading">Nuclei, Commutant, Center, and Associator Subloop</span></h4>
<p>See Section <a href="chap2_mj.html#X83EDF04F7952143F"><span class="RefLink">2.3</span></a> for the relevant definitions.</p>
<p><a id="X7DF536FC85BBD1D2" name="X7DF536FC85BBD1D2"></a></p>
<h5>6.6-1 <span class="Heading">LeftNucles, MiddleNucleus, and RightNucleus</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LeftNucleus</code>( <var class="Arg">Q</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">&#8227; MiddleNucleus</code>( <var class="Arg">Q</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">&#8227; RightNucleus</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The left nucleus, middle nucleus, resp. right nucleus of a quasigroup <var class="Arg">Q</var>.</p>
<p><a id="X84D389677A91C290" name="X84D389677A91C290"></a></p>
<h5>6.6-2 <span class="Heading">Nuc, NucleusOfQuasigroup and NucleusOfLoop</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; Nuc</code>( <var class="Arg">Q</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">&#8227; NucleusOfQuasigroup</code>( <var class="Arg">Q</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">&#8227; NucleusOfLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: These synonymous attributes return the nucleus of a quasigroup <var class="Arg">Q</var>.</p>
<p>Since all nuclei are subquasigroups of <var class="Arg">Q</var>, they are returned as subquasigroups (resp. subloops). When <var class="Arg">Q</var> is a loop then all nuclei are in fact groups, and they are returned as associative loops.</p>
<p><strong class="button">Remark:</strong> The name <code class="code">Nucleus</code> is a global function of <strong class="pkg">GAP</strong> with two variables. We have therefore used <code class="code">Nuc</code> rather than <code class="code">Nucleus</code> for the nucleus. This abbreviation is sometimes used in the literature, too.</p>
<p><a id="X7C8428DE791F3CE1" name="X7C8428DE791F3CE1"></a></p>
<h5>6.6-3 Commutant</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; Commutant</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The commutant of a quasigroup <var class="Arg">Q</var>.</p>
<p><a id="X7C1FBE7A84DD4873" name="X7C1FBE7A84DD4873"></a></p>
<h5>6.6-4 Center</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; Center</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The center of a quasigroup <var class="Arg">Q</var>.</p>
<p>If <var class="Arg">Q</var> is a loop, the center of <var class="Arg">Q</var> is a subgroup of <var class="Arg">Q</var> and it is returned as an associative loop.</p>
<p><a id="X7F7FDE82780EDD7E" name="X7F7FDE82780EDD7E"></a></p>
<h5>6.6-5 AssociatorSubloop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; AssociatorSubloop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The associator subloop of a loop <var class="Arg">Q</var>.</p>
<p>We calculate the associator subloop of <var class="Arg">Q</var> as the smallest normal subloop of <var class="Arg">Q</var> containing all elements <span class="SimpleMath">\(x\backslash\alpha(x)\)</span>, where <span class="SimpleMath">\(x\)</span> is an element of <var class="Arg">Q</var> and <span class="SimpleMath">\(\alpha\)</span> is a left inner mapping of <var class="Arg">Q</var>.</p>
<p><a id="X85B650D284FE39F3" name="X85B650D284FE39F3"></a></p>
<h4>6.7 <span class="Heading">Normal Subloops and Simple Loops</span></h4>
<p><a id="X838186F9836F678C" name="X838186F9836F678C"></a></p>
<h5>6.7-1 IsNormal</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsNormal</code>( <var class="Arg">Q</var>, <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">S</var> is a normal subloop of a loop <var class="Arg">Q</var>.</p>
<p>A subloop <span class="SimpleMath">\(S\)</span> of a loop <span class="SimpleMath">\(Q\)</span> is <em>normal</em> if it is invariant under all inner mappings of <span class="SimpleMath">\(Q\)</span>.</p>
<p><a id="X7BDEA0A98720D1BB" name="X7BDEA0A98720D1BB"></a></p>
<h5>6.7-2 NormalClosure</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; NormalClosure</code>( <var class="Arg">Q</var>, <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: The normal closure of a subset <var class="Arg">S</var> of a loop <var class="Arg">Q</var>.</p>
<p>For a subset <span class="SimpleMath">\(S\)</span> of a loop <span class="SimpleMath">\(Q\)</span>, the <em>normal closure</em> of <span class="SimpleMath">\(S\)</span> in <span class="SimpleMath">\(Q\)</span> is the smallest normal subloop of <span class="SimpleMath">\(Q\)</span> containing <span class="SimpleMath">\(S\)</span>.</p>
<p><a id="X7D8E63A7824037CC" name="X7D8E63A7824037CC"></a></p>
<h5>6.7-3 IsSimple</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsSimple</code>( <var class="Arg">Q</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a simple loop.</p>
<p>A loop <span class="SimpleMath">\(Q\)</span> is <em>simple</em> if <span class="SimpleMath">\(\{1\}\)</span> and <span class="SimpleMath">\(Q\)</span> are the only normal subloops of <span class="SimpleMath">\(Q\)</span>.</p>
<p><a id="X87F66DB383C29A4A" name="X87F66DB383C29A4A"></a></p>
<h4>6.8 <span class="Heading">Factor Loops</span></h4>
<p><a id="X83E1953980E2DE2F" name="X83E1953980E2DE2F"></a></p>
<h5>6.8-1 FactorLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; FactorLoop</code>( <var class="Arg">Q</var>, <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: When <var class="Arg">S</var> is a normal subloop of a loop <var class="Arg">Q</var>, returns the factor loop <var class="Arg">Q</var><span class="SimpleMath">\(/\)</span><var class="Arg">S</var>.</p>
<p><a id="X870FCB497AECC730" name="X870FCB497AECC730"></a></p>
<h5>6.8-2 NaturalHomomorphismByNormalSubloop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; NaturalHomomorphismByNormalSubloop</code>( <var class="Arg">Q</var>, <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: When <var class="Arg">S</var> is a normal subloop of a loop <var class="Arg">Q</var>, returns the natural projection from <var class="Arg">Q</var> onto <var class="Arg">Q</var><span class="SimpleMath">\(/\)</span><var class="Arg">S</var>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">M := MoufangLoop( 12, 1 );; S := Subloop( M, [ M.3 ] ); </span>
&lt;loop of order 3&gt;
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">IsNormal( M, S ); </span>
true
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">F := FactorLoop( M, S ); </span>
&lt;loop of order 4&gt;
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">NaturalHomomorphismByNormalSubloop( M, S ); </span>
MappingByFunction( &lt;loop of order 12&gt;, &lt;loop of order 4&gt;,
function( x ) ... end )
</pre></div>
<p><a id="X821F40748401D698" name="X821F40748401D698"></a></p>
<h4>6.9 <span class="Heading">Nilpotency and Central Series</span></h4>
<p>See Section <a href="chap2_mj.html#X869CBCE381E2C422"><span class="RefLink">2.4</span></a> for the relevant definitions.</p>
<p><a id="X78A4B93781C96AAE" name="X78A4B93781C96AAE"></a></p>
<h5>6.9-1 IsNilpotent</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsNilpotent</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a nilpotent loop.</p>
<p><a id="X7D5FC62581A99482" name="X7D5FC62581A99482"></a></p>
<h5>6.9-2 NilpotencyClassOfLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; NilpotencyClassOfLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The nilpotency class of a loop <var class="Arg">Q</var> if <var class="Arg">Q</var> is nilpotent, <code class="code">fail</code> otherwise.</p>
<p><a id="X7E7C2D117B55F6A0" name="X7E7C2D117B55F6A0"></a></p>
<h5>6.9-3 IsStronglyNilpotent</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsStronglyNilpotent</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a strongly nilpotent loop.</p>
<p>A loop <span class="SimpleMath">\(Q\)</span> is said to be <em>strongly nilpotent</em> if its multiplication group is nilpotent.</p>
<p><a id="X7ED37AA07BEE79E0" name="X7ED37AA07BEE79E0"></a></p>
<h5>6.9-4 UpperCentralSeries</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; UpperCentralSeries</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: When <var class="Arg">Q</var> is a nilpotent loop, returns the upper central series of <var class="Arg">Q</var>, else returns <code class="code">fail</code>.</p>
<p><a id="X817BDBC2812992ED" name="X817BDBC2812992ED"></a></p>
<h5>6.9-5 LowerCentralSeries</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LowerCentralSeries</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: When <var class="Arg">Q</var> is a nilpotent loop, returns the lower central series of <var class="Arg">Q</var>, else returns <code class="code">fail</code>.</p>
<p>The <em>lower central series</em> for loops is defined analogously to groups.</p>
<p><a id="X83A38A6C7EDBCA63" name="X83A38A6C7EDBCA63"></a></p>
<h4>6.10 <span class="Heading">Solvability, Derived Series and Frattini Subloop</span></h4>
<p>See Section <a href="chap2_mj.html#X869CBCE381E2C422"><span class="RefLink">2.4</span></a> for definitions of solvability an derived subloop.</p>
<p><a id="X79B10B337A3B1C6E" name="X79B10B337A3B1C6E"></a></p>
<h5>6.10-1 IsSolvable</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsSolvable</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a solvable loop.</p>
<p><a id="X7A82DC4680DAD67C" name="X7A82DC4680DAD67C"></a></p>
<h5>6.10-2 DerivedSubloop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; DerivedSubloop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The derived subloop of a loop <var class="Arg">Q</var>.</p>
<p><a id="X7A9AA1577CEC891F" name="X7A9AA1577CEC891F"></a></p>
<h5>6.10-3 DerivedLength</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; DerivedLength</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: If <var class="Arg">Q</var> is solvable, returns the derived length of <var class="Arg">Q</var>, else returns <code class="code">fail</code>.</p>
<p><a id="X85BD2C517FA7A47E" name="X85BD2C517FA7A47E"></a></p>
<h5>6.10-4 <span class="Heading">FrattiniSubloop and FrattinifactorSize</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; FrattiniSubloop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The Frattini subloop of <var class="Arg">Q</var>. The method is implemented only for strongly nilpotent loops.</p>
<p><em>Frattini subloop</em> of a loop <span class="SimpleMath">\(Q\)</span> is the intersection of maximal subloops of <span class="SimpleMath">\(Q\)</span>.</p>
<p><a id="X855286367A2D5A54" name="X855286367A2D5A54"></a></p>
<h5>6.10-5 FrattinifactorSize</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; FrattinifactorSize</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p><a id="X81F3496578EAA74E" name="X81F3496578EAA74E"></a></p>
<h4>6.11 <span class="Heading">Isomorphisms and Automorphisms</span></h4>
<p><a id="X801067F67E5292F7" name="X801067F67E5292F7"></a></p>
<h5>6.11-1 IsomorphismQuasigroups</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsomorphismQuasigroups</code>( <var class="Arg">Q</var>, <var class="Arg">L</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: An isomorphism from a quasigroup <var class="Arg">Q</var> to a quasigroup <var class="Arg">L</var> if the quasigroups are isomorphic, <code class="code">fail</code> otherwise.</p>
<p>If an isomorphism exists, it is returned as a permutation <span class="SimpleMath">\(f\)</span> of <span class="SimpleMath">\(1,\dots,|\)</span><var class="Arg">Q</var><span class="SimpleMath">\(|\)</span>, where <span class="SimpleMath">\(i^f=j\)</span> means that the <span class="SimpleMath">\(i\)</span>th element of <var class="Arg">Q</var> is mapped onto the <span class="SimpleMath">\(j\)</span>th element of <var class="Arg">L</var>. Note that this convention is used even if the underlying sets of <var class="Arg">Q</var>, <var class="Arg">L</var> are not indexed by consecutive integers.</p>
<p><a id="X7D7B10D6836FCA9F" name="X7D7B10D6836FCA9F"></a></p>
<h5>6.11-2 IsomorphismLoops</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsomorphismLoops</code>( <var class="Arg">Q</var>, <var class="Arg">L</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: An isomorphism from a loop <var class="Arg">Q</var> to a loop <var class="Arg">L</var> if the loops are isomorphic, <code class="code">fail</code> otherwise, with the same convention as in <code class="code">IsomorphismQuasigroups</code>.</p>
<p><a id="X82373C5479574F22" name="X82373C5479574F22"></a></p>
<h5>6.11-3 QuasigroupsUpToIsomorphism</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; QuasigroupsUpToIsomorphism</code>( <var class="Arg">ls</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: Given a list <var class="Arg">ls</var> of quasigroups, returns a sublist of <var class="Arg">ls</var> consisting of representatives of isomorphism classes of quasigroups from <var class="Arg">ls</var>.</p>
<p><a id="X8308F38283C61B20" name="X8308F38283C61B20"></a></p>
<h5>6.11-4 LoopsUpToIsomorphism</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LoopsUpToIsomorphism</code>( <var class="Arg">ls</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: Given a list <var class="Arg">ls</var> of loops, returns a sublist of <var class="Arg">ls</var> consisting of representatives of isomorphism classes of loops from <var class="Arg">ls</var>.</p>
<p><a id="X87677B0787B4461A" name="X87677B0787B4461A"></a></p>
<h5>6.11-5 AutomorphismGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; AutomorphismGroup</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The automorphism group of a loop or quasigroups <var class="Arg">Q</var>, with the same convention on permutations as in <code class="code">IsomorphismQuasigroups</code>.<br /></p>
<p><strong class="button">Remark:</strong> Since two isomorphisms differ by an automorphism, all isomorphisms from <var class="Arg">Q</var> to <var class="Arg">L</var> can be obtained by a combination of <code class="code">IsomorphismLoops(<var class="Arg">Q</var>,<var class="Arg">L</var>)</code> (or <code class="code">IsomorphismQuasigroups(<var class="Arg">Q</var>,<var class="Arg">L</var>)</code>) and <code class="code">AutomorphismGroup(<var class="Arg">L</var>)</code>. <br /></p>
<p>While dealing with Cayley tables, it is often useful to rename or reorder the elements of the underlying quasigroup without changing the isomorphism type of the quasigroups. <strong class="pkg">LOOPS</strong> contains several functions for this purpose.</p>
<p><a id="X85B3E22679FD8D81" name="X85B3E22679FD8D81"></a></p>
<h5>6.11-6 IsomorphicCopyByPerm</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsomorphicCopyByPerm</code>( <var class="Arg">Q</var>, <var class="Arg">f</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: When <var class="Arg">Q</var> is a quasigroup and <var class="Arg">f</var> is a permutation of <span class="SimpleMath">\(1,\dots,|\)</span><var class="Arg">Q</var><span class="SimpleMath">\(|\)</span>, returns a quasigroup defined on the same set as <var class="Arg">Q</var> with multiplication <span class="SimpleMath">\(*\)</span> defined by <span class="SimpleMath">\(x*y = \)</span><var class="Arg">f</var><span class="SimpleMath">\((\)</span><var class="Arg">f</var><span class="SimpleMath">\({}^{-1}(x)\)</span><var class="Arg">f</var><span class="SimpleMath">\({}^{-1}(y))\)</span>. When <var class="Arg">Q</var> is a declared loop, a loop is returned. Consequently, when <var class="Arg">Q</var> is a declared loop and <var class="Arg">f</var><span class="SimpleMath">\((1) = k\ne 1\)</span>, then <var class="Arg">f</var> is first replaced with <var class="Arg">f</var><span class="SimpleMath">\(\circ (1,k)\)</span>, to make sure that the resulting Cayley table is normalized.</p>
<p><a id="X8121DE3A78795040" name="X8121DE3A78795040"></a></p>
<h5>6.11-7 IsomorphicCopyByNormalSubloop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsomorphicCopyByNormalSubloop</code>( <var class="Arg">Q</var>, <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: When <var class="Arg">S</var> is a normal subloop of a loop <var class="Arg">Q</var>, returns an isomorphic copy of <var class="Arg">Q</var> in which the elements are ordered according to the right cosets of <var class="Arg">S</var>. In particular, the Cayley table of <var class="Arg">S</var> will appear in the top left corner of the Cayley table of the resulting loop.<br /></p>
<p>In order to speed up the search for isomorphisms and automorphisms, we first calculate some loop invariants preserved under isomorphisms, and then we use these invariants to partition the loop into blocks of elements preserved under isomorphisms. The following two operations are used in the search.</p>
<p><a id="X7D09D8957E4A0973" name="X7D09D8957E4A0973"></a></p>
<h5>6.11-8 Discriminator</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; Discriminator</code>( <var class="Arg">Q</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A data structure with isomorphism invariants of a loop <var class="Arg">Q</var>.</p>
<p>See <a href="chapBib_mj.html#biBVo">[Voj06]</a> or the file <code class="file">iso.gi</code> for more details. The format of the discriminator has been changed from version 3.2.0 up to accommodate isomorphism searches for quasigroups.</p>
<p>If two loops have different discriminators, they are not isomorphic. If they have identical discriminators, they may or may not be isomorphic.</p>
<p><a id="X812F0DEE7C896E18" name="X812F0DEE7C896E18"></a></p>
<h5>6.11-9 AreEqualDiscriminators</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; AreEqualDiscriminators</code>( <var class="Arg">D1</var>, <var class="Arg">D2</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">D1</var>, <var class="Arg">D2</var> are equal discriminators for the purposes of isomorphism searches.</p>
<p><a id="X7E996BDD81E594F9" name="X7E996BDD81E594F9"></a></p>
<h4>6.12 <span class="Heading">Isotopisms</span></h4>
<p>At the moment, <strong class="pkg">LOOPS</strong> contains only slow methods for testing if two loops are isotopic. The method works as follows: It is well known that if a loop <span class="SimpleMath">\(K\)</span> is isotopic to a loop <span class="SimpleMath">\(L\)</span> then there exist a principal loop isotope <span class="SimpleMath">\(P\)</span> of <span class="SimpleMath">\(K\)</span> such that <span class="SimpleMath">\(P\)</span> is isomorphic to <span class="SimpleMath">\(L\)</span>. The algorithm first finds all principal isotopes of <span class="SimpleMath">\(K\)</span>, then filters them up to isomorphism, and then checks if any of them is isomorphic to <span class="SimpleMath">\(L\)</span>. This is rather slow already for small orders.</p>
<p><a id="X84C5ADE77F910F63" name="X84C5ADE77F910F63"></a></p>
<h5>6.12-1 IsotopismLoops</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsotopismLoops</code>( <var class="Arg">K</var>, <var class="Arg">L</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: <code class="code">fail</code> if <var class="Arg">K</var>, <var class="Arg">L</var> are not isotopic loops, else it returns an isotopism as a triple of bijections on <span class="SimpleMath">\(1,\dots,|\)</span><var class="Arg">K</var><span class="SimpleMath">\(|\)</span>.</p>
<p><a id="X841E540B7A7EF29F" name="X841E540B7A7EF29F"></a></p>
<h5>6.12-2 LoopsUpToIsotopism</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LoopsUpToIsotopism</code>( <var class="Arg">ls</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: Given a list <var class="Arg">ls</var> of loops, returns a sublist of <var class="Arg">ls</var> consisting of representatives of isotopism classes of loops from <var class="Arg">ls</var>.</p>
<div class="chlinkprevnextbot">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap5_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chap7_mj.html">[Next Chapter]</a>&nbsp; </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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</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>

489
doc/chap7.txt Normal file
View file

@ -0,0 +1,489 @@
7 Testing Properties of Quasigroups and Loops
Although loops are quasigroups, it is often the case in the literature that
a property of the same name can differ for quasigroups and loops. For
instance, a Steiner loop is not necessarily a Steiner quasigroup.
To avoid such ambivalences, we often include the noun Loop or Quasigroup as
part of the name of the property, e.g., IsSteinerQuasigroup versus
IsSteinerLoop.
On the other hand, some properties coincide for quasigroups and loops and we
therefore do not include Loop, Quasigroup as part of the name of the
property, e.g., IsCommutative.
7.1 Associativity, Commutativity and Generalizations
7.1-1 IsAssociative
IsAssociative( Q )  property
Returns: true if Q is an associative quasigroup.
7.1-2 IsCommutative
IsCommutative( Q )  property
Returns: true if Q is a commutative quasigroup.
7.1-3 IsPowerAssociative
IsPowerAssociative( Q )  property
Returns: true if Q is a power associative quasigroup.
A quasigroup Q is said to be power associative if every element of Q
generates an associative quasigroup, that is, a group.
7.1-4 IsDiassociative
IsDiassociative( Q )  property
Returns: true if Q is a diassociative quasigroup.
A quasigroup Q is said to be diassociative if any two elements of Q generate
an associative quasigroup, that is, a group. Note that a diassociative
quasigroup is necessarily a loop, but it need not be so declared in LOOPS.
7.2 Inverse Propeties
For an element x of a loop Q, the left inverse of x is the element x^λ of Q
such that x^λ ⋅ x = 1, while the right inverse of x is the element x^ρ of Q
such that x⋅ x^ρ = 1.
7.2-1 HasLeftInverseProperty, HasRightInverseProperty and HasInverseProperty
HasLeftInverseProperty( Q )  property
HasRightInverseProperty( Q )  property
HasInverseProperty( Q )  property
Returns: true if a loop Q has the left inverse property, right inverse
property, resp. inverse property.
A loop Q has the left inverse property if x^λ(xy)=y for every x, y in Q.
Dually, Q has the right inverse property if (yx)x^ρ=y for every x, y in Q.
If Q has both the left inverse property and the right inverse property, it
has the inverse property.
7.2-2 HasTwosidedInverses
HasTwosidedInverses( Q )  property
Returns: true if a loop Q has two-sided inverses.
A loop Q is said to have two-sided inverses if x^λ=x^ρ for every x in Q.
7.2-3 HasWeakInverseProperty
HasWeakInverseProperty( Q )  property
Returns: true if a loop Q has the weak inverse property.
A loop Q has the weak inverse property if (xy)^λ x = y^λ (equivalently,
x(yx)^ρ = y^ρ) holds for every x, y in Q.
7.2-4 HasAutomorphicInverseProperty
HasAutomorphicInverseProperty( Q )  property
Returns: true if a loop Q has the automorphic inverse property.
According to [Art59], a loop Q has the automorphic inverse property if
(xy)^λ = x^λ y^λ, or, equivalently, (xy)^ρ = x^ρ y^ρ holds for every x, y in
Q.
7.2-5 HasAntiautomorphicInverseProperty
HasAntiautomorphicInverseProperty( Q )  property
Returns: true if a loop Q has the antiautomorphic inverse property.
A loop Q has the antiautomorphic inverse property if (xy)^λ=y^λ x^λ, or,
equivalently, (xy)^ρ = y^ρ x^ρ holds for every x, y in Q.
See Appendix B for implications implemented in LOOPS among various inverse
properties.
7.3 Some Properties of Quasigroups
7.3-1 IsSemisymmetric
IsSemisymmetric( Q )  property
Returns: true if Q is a semisymmetric quasigroup.
A quasigroup Q is semisymmetric if (xy)x=y, or, equivalently x(yx)=y holds
for every x, y in Q.
7.3-2 IsTotallySymmetric
IsTotallySymmetric( Q )  property
Returns: true if Q is a totally symmetric quasigroup.
A commutative semisymmetric quasigroup is called totally symmetric. Totally
symmetric quasigroups are precisely the quasigroups satisfying xy=xbackslash
y = x/y.
7.3-3 IsIdempotent
IsIdempotent( Q )  property
Returns: true if Q is an idempotent quasigroup.
A quasigroup is idempotent if it satisfies x^2=x.
7.3-4 IsSteinerQuasigroup
IsSteinerQuasigroup( Q )  property
Returns: true if Q is a Steiner quasigroup.
A totally symmetric idempotent quasigroup is called a Steiner quasigroup.
7.3-5 IsUnipotent
A quasigroup Q is unipotent if it satisfies x^2=y^2 for every x, y in Q.
IsUnipotent( Q )  property
Returns: true if Q is a unipotent quasigroup.
7.3-6 IsLeftDistributive, IsRightDistributive, IsDistributive
IsLeftDistributive( Q )  property
IsRightDistributive( Q )  property
IsDistributive( Q )  property
Returns: true if Q is a left distributive quasigroup, resp. a right
distributive quasigroup, resp. a distributive quasigroup.
A quasigroup is left distributive if it satisfies x(yz) = (xy)(xz), right
distributive if it satisfies (xy)z = (xz)(yz), and distributive if it is
both left distributive and right distributive.
Remark: In order to be compatible with GAPs terminology, we also support the
synonyms IsLDistributive and IsRDistributive of IsLeftDistributive and
IsRightDistributive, respectively.
7.3-7 IsEntropic and IsMedial
IsEntropic( Q )  property
IsMedial( Q )  property
Returns: true if Q is an entropic (aka medial) quasigroup.
A quasigroup is entropic or medial if it satisfies the identity (xy)(uv) =
(xu)(yv).
7.4 Loops of Bol Moufang Type
Following [Fen69] and [PV05], a variety of loops is said to be of
Bol-Moufang type if it is defined by a single identity of Bol-Moufang type,
i.e., by an identity that contains the same 3 variables on both sides,
exactly one of the variables occurs twice on both sides, and the variables
occur in the same order on both sides.
It is proved in [PV05] that there are 13 varieties of nonassociative loops
of Bol-Moufang type. These are:
 left alternative loops defined by x(xy) = (xx)y,
 right alternative loops defined by x(yy) = (xy)y,
 left nuclear square loops defined by (xx)(yz) = ((xx)y)z,
 middle nuclear square loopsdefined by x((yy)z) = (x(yy))z,
 right nuclear square loops defined by x(y(zz)) = (xy)(zz),
 flexible loops defined by x(yx) = (xy)x,
 left Bol loops defined by x(y(xz)) = (x(yx))z, always left
alternative,
 right Bol loops defined by x((yz)y) = ((xy)z)y, always right
alternative,
 LC loops defined by (xx)(yz) = (x(xy))z, always left alternative, left
nuclear square and middle nuclear square,
 RC loops defined by x((yz)z) = (xy)(zz), always right alternative,
right nuclear square and middle nuclear square,
 Moufang loops defined by (xy)(zx) = (x(yz))x, always flexible, left
Bol and right Bol,
 C loops defined by x(y(yz)) = ((xy)y)z, always LC and RC,
 extra loops defined by x(y(zx)) = ((xy)z)x, always Moufang and C.
Note that although some of the defining identities are not of Bol-Moufang
type, they are equivalent to a Bol-Moufang identity. Moreover, many
varieties of loops of Bol-Moufang type can be defined by one of several
equivalent identities of Bol-Moufang type.
There are also several varieties related to loops of Bol-Moufang type. A
loop is said to be alternative if it is both left alternative and right
alternative. A loop is nuclear square if it is left nuclear square, middle
nuclear square and right nuclear square.
7.4-1 IsExtraLoop
IsExtraLoop( Q )  property
Returns: true if Q is an extra loop.
7.4-2 IsMoufangLoop
IsMoufangLoop( Q )  property
Returns: true if Q is a Moufang loop.
7.4-3 IsCLoop
IsCLoop( Q )  property
Returns: true if Q is a C loop.
7.4-4 IsLeftBolLoop
IsLeftBolLoop( Q )  property
Returns: true if Q is a left Bol loop.
7.4-5 IsRightBolLoop
IsRightBolLoop( Q )  property
Returns: true if Q is a right Bol loop.
7.4-6 IsLCLoop
IsLCLoop( Q )  property
Returns: true if Q is an LC loop.
7.4-7 IsRCLoop
IsRCLoop( Q )  property
Returns: true if Q is an RC loop.
7.4-8 IsLeftNuclearSquareLoop
IsLeftNuclearSquareLoop( Q )  property
Returns: true if Q is a left nuclear square loop.
7.4-9 IsMiddleNuclearSquareLoop
IsMiddleNuclearSquareLoop( Q )  property
Returns: true if Q is a middle nuclear square loop.
7.4-10 IsRightNuclearSquareLoop
IsRightNuclearSquareLoop( Q )  property
Returns: true if Q is a right nuclear square loop.
7.4-11 IsNuclearSquareLoop
IsNuclearSquareLoop( Q )  property
Returns: true if Q is a nuclear square loop.
7.4-12 IsFlexible
IsFlexible( Q )  property
Returns: true if Q is a flexible quasigroup.
7.4-13 IsLeftAlternative
IsLeftAlternative( Q )  property
Returns: true if Q is a left alternative quasigroup.
7.4-14 IsRightAlternative
IsRightAlternative( Q )  property
Returns: true if Q is a right alternative quasigroup.
7.4-15 IsAlternative
IsAlternative( Q )  property
Returns: true if Q is an alternative quasigroup.
While listing the varieties of loops of Bol-Moufang type, we have also
listed all inclusions among them. These inclusions are built into LOOPS as
filters.
The following trivial example shows some of the implications and the naming
conventions of LOOPS at work:
 Example 
gap> L := LoopByCayleyTable( [ [ 1, 2 ], [ 2, 1 ] ] ); 
<loop of order 2> 
gap> [ IsLeftBolLoop( L ), L ] 
[ true, <left Bol loop of order 2> ] 
gap> [ HasIsLeftAlternativeLoop( L ), IsLeftAlternativeLoop( L ) ]; 
[ true, true ] 
gap> [ HasIsRightBolLoop( L ), IsRightBolLoop( L ) ]; 
[ false, true ] 
gap> L; 
<Moufang loop of order 2> 
gap> [ IsAssociative( L ), L ]; 
[ true, <associative loop of order 2> ] 

The analogous terminology for quasigroups of Bol-Moufang type is not
standard yet, and hence is not supported in LOOPS except for the situations
explicitly noted above.
7.5 Power Alternative Loops
A loop is left power alternative if it is power associative and satisfies
x^n(x^m y) = x^n+my for all elements x, y and all integers m, n. Similarly,
a loop is right power alternative if it is power associative and satisfies
(x y^n)y^m = xy^n+m for all elements x, y and all integers m, n. A loop is
power alternative if it is both left power alternative and right power
alternative.
Left power alternative loops are left alternative and have the left inverse
property. Left Bol loops and LC loops are left power alternative.
7.5-1 IsLeftPowerAlternative, IsRightPowerAlternative and IsPowerAlternative
IsLeftPowerAlternative( Q )  property
IsRightPowerAlternative( Q )  property
IsPowerAlternative( Q )  property
Returns: true if Q is a left power alternative loop, resp. a right power
alternative loop, resp. a power alternative loop.
7.6 Conjugacy Closed Loops and Related Properties
A loop Q is left conjugacy closed if the set of left translations of Q is
closed under conjugation (by itself). Similarly, a loop Q is right conjugacy
closed if the set of right translations of Q is closed under conjugation. A
loop is conjugacy closed if it is both left conjugacy closed and right
conjugacy closed. It is common to refer to these loops as LCC, RCC, and CC
loops, respectively.
The equivalence LCC + RCC = CC is built into LOOPS.
7.6-1 IsLCCLoop
IsLCCLoop( Q )  property
IsLeftConjugacyClosedLoop( Q )  property
Returns: true if Q is a left conjugacy closed loop.
7.6-2 IsRCCLoop
IsRCCLoop( Q )  property
IsRightConjugacyClosedLoop( Q )  property
Returns: true if Q is a right conjugacy closed loop.
7.6-3 IsCCLoop
IsCCLoop( Q )  property
IsConjugacyClosedLoop( Q )  property
Returns: true if Q is a conjugacy closed loop.
7.6-4 IsOsbornLoop
IsOsbornLoop( Q )  property
Returns: true if Q is an Osborn loop.
A loop is Osborn if it satisfies x(yz⋅ x)=(x^λbackslash y)(zx). Both Moufang
loops and CC loops are Osborn.
7.7 Automorphic Loops
A loop Q whose all left (resp. middle, resp. right) inner mappings are
automorphisms of Q is known as a left automorphic loop (resp. middle
automorphic loop, resp. right automorphic loop).
A loop Q is an automorphic loop if all inner mappings of Q are automorphisms
of Q.
Automorphic loops are also known as A loops, and similar terminology exists
for left, right and middle automorphic loops.
The following results hold for automorphic loops:
 automorphic loops are power associative [BP56]
 in an automorphic loop Q we have Nuc(Q) = Nuc_λ(Q) = Nuc_ρ(Q)le
Nuc_μ(Q) and all nuclei are normal [BP56]
 a loop that is left automorphic and right automorphic satisfies the
anti-automorphic inverse property and is automorphic [JKNV11]
 diassociative automorphic loops are Moufang [KKP02]
 automorphic loops of odd order are solvable [KKPV16]
 finite commutative automorphic loops are solvable [GKN14]
 commutative automorphic loops of order p, 2p, 4p, p^2, 2p^2, 4p^2 (p
an odd prime) are abelian groups [Voj15]
 commutative automorphic loops of odd prime power order are centrally
nilpotent [JKV12]
 for any prime p, there are 7 commutative automorphic loops of order
p^3 up to isomorphism [BGV12]
See the built-in filters and the survey [Voj15] for additional properties of
automorphic loops.
7.7-1 IsLeftAutomorphicLoop
IsLeftAutomorphicLoop( Q )  property
IsLeftALoop( Q )  property
Returns: true if Q is a left automorphic loop.
7.7-2 IsMiddleAutomorphicLoop
IsMiddleAutomorphicLoop( Q )  property
IsMiddleALoop( Q )  property
Returns: true if Q is a middle automorphic loop.
7.7-3 IsRightAutomorphicLoop
IsRightAutomorphicLoop( Q )  property
IsRightALoop( Q )  property
Returns: true if Q is a right automorphic loop.
7.7-4 IsAutomorphicLoop
IsAutomorphicLoop( Q )  property
IsALoop( Q )  property
Returns: true if Q is an automorphic loop.
Remark: Be careful not to confuse IsALoop and IsLoop.
7.8 Additonal Varieties of Loops
7.8-1 IsCodeLoop
IsCodeLoop( Q )  property
Returns: true if Q is a code loop.
A code loop is a Moufang 2-loop with a Frattini subloop of order 1 or 2.
Code loops are extra and conjugacy closed.
7.8-2 IsSteinerLoop
IsSteinerLoop( Q )  property
Returns: true if Q is a Steiner loop.
A Steiner loop is an inverse property loop of exponent 2. Steiner loops are
commutative.
7.8-3 IsLeftBruckLoop and IsLeftKLoop
IsLeftBruckLoop( Q )  property
IsLeftKLoop( Q )  property
Returns: true if Q is a left Bruck loop (aka left K loop).
A left Bol loop with the automorphic inverse property is known as a left
Bruck loop or a left K loop.
7.8-4 IsRightBruckLoop and IsRightKLoop
IsRightBruckLoop( Q )  property
IsRightKLoop( Q )  property
Returns: true if Q is a right Bruck loop (aka right K loop).
A right Bol loop with the automorphic inverse property is known as a right
Bruck loop or a right K loop.

651
doc/chap7_mj.html Normal file
View file

@ -0,0 +1,651 @@
<?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="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (Loops) - Chapter 7: Testing Properties of Quasigroups and Loops</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="chap7" 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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap6_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chap8_mj.html">[Next Chapter]</a>&nbsp; </div>
<p id="mathjaxlink" class="pcenter"><a href="chap7.html">[MathJax off]</a></p>
<p><a id="X7910E575825C713E" name="X7910E575825C713E"></a></p>
<div class="ChapSects"><a href="chap7_mj.html#X7910E575825C713E">7 <span class="Heading">Testing Properties of Quasigroups and Loops</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap7_mj.html#X7960E3FB7A7F0F00">7.1 <span class="Heading">Associativity, Commutativity and Generalizations</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7C83B5A47FD18FB7">7.1-1 IsAssociative</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X830A4A4C795FBC2D">7.1-2 IsCommutative</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7D53EA947F1CDA69">7.1-3 IsPowerAssociative</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X872DCA027E1A4A1D">7.1-4 IsDiassociative</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap7_mj.html#X853841C5820BFEA4">7.2 <span class="Heading">Inverse Propeties</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X85EDD10586596458">7.2-1 <span class="Heading">HasLeftInverseProperty, HasRightInverseProperty and HasInverseProperty</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X86B93E1B7AEA6EDA">7.2-2 HasTwosidedInverses</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X793909B780761EA8">7.2-3 HasWeakInverseProperty</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7F46CE6B7D387158">7.2-4 HasAutomorphicInverseProperty</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X8538D4638232DB51">7.2-5 HasAntiautomorphicInverseProperty</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap7_mj.html#X7D8CB6DA828FD744">7.3 <span class="Heading">Some Properties of Quasigroups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X834848ED85F9012B">7.3-1 IsSemisymmetric</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X834F809B8060B754">7.3-2 IsTotallySymmetric</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7CB5896082D29173">7.3-3 IsIdempotent</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X83DE7DD77C056C1F">7.3-4 IsSteinerQuasigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7CA3DCA07B6CB9BD">7.3-5 IsUnipotent</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7B76FD6E878ED4F1">7.3-6 <span class="Heading">IsLeftDistributive, IsRightDistributive, IsDistributive</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7F23D4D97A38D223">7.3-7 <span class="Heading">IsEntropic and IsMedial</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap7_mj.html#X780D907986EBA6C7">7.4 <span class="Heading">Loops of Bol Moufang Type</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7988AFE27D06ACB5">7.4-1 IsExtraLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7F1C151484C97E61">7.4-2 IsMoufangLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X866F04DC7AE54B7C">7.4-3 IsCLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X801DAAE8834A1A65">7.4-4 IsLeftBolLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X79279F9787E72566">7.4-5 IsRightBolLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X789E0A6979697C4C">7.4-6 IsLCLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7B03CC577802F4AB">7.4-7 IsRCLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X819F285887B5EB9E">7.4-8 IsLeftNuclearSquareLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X8474F55681244A8A">7.4-9 IsMiddleNuclearSquareLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X807B3B21825E3076">7.4-10 IsRightNuclearSquareLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X796650088213229B">7.4-11 IsNuclearSquareLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7C32851A7AF1C45F">7.4-12 IsFlexible</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7DF0196786B9CE08">7.4-13 IsLeftAlternative</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X8416FAD87F148F5D">7.4-14 IsRightAlternative</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X8379356E82DB5DDA">7.4-15 IsAlternative</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap7_mj.html#X83A501387E1AC371">7.5 <span class="Heading">Power Alternative Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X875C3DF681B3FAE2">7.5-1 <span class="Heading">IsLeftPowerAlternative, IsRightPowerAlternative and IsPowerAlternative</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap7_mj.html#X8176B2C47A4629CD">7.6 <span class="Heading">Conjugacy Closed Loops and Related Properties</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X784E08CD7B710AF4">7.6-1 IsLCCLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7B3016B47A1A8213">7.6-2 IsRCCLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X878B614479DCB83F">7.6-3 IsCCLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X8655956878205FC1">7.6-4 IsOsbornLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap7_mj.html#X793B22EA8643C667">7.7 <span class="Heading">Automorphic Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7F063914804659F1">7.7-1 IsLeftAutomorphicLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7DFE830584A769E5">7.7-2 IsMiddleAutomorphicLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7EA9165A87F99E35">7.7-3 IsRightAutomorphicLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X7899603184CF13FD">7.7-4 IsAutomorphicLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap7_mj.html#X846F363879BAB349">7.8 <span class="Heading">Additonal Varieties of Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X790FA1188087D5C1">7.8-1 IsCodeLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X793600C9801F4F62">7.8-2 IsSteinerLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X85F1BD4280E44F5B">7.8-3 <span class="Heading">IsLeftBruckLoop and IsLeftKLoop</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap7_mj.html#X857B373E7B4E0519">7.8-4 <span class="Heading">IsRightBruckLoop and IsRightKLoop</span></a>
</span>
</div></div>
</div>
<h3>7 <span class="Heading">Testing Properties of Quasigroups and Loops</span></h3>
<p>Although loops are quasigroups, it is often the case in the literature that a property of the same name can differ for quasigroups and loops. For instance, a Steiner loop is not necessarily a Steiner quasigroup.</p>
<p>To avoid such ambivalences, we often include the noun <code class="code">Loop</code> or <code class="code">Quasigroup</code> as part of the name of the property, e.g., <code class="code">IsSteinerQuasigroup</code> versus <code class="code">IsSteinerLoop</code>.</p>
<p>On the other hand, some properties coincide for quasigroups and loops and we therefore do not include <code class="code">Loop</code>, <code class="code">Quasigroup</code> as part of the name of the property, e.g., <code class="code">IsCommutative</code>.</p>
<p><a id="X7960E3FB7A7F0F00" name="X7960E3FB7A7F0F00"></a></p>
<h4>7.1 <span class="Heading">Associativity, Commutativity and Generalizations</span></h4>
<p><a id="X7C83B5A47FD18FB7" name="X7C83B5A47FD18FB7"></a></p>
<h5>7.1-1 IsAssociative</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsAssociative</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is an associative quasigroup.</p>
<p><a id="X830A4A4C795FBC2D" name="X830A4A4C795FBC2D"></a></p>
<h5>7.1-2 IsCommutative</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsCommutative</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a commutative quasigroup.</p>
<p><a id="X7D53EA947F1CDA69" name="X7D53EA947F1CDA69"></a></p>
<h5>7.1-3 IsPowerAssociative</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsPowerAssociative</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a power associative quasigroup.</p>
<p>A quasigroup <span class="SimpleMath">\(Q\)</span> is said to be <em>power associative</em> if every element of <span class="SimpleMath">\(Q\)</span> generates an associative quasigroup, that is, a group.</p>
<p><a id="X872DCA027E1A4A1D" name="X872DCA027E1A4A1D"></a></p>
<h5>7.1-4 IsDiassociative</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsDiassociative</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a diassociative quasigroup.</p>
<p>A quasigroup <span class="SimpleMath">\(Q\)</span> is said to be <em>diassociative</em> if any two elements of <span class="SimpleMath">\(Q\)</span> generate an associative quasigroup, that is, a group. Note that a diassociative quasigroup is necessarily a loop, but it need not be so declared in <strong class="pkg">LOOPS</strong>.</p>
<p><a id="X853841C5820BFEA4" name="X853841C5820BFEA4"></a></p>
<h4>7.2 <span class="Heading">Inverse Propeties</span></h4>
<p>For an element <span class="SimpleMath">\(x\)</span> of a loop <span class="SimpleMath">\(Q\)</span>, the <em>left inverse</em> of <span class="SimpleMath">\(x\)</span> is the element <span class="SimpleMath">\(x^\lambda\)</span> of <span class="SimpleMath">\(Q\)</span> such that <span class="SimpleMath">\(x^\lambda \cdot x = 1\)</span>, while the <em>right inverse</em> of <span class="SimpleMath">\(x\)</span> is the element <span class="SimpleMath">\(x^\rho\)</span> of <span class="SimpleMath">\(Q\)</span> such that <span class="SimpleMath">\(x\cdot x^\rho = 1\)</span>.</p>
<p><a id="X85EDD10586596458" name="X85EDD10586596458"></a></p>
<h5>7.2-1 <span class="Heading">HasLeftInverseProperty, HasRightInverseProperty and HasInverseProperty</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; HasLeftInverseProperty</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; HasRightInverseProperty</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; HasInverseProperty</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if a loop <var class="Arg">Q</var> has the left inverse property, right inverse property, resp. inverse property.</p>
<p>A loop <span class="SimpleMath">\(Q\)</span> has the <em>left inverse property</em> if <span class="SimpleMath">\(x^\lambda(xy)=y\)</span> for every <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span> in <span class="SimpleMath">\(Q\)</span>. Dually, <span class="SimpleMath">\(Q\)</span> has the <em>right inverse property</em> if <span class="SimpleMath">\((yx)x^\rho=y\)</span> for every <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span> in <span class="SimpleMath">\(Q\)</span>. If <span class="SimpleMath">\(Q\)</span> has both the left inverse property and the right inverse property, it has the <em>inverse property</em>.</p>
<p><a id="X86B93E1B7AEA6EDA" name="X86B93E1B7AEA6EDA"></a></p>
<h5>7.2-2 HasTwosidedInverses</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; HasTwosidedInverses</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if a loop <var class="Arg">Q</var> has two-sided inverses.</p>
<p>A loop <span class="SimpleMath">\(Q\)</span> is said to have <em>two-sided inverses</em> if <span class="SimpleMath">\(x^\lambda=x^\rho\)</span> for every <span class="SimpleMath">\(x\)</span> in <span class="SimpleMath">\(Q\)</span>.</p>
<p><a id="X793909B780761EA8" name="X793909B780761EA8"></a></p>
<h5>7.2-3 HasWeakInverseProperty</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; HasWeakInverseProperty</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if a loop <var class="Arg">Q</var> has the weak inverse property.</p>
<p>A loop <span class="SimpleMath">\(Q\)</span> has the <em>weak inverse property</em> if <span class="SimpleMath">\((xy)^\lambda x = y^\lambda\)</span> (equivalently, <span class="SimpleMath">\(x(yx)^\rho = y^\rho\)</span>) holds for every <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span> in <span class="SimpleMath">\(Q\)</span>.</p>
<p><a id="X7F46CE6B7D387158" name="X7F46CE6B7D387158"></a></p>
<h5>7.2-4 HasAutomorphicInverseProperty</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; HasAutomorphicInverseProperty</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if a loop <var class="Arg">Q</var> has the automorphic inverse property.</p>
<p>According to <a href="chapBib_mj.html#biBAr">[Art59]</a>, a loop <span class="SimpleMath">\(Q\)</span> has the <em>automorphic inverse property</em> if <span class="SimpleMath">\((xy)^\lambda = x^\lambda y^\lambda\)</span>, or, equivalently, <span class="SimpleMath">\((xy)^\rho = x^\rho y^\rho\)</span> holds for every <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span> in <span class="SimpleMath">\(Q\)</span>.</p>
<p><a id="X8538D4638232DB51" name="X8538D4638232DB51"></a></p>
<h5>7.2-5 HasAntiautomorphicInverseProperty</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; HasAntiautomorphicInverseProperty</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if a loop <var class="Arg">Q</var> has the antiautomorphic inverse property.</p>
<p>A loop <span class="SimpleMath">\(Q\)</span> has the <em>antiautomorphic inverse property</em> if <span class="SimpleMath">\((xy)^\lambda=y^\lambda x^\lambda\)</span>, or, equivalently, <span class="SimpleMath">\((xy)^\rho = y^\rho x^\rho\)</span> holds for every <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span> in <span class="SimpleMath">\(Q\)</span>.<br /></p>
<p>See Appendix <a href="chapB_mj.html#X84EFA4C07D4277BB"><span class="RefLink">B</span></a> for implications implemented in <strong class="pkg">LOOPS</strong> among various inverse properties.</p>
<p><a id="X7D8CB6DA828FD744" name="X7D8CB6DA828FD744"></a></p>
<h4>7.3 <span class="Heading">Some Properties of Quasigroups</span></h4>
<p><a id="X834848ED85F9012B" name="X834848ED85F9012B"></a></p>
<h5>7.3-1 IsSemisymmetric</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsSemisymmetric</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a semisymmetric quasigroup.</p>
<p>A quasigroup <span class="SimpleMath">\(Q\)</span> is <em>semisymmetric</em> if <span class="SimpleMath">\((xy)x=y\)</span>, or, equivalently <span class="SimpleMath">\(x(yx)=y\)</span> holds for every <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span> in <span class="SimpleMath">\(Q\)</span>.</p>
<p><a id="X834F809B8060B754" name="X834F809B8060B754"></a></p>
<h5>7.3-2 IsTotallySymmetric</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsTotallySymmetric</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a totally symmetric quasigroup.</p>
<p>A commutative semisymmetric quasigroup is called <em>totally symmetric</em>. Totally symmetric quasigroups are precisely the quasigroups satisfying <span class="SimpleMath">\(xy=x\backslash y = x/y\)</span>.</p>
<p><a id="X7CB5896082D29173" name="X7CB5896082D29173"></a></p>
<h5>7.3-3 IsIdempotent</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsIdempotent</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is an idempotent quasigroup.</p>
<p>A quasigroup is <em>idempotent</em> if it satisfies <span class="SimpleMath">\(x^2=x\)</span>.</p>
<p><a id="X83DE7DD77C056C1F" name="X83DE7DD77C056C1F"></a></p>
<h5>7.3-4 IsSteinerQuasigroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsSteinerQuasigroup</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a Steiner quasigroup.</p>
<p>A totally symmetric idempotent quasigroup is called a <em>Steiner quasigroup</em>.</p>
<p><a id="X7CA3DCA07B6CB9BD" name="X7CA3DCA07B6CB9BD"></a></p>
<h5>7.3-5 IsUnipotent</h5>
<p>A quasigroup <span class="SimpleMath">\(Q\)</span> is <em>unipotent</em> if it satisfies <span class="SimpleMath">\(x^2=y^2\)</span> for every <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span> in <span class="SimpleMath">\(Q\)</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsUnipotent</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a unipotent quasigroup.</p>
<p><a id="X7B76FD6E878ED4F1" name="X7B76FD6E878ED4F1"></a></p>
<h5>7.3-6 <span class="Heading">IsLeftDistributive, IsRightDistributive, IsDistributive</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsLeftDistributive</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsRightDistributive</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsDistributive</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a left distributive quasigroup, resp. a right distributive quasigroup, resp. a distributive quasigroup.</p>
<p>A quasigroup is <em>left distributive</em> if it satisfies <span class="SimpleMath">\(x(yz) = (xy)(xz)\)</span>, <em>right distributive</em> if it satisfies <span class="SimpleMath">\((xy)z = (xz)(yz)\)</span>, and <em>distributive</em> if it is both left distributive and right distributive.</p>
<p><strong class="button">Remark:</strong> In order to be compatible with <strong class="pkg">GAP</strong>s terminology, we also support the synonyms <code class="code">IsLDistributive</code> and <code class="code">IsRDistributive</code> of <code class="code">IsLeftDistributive</code> and <code class="code">IsRightDistributive</code>, respectively.</p>
<p><a id="X7F23D4D97A38D223" name="X7F23D4D97A38D223"></a></p>
<h5>7.3-7 <span class="Heading">IsEntropic and IsMedial</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsEntropic</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsMedial</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is an entropic (aka medial) quasigroup.</p>
<p>A quasigroup is <em>entropic</em> or <em>medial</em> if it satisfies the identity <span class="SimpleMath">\((xy)(uv) = (xu)(yv)\)</span>.</p>
<p><a id="X780D907986EBA6C7" name="X780D907986EBA6C7"></a></p>
<h4>7.4 <span class="Heading">Loops of Bol Moufang Type</span></h4>
<p>Following <a href="chapBib_mj.html#biBFe">[Fen69]</a> and <a href="chapBib_mj.html#biBPhiVoj">[PV05]</a>, a variety of loops is said to be of <em>Bol-Moufang type</em> if it is defined by a single <em>identity of Bol-Moufang type</em>, i.e., by an identity that contains the same 3 variables on both sides, exactly one of the variables occurs twice on both sides, and the variables occur in the same order on both sides.</p>
<p>It is proved in <a href="chapBib_mj.html#biBPhiVoj">[PV05]</a> that there are 13 varieties of nonassociative loops of Bol-Moufang type. These are:</p>
<ul>
<li><p><em>left alternative loops</em> defined by <span class="SimpleMath">\(x(xy) = (xx)y\)</span>,</p>
</li>
<li><p><em>right alternative loops</em> defined by <span class="SimpleMath">\(x(yy) = (xy)y\)</span>,</p>
</li>
<li><p><em>left nuclear square loops</em> defined by <span class="SimpleMath">\((xx)(yz) = ((xx)y)z\)</span>,</p>
</li>
<li><p><em>middle nuclear square loops</em>defined by <span class="SimpleMath">\(x((yy)z) = (x(yy))z\)</span>,</p>
</li>
<li><p><em>right nuclear square loops</em> defined by <span class="SimpleMath">\(x(y(zz)) = (xy)(zz)\)</span>,</p>
</li>
<li><p><em>flexible loops</em> defined by <span class="SimpleMath">\(x(yx) = (xy)x\)</span>,</p>
</li>
<li><p><em>left Bol loops</em> defined by <span class="SimpleMath">\(x(y(xz)) = (x(yx))z\)</span>, always left alternative,</p>
</li>
<li><p><em>right Bol loops</em> defined by <span class="SimpleMath">\(x((yz)y) = ((xy)z)y\)</span>, always right alternative,</p>
</li>
<li><p><em>LC loops</em> defined by <span class="SimpleMath">\((xx)(yz) = (x(xy))z\)</span>, always left alternative, left nuclear square and middle nuclear square,</p>
</li>
<li><p><em>RC loops</em> defined by <span class="SimpleMath">\(x((yz)z) = (xy)(zz)\)</span>, always right alternative, right nuclear square and middle nuclear square,</p>
</li>
<li><p><em>Moufang loops</em> defined by <span class="SimpleMath">\((xy)(zx) = (x(yz))x\)</span>, always flexible, left Bol and right Bol,</p>
</li>
<li><p><em>C loops</em> defined by <span class="SimpleMath">\(x(y(yz)) = ((xy)y)z\)</span>, always LC and RC,</p>
</li>
<li><p><em>extra loops</em> defined by <span class="SimpleMath">\(x(y(zx)) = ((xy)z)x\)</span>, always Moufang and C.</p>
</li>
</ul>
<p>Note that although some of the defining identities are not of Bol-Moufang type, they are equivalent to a Bol-Moufang identity. Moreover, many varieties of loops of Bol-Moufang type can be defined by one of several equivalent identities of Bol-Moufang type.</p>
<p>There are also several varieties related to loops of Bol-Moufang type. A loop is said to be <em>alternative</em> if it is both left alternative and right alternative. A loop is <em>nuclear square</em> if it is left nuclear square, middle nuclear square and right nuclear square.</p>
<p><a id="X7988AFE27D06ACB5" name="X7988AFE27D06ACB5"></a></p>
<h5>7.4-1 IsExtraLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsExtraLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is an extra loop.</p>
<p><a id="X7F1C151484C97E61" name="X7F1C151484C97E61"></a></p>
<h5>7.4-2 IsMoufangLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsMoufangLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a Moufang loop.</p>
<p><a id="X866F04DC7AE54B7C" name="X866F04DC7AE54B7C"></a></p>
<h5>7.4-3 IsCLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsCLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a C loop.</p>
<p><a id="X801DAAE8834A1A65" name="X801DAAE8834A1A65"></a></p>
<h5>7.4-4 IsLeftBolLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsLeftBolLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a left Bol loop.</p>
<p><a id="X79279F9787E72566" name="X79279F9787E72566"></a></p>
<h5>7.4-5 IsRightBolLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsRightBolLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a right Bol loop.</p>
<p><a id="X789E0A6979697C4C" name="X789E0A6979697C4C"></a></p>
<h5>7.4-6 IsLCLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsLCLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is an LC loop.</p>
<p><a id="X7B03CC577802F4AB" name="X7B03CC577802F4AB"></a></p>
<h5>7.4-7 IsRCLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsRCLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is an RC loop.</p>
<p><a id="X819F285887B5EB9E" name="X819F285887B5EB9E"></a></p>
<h5>7.4-8 IsLeftNuclearSquareLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsLeftNuclearSquareLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a left nuclear square loop.</p>
<p><a id="X8474F55681244A8A" name="X8474F55681244A8A"></a></p>
<h5>7.4-9 IsMiddleNuclearSquareLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsMiddleNuclearSquareLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a middle nuclear square loop.</p>
<p><a id="X807B3B21825E3076" name="X807B3B21825E3076"></a></p>
<h5>7.4-10 IsRightNuclearSquareLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsRightNuclearSquareLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a right nuclear square loop.</p>
<p><a id="X796650088213229B" name="X796650088213229B"></a></p>
<h5>7.4-11 IsNuclearSquareLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsNuclearSquareLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a nuclear square loop.</p>
<p><a id="X7C32851A7AF1C45F" name="X7C32851A7AF1C45F"></a></p>
<h5>7.4-12 IsFlexible</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsFlexible</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a flexible quasigroup.</p>
<p><a id="X7DF0196786B9CE08" name="X7DF0196786B9CE08"></a></p>
<h5>7.4-13 IsLeftAlternative</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsLeftAlternative</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a left alternative quasigroup.</p>
<p><a id="X8416FAD87F148F5D" name="X8416FAD87F148F5D"></a></p>
<h5>7.4-14 IsRightAlternative</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsRightAlternative</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a right alternative quasigroup.</p>
<p><a id="X8379356E82DB5DDA" name="X8379356E82DB5DDA"></a></p>
<h5>7.4-15 IsAlternative</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsAlternative</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is an alternative quasigroup.<br /></p>
<p>While listing the varieties of loops of Bol-Moufang type, we have also listed all inclusions among them. These inclusions are built into <strong class="pkg">LOOPS</strong> as filters. <br /></p>
<p>The following trivial example shows some of the implications and the naming conventions of <strong class="pkg">LOOPS</strong> at work:</p>
<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">L := LoopByCayleyTable( [ [ 1, 2 ], [ 2, 1 ] ] ); </span>
&lt;loop of order 2&gt;
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">[ IsLeftBolLoop( L ), L ] </span>
[ true, &lt;left Bol loop of order 2&gt; ]
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">[ HasIsLeftAlternativeLoop( L ), IsLeftAlternativeLoop( L ) ]; </span>
[ true, true ]
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">[ HasIsRightBolLoop( L ), IsRightBolLoop( L ) ]; </span>
[ false, true ]
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">L; </span>
&lt;Moufang loop of order 2&gt;
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">[ IsAssociative( L ), L ]; </span>
[ true, &lt;associative loop of order 2&gt; ]
</pre></div>
<p>The analogous terminology for quasigroups of Bol-Moufang type is not standard yet, and hence is not supported in <strong class="pkg">LOOPS</strong> except for the situations explicitly noted above.</p>
<p><a id="X83A501387E1AC371" name="X83A501387E1AC371"></a></p>
<h4>7.5 <span class="Heading">Power Alternative Loops</span></h4>
<p>A loop is <em>left power alternative</em> if it is power associative and satisfies <span class="SimpleMath">\(x^n(x^m y) = x^{n+m}y\)</span> for all elements <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span> and all integers <span class="SimpleMath">\(m\)</span>, <span class="SimpleMath">\(n\)</span>. Similarly, a loop is <em>right power alternative</em> if it is power associative and satisfies <span class="SimpleMath">\((x y^n)y^m = xy^{n+m}\)</span> for all elements <span class="SimpleMath">\(x\)</span>, <span class="SimpleMath">\(y\)</span> and all integers <span class="SimpleMath">\(m\)</span>, <span class="SimpleMath">\(n\)</span>. A loop is <em>power alternative</em> if it is both left power alternative and right power alternative.</p>
<p>Left power alternative loops are left alternative and have the left inverse property. Left Bol loops and LC loops are left power alternative.</p>
<p><a id="X875C3DF681B3FAE2" name="X875C3DF681B3FAE2"></a></p>
<h5>7.5-1 <span class="Heading">IsLeftPowerAlternative, IsRightPowerAlternative and IsPowerAlternative</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsLeftPowerAlternative</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsRightPowerAlternative</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsPowerAlternative</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a left power alternative loop, resp. a right power alternative loop, resp. a power alternative loop.</p>
<p><a id="X8176B2C47A4629CD" name="X8176B2C47A4629CD"></a></p>
<h4>7.6 <span class="Heading">Conjugacy Closed Loops and Related Properties</span></h4>
<p>A loop <span class="SimpleMath">\(Q\)</span> is <em>left conjugacy closed</em> if the set of left translations of <span class="SimpleMath">\(Q\)</span> is closed under conjugation (by itself). Similarly, a loop <span class="SimpleMath">\(Q\)</span> is <em>right conjugacy closed</em> if the set of right translations of <span class="SimpleMath">\(Q\)</span> is closed under conjugation. A loop is <em>conjugacy closed</em> if it is both left conjugacy closed and right conjugacy closed. It is common to refer to these loops as LCC, RCC, and CC loops, respectively.</p>
<p>The equivalence LCC <span class="SimpleMath">\(+\)</span> RCC <span class="SimpleMath">\(=\)</span> CC is built into <strong class="pkg">LOOPS</strong>.</p>
<p><a id="X784E08CD7B710AF4" name="X784E08CD7B710AF4"></a></p>
<h5>7.6-1 IsLCCLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsLCCLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsLeftConjugacyClosedLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a left conjugacy closed loop.</p>
<p><a id="X7B3016B47A1A8213" name="X7B3016B47A1A8213"></a></p>
<h5>7.6-2 IsRCCLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsRCCLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsRightConjugacyClosedLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a right conjugacy closed loop.</p>
<p><a id="X878B614479DCB83F" name="X878B614479DCB83F"></a></p>
<h5>7.6-3 IsCCLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsCCLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsConjugacyClosedLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a conjugacy closed loop.</p>
<p><a id="X8655956878205FC1" name="X8655956878205FC1"></a></p>
<h5>7.6-4 IsOsbornLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsOsbornLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is an Osborn loop.</p>
<p>A loop is <em>Osborn</em> if it satisfies <span class="SimpleMath">\(x(yz\cdot x)=(x^\lambda\backslash y)(zx)\)</span>. Both Moufang loops and CC loops are Osborn.</p>
<p><a id="X793B22EA8643C667" name="X793B22EA8643C667"></a></p>
<h4>7.7 <span class="Heading">Automorphic Loops</span></h4>
<p>A loop <span class="SimpleMath">\(Q\)</span> whose all left (resp. middle, resp. right) inner mappings are automorphisms of <span class="SimpleMath">\(Q\)</span> is known as a <em>left automorphic loop</em> (resp. <em>middle automorphic loop</em>, resp. <em>right automorphic loop</em>).</p>
<p>A loop <span class="SimpleMath">\(Q\)</span> is an <em>automorphic loop</em> if all inner mappings of <span class="SimpleMath">\(Q\)</span> are automorphisms of <span class="SimpleMath">\(Q\)</span>.</p>
<p>Automorphic loops are also known as <em>A loops</em>, and similar terminology exists for left, right and middle automorphic loops.</p>
<p>The following results hold for automorphic loops:</p>
<ul>
<li><p>automorphic loops are power associative <a href="chapBib_mj.html#biBBrPa">[BP56]</a></p>
</li>
<li><p>in an automorphic loop <span class="SimpleMath">\(Q\)</span> we have <span class="SimpleMath">\({\rm Nuc}(Q) = {\rm Nuc}_{\lambda}(Q) = {\rm Nuc}_{\rho}(Q)\le {\rm Nuc}_{\mu}(Q)\)</span> and all nuclei are normal <a href="chapBib_mj.html#biBBrPa">[BP56]</a></p>
</li>
<li><p>a loop that is left automorphic and right automorphic satisfies the anti-automorphic inverse property and is automorphic <a href="chapBib_mj.html#biBJoKiNaVo">[JKNV11]</a></p>
</li>
<li><p>diassociative automorphic loops are Moufang <a href="chapBib_mj.html#biBKiKuPh">[KKP02]</a></p>
</li>
<li><p>automorphic loops of odd order are solvable <a href="chapBib_mj.html#biBKiKuPhVo">[KKPV16]</a></p>
</li>
<li><p>finite commutative automorphic loops are solvable <a href="chapBib_mj.html#biBGrKiNa">[GKN14]</a></p>
</li>
<li><p>commutative automorphic loops of order <span class="SimpleMath">\(p\)</span>, <span class="SimpleMath">\(2p\)</span>, <span class="SimpleMath">\(4p\)</span>, <span class="SimpleMath">\(p^2\)</span>, <span class="SimpleMath">\(2p^2\)</span>, <span class="SimpleMath">\(4p^2\)</span> (<span class="SimpleMath">\(p\)</span> an odd prime) are abelian groups <a href="chapBib_mj.html#biBVoQRS">[Voj15]</a></p>
</li>
<li><p>commutative automorphic loops of odd prime power order are centrally nilpotent <a href="chapBib_mj.html#biBJeKiVo">[JKV12]</a></p>
</li>
<li><p>for any prime <span class="SimpleMath">\(p\)</span>, there are <span class="SimpleMath">\(7\)</span> commutative automorphic loops of order <span class="SimpleMath">\(p^3\)</span> up to isomorphism <a href="chapBib_mj.html#biBBaGrVo">[BGV12]</a></p>
</li>
</ul>
<p>See the built-in filters and the survey <a href="chapBib_mj.html#biBVoQRS">[Voj15]</a> for additional properties of automorphic loops.</p>
<p><a id="X7F063914804659F1" name="X7F063914804659F1"></a></p>
<h5>7.7-1 IsLeftAutomorphicLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsLeftAutomorphicLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsLeftALoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a left automorphic loop.</p>
<p><a id="X7DFE830584A769E5" name="X7DFE830584A769E5"></a></p>
<h5>7.7-2 IsMiddleAutomorphicLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsMiddleAutomorphicLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsMiddleALoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a middle automorphic loop.</p>
<p><a id="X7EA9165A87F99E35" name="X7EA9165A87F99E35"></a></p>
<h5>7.7-3 IsRightAutomorphicLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsRightAutomorphicLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsRightALoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a right automorphic loop.</p>
<p><a id="X7899603184CF13FD" name="X7899603184CF13FD"></a></p>
<h5>7.7-4 IsAutomorphicLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsAutomorphicLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsALoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is an automorphic loop.</p>
<p><strong class="button">Remark:</strong> Be careful not to confuse <code class="code">IsALoop</code> and <code class="code">IsLoop</code>.</p>
<p><a id="X846F363879BAB349" name="X846F363879BAB349"></a></p>
<h4>7.8 <span class="Heading">Additonal Varieties of Loops</span></h4>
<p><a id="X790FA1188087D5C1" name="X790FA1188087D5C1"></a></p>
<h5>7.8-1 IsCodeLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsCodeLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a code loop.</p>
<p>A <em>code loop</em> is a Moufang 2-loop with a Frattini subloop of order 1 or 2. Code loops are extra and conjugacy closed.</p>
<p><a id="X793600C9801F4F62" name="X793600C9801F4F62"></a></p>
<h5>7.8-2 IsSteinerLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsSteinerLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a Steiner loop.</p>
<p>A <em>Steiner loop</em> is an inverse property loop of exponent 2. Steiner loops are commutative.</p>
<p><a id="X85F1BD4280E44F5B" name="X85F1BD4280E44F5B"></a></p>
<h5>7.8-3 <span class="Heading">IsLeftBruckLoop and IsLeftKLoop</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsLeftBruckLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsLeftKLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a left Bruck loop (aka left K loop).</p>
<p>A left Bol loop with the automorphic inverse property is known as a <em>left Bruck loop</em> or a <em>left K loop</em>.</p>
<p><a id="X857B373E7B4E0519" name="X857B373E7B4E0519"></a></p>
<h5>7.8-4 <span class="Heading">IsRightBruckLoop and IsRightKLoop</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsRightBruckLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsRightKLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">Q</var> is a right Bruck loop (aka right K loop).</p>
<p>A right Bol loop with the automorphic inverse property is known as a <em>right Bruck loop</em> or a <em>right K loop</em>.</p>
<div class="chlinkprevnextbot">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap6_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chap8_mj.html">[Next Chapter]</a>&nbsp; </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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</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>

190
doc/chap8.txt Normal file
View file

@ -0,0 +1,190 @@
8 Specific Methods
This chapter describes methods of LOOPS that apply to specific classes of
loops, mostly Bol and Moufang loops.
8.1 Core Methods for Bol Loops
8.1-1 AssociatedLeftBruckLoop and AssociatedRightBruckLoop
AssociatedLeftBruckLoop( Q )  attribute
AssociatedRightBruckLoop( Q )  attribute
Returns: The left (resp. right) Bruck loop associated with a uniquely
2-divisible left (resp. right) Bol loop Q.
Let Q be a left Bol loop such that the mapping x↦ x^2 is a permutation of Q.
Define a new operation * on Q by x*y =(x(y^2x))^1/2. Then (Q,*) is a left
Bruck loop, called the associated left Bruck loop. (In fact, Bruck used the
isomorphic operation x*y = x^1/2(yx^1/2) instead. Our approach is more
natural in the sense that the left Bruck loop associated with a left Bruck
loop is identical to the original loop.) Associated right Bruck loops are
defined dually.
8.1-2 IsExactGroupFactorization
IsExactGroupFactorization( G, H1, H2 )  operation
Returns: true if (G, H1, H2) is an exact group factorization.
Many right Bol loops can be constructed from exact group factorizations. The
triple (G,H_1,H_2) is an exact group factorization if H_1, H_2 are subgroups
of G such that H_1H_2=G and H_1∩ H_2=1.
8.1-3 RightBolLoopByExactGroupFactorization
If (G,H_1,H_2) is an exact group factorization then (G× G, H_1× H_2, T) with
T={(x,x^-1)| x∈ G} is a loop folder that gives rise to a right Bol loop.
RightBolLoopByExactGroupFactorization( arg )  function
Returns: The right Bol loop constructed from an exact group factorization.
The argument arg can either be an exact group factorization
[G,H1,H2], or the tuple [G,H], where H is a regular subgroup of G.
We also allow arg to be separate entries rather than a list of
entries.
8.2 Moufang Modifications
Drápal [Drá03] described two prominent families of extensions of Moufang
loops. It turns out that these extensions suffice to obtain all
nonassociative Moufang loops of order at most 64 if one starts with
so-called Chein loops. We call the two constructions Moufang modifications.
The library of Moufang loops included in LOOPS is based on Moufang
modifications. See [DV06] for details.
8.2-1 LoopByCyclicModification
LoopByCyclicModification( Q, S, a, h )  function
Returns: The cyclic modification of a Moufang loop Q obtained from S, a=α
and h described below.
Assume that Q is a Moufang loop with a normal subloop S such that Q/S is a
cyclic group of order 2m. Let h∈ S∩ Z(L). Let α be a generator of Q/S and
write Q = _i∈ M α^i, where M={-m+1, dots, m}. Let σ:Z-> M be defined by
σ(i)=0 if i∈ M, σ(i)=1 if i>m, and σ(i)=-1 if i<-m+1. Introduce a new
multiplication * on Q by x*y = xyh^σ(i+j), where x∈ α^i, y∈α^j, i∈ M and j∈
M. Then (Q,*) is a Moufang loop, a cyclic modification of Q.
8.2-2 LoopByDihedralModification
LoopByDihedralModification( Q, S, e, f, h )  function
Returns: The dihedral modification of a Moufang loop Q obtained from S, e,
f and h as described below.
Let Q be a Moufang loop with a normal subloop S such that Q/S is a dihedral
group of order 4m, with mge 1. Let M and σ be defined as in the cyclic case.
Let β, γ be two involutions of Q/S such that α=βγ generates a cyclic
subgroup of Q/S of order 2m. Let e∈β and f∈γ be arbitrary. Then Q can be
written as a disjoint union Q=_i∈ M(α^i eα^i), and also Q=_i∈ M(α^i
α^if). Let G_0=_i∈ Mα^i, and G_1=L G_0. Let h∈ S∩ N(L)∩ Z(G_0). Introduce
a new multiplication * on Q by x*y = xyh^(-1)^rσ(i+j), where x∈α^i eα^i,
y∈α^j α^jf, i∈ M, j∈ M, y∈ G_r and r∈{0,1}. Then (Q,*) is a Moufang loop, a
dihedral modification of Q.
8.2-3 LoopMG2
LoopMG2( G )  function
Returns: The Chein loop constructed from a group G.
Let G be a group. Let overlineG={overlineg|g∈ G} be a disjoint copy of
elements of G. Define multiplication * on Q=G overlineG by g*h = gh,
g*overlineh=overlinehg, overlineg*h = overlinegh^-1} and
overlineg*overlineh=h^-1g, where g, h∈ G. Then (Q,*)=M(G,2) is a so-called
Chein loop, which is always a Moufang loop, and it is associative if and
only if G is commutative.
8.3 Triality for Moufang Loops
Let G be a group and σ, ρ be automorphisms of G satisfying σ^2 = ρ^3 = (σ
ρ)^2 = 1. Below we write automorphisms as exponents and [g,σ] for g^-1g^σ.
We say that the triple (G,ρ,σ) is a group with triality if [g, σ] [g,σ]^ρ
[g,σ]^ρ^2 =1 holds for all g ∈ G. It is known that one can associate a group
with triality (G,ρ,σ) in a canonical way with a Moufang loop Q. See [NV03]
for more details.
For any Moufang loop Q, we can calculate the triality group as a permutation
group acting on 3|Q| points. If the multiplication group of Q is polycyclic,
then we can also represent the triality group as a pc group. In both cases,
the automorphisms σ and ρ are in the same family as the elements of G.
8.3-1 TrialityPermGroup
TrialityPermGroup( Q )  function
Returns: A record with components G, rho, sigma, where G is the canonical
group with triality associated with a Moufang loop Q, and rho,
sigma are the corresponding triality automorphisms.
8.3-2 TrialityPcGroup
TrialityPcGroup( Q )  function
This is a variation of TrialityPermGroup in which G is returned as a pc
group.
8.4 Realizing Groups as Multiplication Groups of Loops
It is difficult to determine which groups can occur as multiplication groups
of loops.
The following operations search for loops whose multiplication groups are
contained within a specified transitive permutation group G. In all these
operations, one can speed up the search by increasing the optional argument
depth, the price being a much higher memory consumption. The argument depth
is optimally chosen if in the permutation group G there are not many
permutations fixing depth elements. It is safe to omit the argument or set
it equal to 2.
The optional argument infolevel determines the amount of information
displayed during the search. With infolevel=0, no information is provided.
With infolevel=1, you get some information on timing and hits. With
infolevel=2, the results are printed as well.
8.4-1 AllLoopTablesInGroup
AllLoopTablesInGroup( G[, depth[, infolevel]] )  operation
Returns: All Cayley tables of loops whose multiplication group is contained
in the transitive permutation group G.
8.4-2 AllProperLoopTablesInGroup
AllProperLoopTablesInGroup( G[, depth[, infolevel]] )  operation
Returns: All Cayley tables of nonassociative loops whose multiplication
group is contained in the transitive permutation group G.
8.4-3 OneLoopTableInGroup
OneLoopTableInGroup( G[, depth[, infolevel]] )  operation
Returns: A Cayley table of a loop whose multiplication group is contained
in the transitive permutation group G.
8.4-4 OneProperLoopTableInGroup
OneProperLoopTableInGroup( G[, depth[, infolevel]] )  operation
Returns: A Cayley table of a nonassociative loop whose multiplication group
is contained in the transitive permutation group G.
8.4-5 AllLoopsWithMltGroup
AllLoopsWithMltGroup( G[, depth[, infolevel]] )  operation
Returns: A list of all loops (given as sections) whose multiplication group
is equal to the transitive permutation group G.
8.4-6 OneLoopWithMltGroup
OneLoopWithMltGroup( G[, depth[, infolevel]] )  operation
Returns: One loop (given as a section) whose multiplication group is equal
to the transitive permutation group G.
 Example 
gap> g:=PGL(3,3); 
Group([ (6,7)(8,11)(9,13)(10,12), (1,2,5,7,13,3,8,6,10,9,12,4,11) ]) 
gap> a:=AllLoopTablesInGroup(g,3,0);; Size(a); 
56 
gap> a:=AllLoopsWithMltGroup(g,3,0);; Size(a); 
52 


223
doc/chap8_mj.html Normal file
View file

@ -0,0 +1,223 @@
<?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="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (Loops) - Chapter 8: Specific Methods</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="chap8" 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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap7_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chap9_mj.html">[Next Chapter]</a>&nbsp; </div>
<p id="mathjaxlink" class="pcenter"><a href="chap8.html">[MathJax off]</a></p>
<p><a id="X85AFC9C47FD3C03F" name="X85AFC9C47FD3C03F"></a></p>
<div class="ChapSects"><a href="chap8_mj.html#X85AFC9C47FD3C03F">8 <span class="Heading">Specific Methods</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap8_mj.html#X7990F2F880E717EE">8.1 <span class="Heading">Core Methods for Bol Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X8664CA927DD73DBE">8.1-1 <span class="Heading">AssociatedLeftBruckLoop and AssociatedRightBruckLoop</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X82FC16F386CE11F1">8.1-2 IsExactGroupFactorization</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X7DCA64807F899127">8.1-3 RightBolLoopByExactGroupFactorization</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap8_mj.html#X819F82737C2A860D">8.2 <span class="Heading">Moufang Modifications</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X7B3165C083709831">8.2-1 LoopByCyclicModification</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X7D7717C587BC2D1E">8.2-2 LoopByDihedralModification</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X7CC6CDB786E9BBA0">8.2-3 LoopMG2</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap8_mj.html#X83E73A767D79FAFD">8.3 <span class="Heading">Triality for Moufang Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X7DB4DE647F6F56F0">8.3-1 TrialityPermGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X82CC977085DFDFE8">8.3-2 TrialityPcGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap8_mj.html#X841ED66B8084AA73">8.4 <span class="Heading">Realizing Groups as Multiplication Groups of Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X804F40087DD1225D">8.4-1 AllLoopTablesInGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X7854C8E382DC8E8B">8.4-2 AllProperLoopTablesInGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X7BFFC66A824BA6AA">8.4-3 OneLoopTableInGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X84C5A76585B335FF">8.4-4 OneProperLoopTableInGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X7E5F1C2879358EEF">8.4-5 AllLoopsWithMltGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap8_mj.html#X8266DE05824226E6">8.4-6 OneLoopWithMltGroup</a></span>
</div></div>
</div>
<h3>8 <span class="Heading">Specific Methods</span></h3>
<p>This chapter describes methods of <strong class="pkg">LOOPS</strong> that apply to specific classes of loops, mostly Bol and Moufang loops.</p>
<p><a id="X7990F2F880E717EE" name="X7990F2F880E717EE"></a></p>
<h4>8.1 <span class="Heading">Core Methods for Bol Loops</span></h4>
<p><a id="X8664CA927DD73DBE" name="X8664CA927DD73DBE"></a></p>
<h5>8.1-1 <span class="Heading">AssociatedLeftBruckLoop and AssociatedRightBruckLoop</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; AssociatedLeftBruckLoop</code>( <var class="Arg">Q</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">&#8227; AssociatedRightBruckLoop</code>( <var class="Arg">Q</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The left (resp. right) Bruck loop associated with a uniquely 2-divisible left (resp. right) Bol loop <var class="Arg">Q</var>.</p>
<p>Let <span class="SimpleMath">\(Q\)</span> be a left Bol loop such that the mapping <span class="SimpleMath">\(x\mapsto x^2\)</span> is a permutation of <span class="SimpleMath">\(Q\)</span>. Define a new operation <span class="SimpleMath">\(*\)</span> on <span class="SimpleMath">\(Q\)</span> by <span class="SimpleMath">\(x*y =(x(y^2x))^{1/2}\)</span>. Then <span class="SimpleMath">\((Q,*)\)</span> is a left Bruck loop, called the <em>associated left Bruck loop</em>. (In fact, Bruck used the isomorphic operation <span class="SimpleMath">\(x*y = x^{1/2}(yx^{1/2})\)</span> instead. Our approach is more natural in the sense that the left Bruck loop associated with a left Bruck loop is identical to the original loop.) Associated right Bruck loops are defined dually.</p>
<p><a id="X82FC16F386CE11F1" name="X82FC16F386CE11F1"></a></p>
<h5>8.1-2 IsExactGroupFactorization</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; IsExactGroupFactorization</code>( <var class="Arg">G</var>, <var class="Arg">H1</var>, <var class="Arg">H2</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if (<var class="Arg">G</var>, <var class="Arg">H1</var>, <var class="Arg">H2</var>) is an exact group factorization.</p>
<p>Many right Bol loops can be constructed from exact group factorizations. The triple <span class="SimpleMath">\((G,H_1,H_2)\)</span> is an <em>exact group factorization</em> if <span class="SimpleMath">\(H_1\)</span>, <span class="SimpleMath">\(H_2\)</span> are subgroups of <span class="SimpleMath">\(G\)</span> such that <span class="SimpleMath">\(H_1H_2=G\)</span> and <span class="SimpleMath">\(H_1\cap H_2=1\)</span>.</p>
<p><a id="X7DCA64807F899127" name="X7DCA64807F899127"></a></p>
<h5>8.1-3 RightBolLoopByExactGroupFactorization</h5>
<p>If <span class="SimpleMath">\((G,H_1,H_2)\)</span> is an exact group factorization then <span class="SimpleMath">\((G\times G, H_1\times H_2, T)\)</span> with <span class="SimpleMath">\(T=\{(x,x^{-1})| x\in G\}\)</span> is a loop folder that gives rise to a right Bol loop.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; RightBolLoopByExactGroupFactorization</code>( <var class="Arg">arg</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The right Bol loop constructed from an exact group factorization. The argument <var class="Arg">arg</var> can either be an exact group factorization <code class="code">[G,H1,H2]</code>, or the tuple <code class="code">[G,H]</code>, where <code class="code">H</code> is a regular subgroup of <code class="code">G</code>. We also allow <var class="Arg">arg</var> to be separate entries rather than a list of entries.</p>
<p><a id="X819F82737C2A860D" name="X819F82737C2A860D"></a></p>
<h4>8.2 <span class="Heading">Moufang Modifications</span></h4>
<p>Drápal <a href="chapBib_mj.html#biBDrapalCD">[Drá03]</a> described two prominent families of extensions of Moufang loops. It turns out that these extensions suffice to obtain all nonassociative Moufang loops of order at most 64 if one starts with so-called Chein loops. We call the two constructions <em>Moufang modifications</em>. The library of Moufang loops included in <strong class="pkg">LOOPS</strong> is based on Moufang modifications. See <a href="chapBib_mj.html#biBDrVo">[DV06]</a> for details.</p>
<p><a id="X7B3165C083709831" name="X7B3165C083709831"></a></p>
<h5>8.2-1 LoopByCyclicModification</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LoopByCyclicModification</code>( <var class="Arg">Q</var>, <var class="Arg">S</var>, <var class="Arg">a</var>, <var class="Arg">h</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The cyclic modification of a Moufang loop <var class="Arg">Q</var> obtained from <var class="Arg">S</var>, <var class="Arg">a</var><span class="SimpleMath">\(=\alpha\)</span> and <var class="Arg">h</var> described below.</p>
<p>Assume that <span class="SimpleMath">\(Q\)</span> is a Moufang loop with a normal subloop <span class="SimpleMath">\(S\)</span> such that <span class="SimpleMath">\(Q/S\)</span> is a cyclic group of order <span class="SimpleMath">\(2m\)</span>. Let <span class="SimpleMath">\(h\in S\cap Z(L)\)</span>. Let <span class="SimpleMath">\(\alpha\)</span> be a generator of <span class="SimpleMath">\(Q/S\)</span> and write <span class="SimpleMath">\(Q = \bigcup_{i\in M} \alpha^i\)</span>, where <span class="SimpleMath">\(M=\{-m+1\)</span>, <span class="SimpleMath">\(\dots\)</span>, <span class="SimpleMath">\(m\}\)</span>. Let <span class="SimpleMath">\(\sigma:\mathbb{Z}\to M\)</span> be defined by <span class="SimpleMath">\(\sigma(i)=0\)</span> if <span class="SimpleMath">\(i\in M\)</span>, <span class="SimpleMath">\(\sigma(i)=1\)</span> if <span class="SimpleMath">\(i&gt;m\)</span>, and <span class="SimpleMath">\(\sigma(i)=-1\)</span> if <span class="SimpleMath">\(i&lt;-m+1\)</span>. Introduce a new multiplication <span class="SimpleMath">\(*\)</span> on <span class="SimpleMath">\(Q\)</span> by <span class="SimpleMath">\(x*y = xyh^{\sigma(i+j)}\)</span>, where <span class="SimpleMath">\(x\in \alpha^i\)</span>, <span class="SimpleMath">\(y\in\alpha^j\)</span>, <span class="SimpleMath">\(i\in M\)</span> and <span class="SimpleMath">\(j\in M\)</span>. Then <span class="SimpleMath">\((Q,*)\)</span> is a Moufang loop, a <em>cyclic modification</em> of <span class="SimpleMath">\(Q\)</span>.</p>
<p><a id="X7D7717C587BC2D1E" name="X7D7717C587BC2D1E"></a></p>
<h5>8.2-2 LoopByDihedralModification</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LoopByDihedralModification</code>( <var class="Arg">Q</var>, <var class="Arg">S</var>, <var class="Arg">e</var>, <var class="Arg">f</var>, <var class="Arg">h</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The dihedral modification of a Moufang loop <var class="Arg">Q</var> obtained from <var class="Arg">S</var>, <var class="Arg">e</var>, <var class="Arg">f</var> and <var class="Arg">h</var> as described below.</p>
<p>Let <span class="SimpleMath">\(Q\)</span> be a Moufang loop with a normal subloop <span class="SimpleMath">\(S\)</span> such that <span class="SimpleMath">\(Q/S\)</span> is a dihedral group of order <span class="SimpleMath">\(4m\)</span>, with <span class="SimpleMath">\(m\ge 1\)</span>. Let <span class="SimpleMath">\(M\)</span> and <span class="SimpleMath">\(\sigma\)</span> be defined as in the cyclic case. Let <span class="SimpleMath">\(\beta\)</span>, <span class="SimpleMath">\(\gamma\)</span> be two involutions of <span class="SimpleMath">\(Q/S\)</span> such that <span class="SimpleMath">\(\alpha=\beta\gamma\)</span> generates a cyclic subgroup of <span class="SimpleMath">\(Q/S\)</span> of order <span class="SimpleMath">\(2m\)</span>. Let <span class="SimpleMath">\(e\in\beta\)</span> and <span class="SimpleMath">\(f\in\gamma\)</span> be arbitrary. Then <span class="SimpleMath">\(Q\)</span> can be written as a disjoint union <span class="SimpleMath">\(Q=\bigcup_{i\in M}(\alpha^i\cup e\alpha^i)\)</span>, and also <span class="SimpleMath">\(Q=\bigcup_{i\in M}(\alpha^i\cup \alpha^if)\)</span>. Let <span class="SimpleMath">\(G_0=\bigcup_{i\in M}\alpha^i\)</span>, and <span class="SimpleMath">\(G_1=L\setminus G_0\)</span>. Let <span class="SimpleMath">\(h\in S\cap N(L)\cap Z(G_0)\)</span>. Introduce a new multiplication <span class="SimpleMath">\(*\)</span> on <span class="SimpleMath">\(Q\)</span> by <span class="SimpleMath">\(x*y = xyh^{(-1)^r\sigma(i+j)}\)</span>, where <span class="SimpleMath">\(x\in\alpha^i\cup e\alpha^i\)</span>, <span class="SimpleMath">\(y\in\alpha^j\cup \alpha^jf\)</span>, <span class="SimpleMath">\(i\in M\)</span>, <span class="SimpleMath">\(j\in M\)</span>, <span class="SimpleMath">\(y\in G_r\)</span> and <span class="SimpleMath">\(r\in\{0,1\}\)</span>. Then <span class="SimpleMath">\((Q,*)\)</span> is a Moufang loop, a <em>dihedral modification</em> of <span class="SimpleMath">\(Q\)</span>.</p>
<p><a id="X7CC6CDB786E9BBA0" name="X7CC6CDB786E9BBA0"></a></p>
<h5>8.2-3 LoopMG2</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; LoopMG2</code>( <var class="Arg">G</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: The Chein loop constructed from a group <var class="Arg">G</var>.</p>
<p>Let <span class="SimpleMath">\(G\)</span> be a group. Let <span class="SimpleMath">\(\overline{G}=\{\overline{g}|g\in G\}\)</span> be a disjoint copy of elements of <span class="SimpleMath">\(G\)</span>. Define multiplication <span class="SimpleMath">\(*\)</span> on <span class="SimpleMath">\(Q=G\cup \overline{G}\)</span> by <span class="SimpleMath">\(g*h = gh\)</span>, <span class="SimpleMath">\(g*\overline{h}=\overline{hg}\)</span>, <span class="SimpleMath">\(\overline{g}*h = \overline{gh^{-1}}\)</span> and <span class="SimpleMath">\(\overline{g}*\overline{h}=h^{-1}g\)</span>, where <span class="SimpleMath">\(g\)</span>, <span class="SimpleMath">\(h\in G\)</span>. Then <span class="SimpleMath">\((Q,*)=M(G,2)\)</span> is a so-called <em>Chein loop</em>, which is always a Moufang loop, and it is associative if and only if <span class="SimpleMath">\(G\)</span> is commutative.</p>
<p><a id="X83E73A767D79FAFD" name="X83E73A767D79FAFD"></a></p>
<h4>8.3 <span class="Heading">Triality for Moufang Loops</span></h4>
<p>Let <span class="SimpleMath">\(G\)</span> be a group and <span class="SimpleMath">\(\sigma\)</span>, <span class="SimpleMath">\(\rho\)</span> be automorphisms of <span class="SimpleMath">\(G\)</span> satisfying <span class="SimpleMath">\(\sigma^2 = \rho^3 = (\sigma \rho)^2 = 1\)</span>. Below we write automorphisms as exponents and <span class="SimpleMath">\([g,\sigma]\)</span> for <span class="SimpleMath">\(g^{-1}g^\sigma\)</span>. We say that the triple <span class="SimpleMath">\((G,\rho,\sigma)\)</span> is a <em>group with triality</em> if <span class="SimpleMath">\([g, \sigma] [g,\sigma]^\rho [g,\sigma]^{\rho^2} =1\)</span> holds for all <span class="SimpleMath">\(g \in G\)</span>. It is known that one can associate a group with triality <span class="SimpleMath">\((G,\rho,\sigma)\)</span> in a canonical way with a Moufang loop <span class="SimpleMath">\(Q\)</span>. See <a href="chapBib_mj.html#biBNaVo2003">[NV03]</a> for more details.</p>
<p>For any Moufang loop <span class="SimpleMath">\(Q\)</span>, we can calculate the triality group as a permutation group acting on <span class="SimpleMath">\(3|Q|\)</span> points. If the multiplication group of <span class="SimpleMath">\(Q\)</span> is polycyclic, then we can also represent the triality group as a pc group. In both cases, the automorphisms <span class="SimpleMath">\(\sigma\)</span> and <span class="SimpleMath">\(\rho\)</span> are in the same family as the elements of <span class="SimpleMath">\(G\)</span>.</p>
<p><a id="X7DB4DE647F6F56F0" name="X7DB4DE647F6F56F0"></a></p>
<h5>8.3-1 TrialityPermGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; TrialityPermGroup</code>( <var class="Arg">Q</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: A record with components <code class="code">G</code>, <code class="code">rho</code>, <code class="code">sigma</code>, where <code class="code">G</code> is the canonical group with triality associated with a Moufang loop <var class="Arg">Q</var>, and <code class="code">rho</code>, <code class="code">sigma</code> are the corresponding triality automorphisms.</p>
<p><a id="X82CC977085DFDFE8" name="X82CC977085DFDFE8"></a></p>
<h5>8.3-2 TrialityPcGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; TrialityPcGroup</code>( <var class="Arg">Q</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>This is a variation of <code class="code">TrialityPermGroup</code> in which <code class="code">G</code> is returned as a pc group.</p>
<p><a id="X841ED66B8084AA73" name="X841ED66B8084AA73"></a></p>
<h4>8.4 <span class="Heading">Realizing Groups as Multiplication Groups of Loops</span></h4>
<p>It is difficult to determine which groups can occur as multiplication groups of loops.</p>
<p>The following operations search for loops whose multiplication groups are contained within a specified transitive permutation group <var class="Arg">G</var>. In all these operations, one can speed up the search by increasing the optional argument <var class="Arg">depth</var>, the price being a much higher memory consumption. The argument <var class="Arg">depth</var> is optimally chosen if in the permutation group <var class="Arg">G</var> there are not many permutations fixing <var class="Arg">depth</var> elements. It is safe to omit the argument or set it equal to 2.</p>
<p>The optional argument <var class="Arg">infolevel</var> determines the amount of information displayed during the search. With <code class="code"><var class="Arg">infolevel</var>=0</code>, no information is provided. With <code class="code"><var class="Arg">infolevel</var>=1</code>, you get some information on timing and hits. With <code class="code"><var class="Arg">infolevel</var>=2</code>, the results are printed as well.</p>
<p><a id="X804F40087DD1225D" name="X804F40087DD1225D"></a></p>
<h5>8.4-1 AllLoopTablesInGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; AllLoopTablesInGroup</code>( <var class="Arg">G</var>[, <var class="Arg">depth</var>[, <var class="Arg">infolevel</var>]] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: All Cayley tables of loops whose multiplication group is contained in the transitive permutation group <var class="Arg">G</var>.</p>
<p><a id="X7854C8E382DC8E8B" name="X7854C8E382DC8E8B"></a></p>
<h5>8.4-2 AllProperLoopTablesInGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; AllProperLoopTablesInGroup</code>( <var class="Arg">G</var>[, <var class="Arg">depth</var>[, <var class="Arg">infolevel</var>]] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: All Cayley tables of nonassociative loops whose multiplication group is contained in the transitive permutation group <var class="Arg">G</var>.</p>
<p><a id="X7BFFC66A824BA6AA" name="X7BFFC66A824BA6AA"></a></p>
<h5>8.4-3 OneLoopTableInGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; OneLoopTableInGroup</code>( <var class="Arg">G</var>[, <var class="Arg">depth</var>[, <var class="Arg">infolevel</var>]] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A Cayley table of a loop whose multiplication group is contained in the transitive permutation group <var class="Arg">G</var>.</p>
<p><a id="X84C5A76585B335FF" name="X84C5A76585B335FF"></a></p>
<h5>8.4-4 OneProperLoopTableInGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; OneProperLoopTableInGroup</code>( <var class="Arg">G</var>[, <var class="Arg">depth</var>[, <var class="Arg">infolevel</var>]] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A Cayley table of a nonassociative loop whose multiplication group is contained in the transitive permutation group <var class="Arg">G</var>.</p>
<p><a id="X7E5F1C2879358EEF" name="X7E5F1C2879358EEF"></a></p>
<h5>8.4-5 AllLoopsWithMltGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; AllLoopsWithMltGroup</code>( <var class="Arg">G</var>[, <var class="Arg">depth</var>[, <var class="Arg">infolevel</var>]] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: A list of all loops (given as sections) whose multiplication group is equal to the transitive permutation group <var class="Arg">G</var>.</p>
<p><a id="X8266DE05824226E6" name="X8266DE05824226E6"></a></p>
<h5>8.4-6 OneLoopWithMltGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; OneLoopWithMltGroup</code>( <var class="Arg">G</var>[, <var class="Arg">depth</var>[, <var class="Arg">infolevel</var>]] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: One loop (given as a section) whose multiplication group is equal to the transitive permutation group <var class="Arg">G</var>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">g:=PGL(3,3); </span>
Group([ (6,7)(8,11)(9,13)(10,12), (1,2,5,7,13,3,8,6,10,9,12,4,11) ])
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">a:=AllLoopTablesInGroup(g,3,0);; Size(a); </span>
56
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">a:=AllLoopsWithMltGroup(g,3,0);; Size(a); </span>
52
</pre></div>
<div class="chlinkprevnextbot">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap7_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chap9_mj.html">[Next Chapter]</a>&nbsp; </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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</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>

324
doc/chap9.txt Normal file
View file

@ -0,0 +1,324 @@
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 Moufang Loops
The library named Moufang contains all nonassociative Moufang loops of order
nle 64 and n∈{81,243}.
9.3-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.4 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.4-1 CodeLoop
CodeLoop( n, m )  function
Returns: The mth code loop of order n in the library.
9.5 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.5-1 SteinerLoop
SteinerLoop( n, m )  function
Returns: The mth Steiner loop of order n in the library.
9.6 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.6-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.6-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 nonassociative conjugacy closed loops of
order nle 27 and also of orders 2p and p^2 for all primes 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.6-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.7 Small Loops
The library named small contains all nonassociative loops of order 5 and 6.
There are 5 and 107 such loops, respectively.
9.7-1 SmallLoop
SmallLoop( n, m )  function
Returns: The mth loop of order n in the library.
9.8 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.8-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.9 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.9-1 NilpotentLoop
NilpotentLoop( n, m )  function
Returns: The mth nilpotent loop of order n in the library.
9.10 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),
all commutative automorphic loops of order 3, 9, 27 and 81 (there are 1, 2,
7 and 72 such loops, respectively, including abelian groups), and
commutative automorphic loops Q of order 243 possessing a central subloop S
of order 3 such that Q/S is not the elementary abelian group of order 81
(there are 118451 such loops).
9.10-1 AutomorphicLoop
AutomorphicLoop( n, m )  function
Returns: The mth automorphic loop of order n in the library.
9.11 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.11-1 InterestingLoop
InterestingLoop( n, m )  function
Returns: The mth interesting loop of order n in the library.
9.12 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.12-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.

407
doc/chap9_mj.html Normal file
View file

@ -0,0 +1,407 @@
<?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="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (Loops) - Chapter 9: Libraries of Loops</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="chap9" 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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap8_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chapA_mj.html">[Next Chapter]</a>&nbsp; </div>
<p id="mathjaxlink" class="pcenter"><a href="chap9.html">[MathJax off]</a></p>
<p><a id="X7BF3EE6E7953560D" name="X7BF3EE6E7953560D"></a></p>
<div class="ChapSects"><a href="chap9_mj.html#X7BF3EE6E7953560D">9 <span class="Heading">Libraries of Loops</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X874DFEAA79B3377C">9.1 <span class="Heading">A Typical Library</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X849865D6786EEF9B">9.1-1 LibraryLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X78C4B8757902D49F">9.1-2 MyLibraryLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X7A64372E81E713B4">9.1-3 DisplayLibraryInfo</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X7DF21BD685FBF258">9.2 <span class="Heading">Left Bol Loops and Right Bol Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X7EE99F647C537994">9.2-1 LeftBolLoop</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X8774304282654C58">9.2-2 RightBolLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X7953702D84E60AF4">9.3 <span class="Heading">Moufang Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X81E82098822543EE">9.3-1 MoufangLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X7BCA6BCB847F79DC">9.4 <span class="Heading">Code Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X7DB4D3B27BB4D7EE">9.4-1 CodeLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X84E941EE7846D3EE">9.5 <span class="Heading">Steiner Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X87C235457E859AF4">9.5-1 SteinerLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X867E5F0783FEB8B5">9.6 <span class="Heading">Conjugacy Closed Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X806B2DE67990E42F">9.6-1 <span class="Heading">RCCLoop and RightConjugacyClosedLoop</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X80AB8B107D55FB19">9.6-2 <span class="Heading">LCCLoop and LeftConjugacyClosedLoop</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X798BC601843E8916">9.6-3 <span class="Heading">CCLoop and ConjugacyClosedLoop</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X7E3A8F2C790F2CA1">9.7 <span class="Heading">Small Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X7C6EE23E84CD87D3">9.7-1 SmallLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X8135C8FD8714C606">9.8 <span class="Heading">Paige Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X7FCF4D6B7AD66D74">9.8-1 PaigeLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X86695C577A4D1784">9.9 <span class="Heading">Nilpotent Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X7A9C960D86E2AD28">9.9-1 NilpotentLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X793B22EA8643C667">9.10 <span class="Heading">Automorphic Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X784FFA9E7FDA9F43">9.10-1 AutomorphicLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X843BD73F788049F7">9.11 <span class="Heading">Interesting Loops</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X87F24AD3811910D3">9.11-1 InterestingLoop</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss">&nbsp;</span><a href="chap9_mj.html#X864839227D5C0A90">9.12 <span class="Heading">Libraries of Loops Up To Isotopism</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap9_mj.html#X850C4C01817A098D">9.12-1 ItpSmallLoop</a></span>
</div></div>
</div>
<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 id="X874DFEAA79B3377C" name="X874DFEAA79B3377C"></a></p>
<h4>9.1 <span class="Heading">A Typical Library</span></h4>
<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 <code class="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>
<p><a id="X849865D6786EEF9B" name="X849865D6786EEF9B"></a></p>
<h5>9.1-1 LibraryLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#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>
<p><a id="X78C4B8757902D49F" name="X78C4B8757902D49F"></a></p>
<h5>9.1-2 MyLibraryLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#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>
<p><a id="X7A64372E81E713B4" name="X7A64372E81E713B4"></a></p>
<h5>9.1-3 DisplayLibraryInfo</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#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>
<p><a id="X7DF21BD685FBF258" name="X7DF21BD685FBF258"></a></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&gt;q&gt;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>
<p><a id="X7EE99F647C537994" name="X7EE99F647C537994"></a></p>
<h5>9.2-1 LeftBolLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#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>
<p><a id="X8774304282654C58" name="X8774304282654C58"></a></p>
<h5>9.2-2 RightBolLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#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>
<p><a id="X7953702D84E60AF4" name="X7953702D84E60AF4"></a></p>
<h4>9.3 <span class="Heading">Moufang Loops</span></h4>
<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>
<p><a id="X81E82098822543EE" name="X81E82098822543EE"></a></p>
<h5>9.3-1 MoufangLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#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 class="center">\[
\begin{array}{r|rrrrrrrrrrrrrrrrrr}
order&amp;12&amp;16&amp;20&amp;24&amp;28&amp;32&amp;36&amp;40&amp;42&amp;44&amp;48&amp;52&amp;54&amp;56&amp;60&amp;64&amp;81&amp;243\cr
loops&amp;1 &amp;5 &amp;1 &amp;5 &amp;1 &amp;71&amp;4 &amp;5 &amp;1 &amp;1 &amp;51&amp;1 &amp;2 &amp;4 &amp;5 &amp;4262&amp; 5 &amp;72
\end{array}
\]</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><a id="X7BCA6BCB847F79DC" name="X7BCA6BCB847F79DC"></a></p>
<h4>9.4 <span class="Heading">Code Loops</span></h4>
<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 small code loops.</p>
<p><a id="X7DB4D3B27BB4D7EE" name="X7DB4D3B27BB4D7EE"></a></p>
<h5>9.4-1 CodeLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#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>th code loop of order <var class="Arg">n</var> in the library.</p>
<p><a id="X84E941EE7846D3EE" name="X84E941EE7846D3EE"></a></p>
<h4>9.5 <span class="Heading">Steiner Loops</span></h4>
<p>Here is how the libary named <em>Steiner</em> is described within <strong class="pkg">LOOPS</strong>:</p>
<div class="example"><pre>
<span class="GAPprompt">gap&gt;</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>
<p><a id="X87C235457E859AF4" name="X87C235457E859AF4"></a></p>
<h5>9.5-1 SteinerLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#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><a id="X867E5F0783FEB8B5" name="X867E5F0783FEB8B5"></a></p>
<h4>9.6 <span class="Heading">Conjugacy Closed Loops</span></h4>
<p>The library named <em>RCC</em> contains all nonassocitive 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>
<p class="center">\[
\begin{array}{r|rrrrrrrrrrrrrrrr}
order &amp;6&amp; 8&amp;9&amp;10&amp; 12&amp;14&amp;15&amp; 16&amp; 18&amp; 20&amp;\cr
loops &amp;3&amp;19&amp;5&amp;16&amp;155&amp;97&amp; 17&amp;6317&amp;1901&amp;8248&amp;\cr
\hline
order &amp;21&amp; 22&amp; 24&amp; 25&amp; 26&amp; 27\cr
loops &amp;119&amp;10487&amp;471995&amp; 119&amp;151971&amp;152701
\end{array}
\]</p>
<p><a id="X806B2DE67990E42F" name="X806B2DE67990E42F"></a></p>
<h5>9.6-1 <span class="Heading">RCCLoop and RightConjugacyClosedLoop</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; RCCLoop</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">&#8227; RightConjugacyClosedLoop</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 conjugacy closed loop of order <var class="Arg">n</var> in the library.</p>
<p><a id="X80AB8B107D55FB19" name="X80AB8B107D55FB19"></a></p>
<h5>9.6-2 <span class="Heading">LCCLoop and LeftConjugacyClosedLoop</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#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">&#8227; LeftConjugacyClosedLoop</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 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 nonassociative conjugacy closed loops of order <span class="SimpleMath">\(n\le 27\)</span> and also of orders <span class="SimpleMath">\(2p\)</span> and <span class="SimpleMath">\(p^2\)</span> for all primes <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 <span class="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>
<p><a id="X798BC601843E8916" name="X798BC601843E8916"></a></p>
<h5>9.6-3 <span class="Heading">CCLoop and ConjugacyClosedLoop</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#8227; CCLoop</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">&#8227; ConjugacyClosedLoop</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 conjugacy closed loop of order <var class="Arg">n</var> in the library.</p>
<p><a id="X7E3A8F2C790F2CA1" name="X7E3A8F2C790F2CA1"></a></p>
<h4>9.7 <span class="Heading">Small Loops</span></h4>
<p>The library named <em>small</em> contains all nonassociative loops of order 5 and 6. There are 5 and 107 such loops, respectively.</p>
<p><a id="X7C6EE23E84CD87D3" name="X7C6EE23E84CD87D3"></a></p>
<h5>9.7-1 SmallLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#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><a id="X8135C8FD8714C606" name="X8135C8FD8714C606"></a></p>
<h4>9.8 <span class="Heading">Paige Loops</span></h4>
<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>
<p><a id="X7FCF4D6B7AD66D74" name="X7FCF4D6B7AD66D74"></a></p>
<h5>9.8-1 PaigeLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#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><a id="X86695C577A4D1784" name="X86695C577A4D1784"></a></p>
<h4>9.9 <span class="Heading">Nilpotent Loops</span></h4>
<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, 8 of 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 123794003928541545927226368 nilpotent loops of order 22.</p>
<p><a id="X7A9C960D86E2AD28" name="X7A9C960D86E2AD28"></a></p>
<h5>9.9-1 NilpotentLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#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><a id="X793B22EA8643C667" name="X793B22EA8643C667"></a></p>
<h4>9.10 <span class="Heading">Automorphic Loops</span></h4>
<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), all commutative automorphic loops of order 3, 9, 27 and 81 (there are 1, 2, 7 and 72 such loops, respectively, including abelian groups), and commutative automorphic loops <span class="SimpleMath">\(Q\)</span> of order 243 possessing a central subloop <span class="SimpleMath">\(S\)</span> of order 3 such that <span class="SimpleMath">\(Q/S\)</span> is not the elementary abelian group of order 81 (there are 118451 such loops).</p>
<p><a id="X784FFA9E7FDA9F43" name="X784FFA9E7FDA9F43"></a></p>
<h5>9.10-1 AutomorphicLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#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><a id="X843BD73F788049F7" name="X843BD73F788049F7"></a></p>
<h4>9.11 <span class="Heading">Interesting Loops</span></h4>
<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>
<p><a id="X87F24AD3811910D3" name="X87F24AD3811910D3"></a></p>
<h5>9.11-1 InterestingLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#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>
<p><a id="X864839227D5C0A90" name="X864839227D5C0A90"></a></p>
<h4>9.12 <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>
<p><a id="X850C4C01817A098D" name="X850C4C01817A098D"></a></p>
<h5>9.12-1 ItpSmallLoop</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#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>th small loop of order <var class="Arg">n</var> up to isotopism in the library.</p>
<div class="example"><pre>
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">SmallLoop( 6, 14 ); </span>
&lt;small loop 6/14&gt;
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">ItpSmallLoop( 6, 14 ); </span>
&lt;small loop 6/42&gt;
<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">LibraryLoop( "itp small", 6, 14 ); </span>
&lt;small loop 6/42&gt;
</pre></div>
<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 14th small loop of order 6 up to isotopism is in fact the 42nd small loop of order 6 up to isomorphism.</p>
<div class="chlinkprevnextbot">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap8_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chapA_mj.html">[Next Chapter]</a>&nbsp; </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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</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>

50
doc/chapA.txt Normal file
View file

@ -0,0 +1,50 @@
A Files
Below is a list of all relevant files forming the LOOPS package. Some
technical files are not included. A typical user will not need to know any
of this information. All paths are relative to the pkg/loops folder.
../README.loops (installation and usage instructions)
init.g (declarations)
PackageInfo.g (loading info for GAP 4.4)
read.g (implementations)
data/automorphic.tbl (library of automorphic loops)
data/automorphic/*.* (addition files for the library of automorphic loops)
data/cc.tbl (library of conjugacy closed loops)
data/code.tbl (library of code loops)
data/interesting.tbl (library of interesting loops)
data/itp_small.tbl (library of small loops up to isotopism)
data/leftbol.tbl (library of left Bol loops)
data/moufang.tbl (library of Moufang loops)
data/nilpotent.tbl (library of small nilpotent loops)
data/rcc.tbl (library of right conjugacy closed loops)
data/rcc/*.* (additional files for the library of right conjugacy closed
loops)
data/paige.tbl (library of Paige loops)
data/small.tbl (library of small loops)
data/steiner.tbl (library of Steiner loops)
doc/*.* (all documentation files)
doc/loops.xml (the main documentation file for GAPDoc)
doc/loops.bib (the main bibliography file for documentation)
gap/banner.g (banner of LOOPS)
gap/bol_core_methods.gd .gi (core methods for Bol loops)
gap/classes.gd .gi (properties of quasigroups and loops)
gap/convert.gd .gi (methods for data conversion and compression)
gap/core_methods.gd .gi (core methods for quasigroups and loops)
gap/elements.gd .gi (elements and basic arithmetic operations)
gap/examples.gd .gi (methods for libraries of loops)
gap/extensions.gd .gi (methods for extensions of loops)
gap/iso.gd .gi (methods for isomorphisms and isotopisms of loops)
gap/memory.gd .gi (memory management)
gap/mlt_search.gd .gi (realizing groups as multiplication groups of loops)
gap/moufang_modifications.gd .gi (methods for Moufang modifications)
gap/moufang_triality.gd .gi (methods for triality of Moufang loops)
gap/quasigroups.gd .gi (representing, creating and displaying quasigroups)
gap/random.gd .gi (random quasigroups and loops)
tst/bol.tst (test file for Bol loops)
tst/core_methods.tst (test file for core methods)
tst/iso.tst (test file for isomorphisms and automorphisms)
tst/lib.tst (test file for libraries of loops, except Moufang loops)
tst/nilpot.tst (test file for nilpotency and triality)
tst/testall.g (batch for all tets files)

43
doc/chapA_mj.html Normal file
View file

@ -0,0 +1,43 @@
<?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="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (Loops) - Appendix A: Files</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="chapA" 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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap9_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chapB_mj.html">[Next Chapter]</a>&nbsp; </div>
<p id="mathjaxlink" class="pcenter"><a href="chapA.html">[MathJax off]</a></p>
<p><a id="X7BC4571A79FFB7D0" name="X7BC4571A79FFB7D0"></a></p>
<div class="ChapSects"><a href="chapA_mj.html#X7BC4571A79FFB7D0">A <span class="Heading">Files</span></a>
</div>
<h3>A <span class="Heading">Files</span></h3>
<p>Below is a list of all relevant files forming the <strong class="pkg">LOOPS</strong> package. Some technical files are not included. A typical user will not need to know any of this information. All paths are relative to the <code class="file">pkg/loops</code> folder. <br /> <br /> <code class="file">../README.loops</code> (installation and usage instructions) <br /> <code class="file">init.g</code> (declarations) <br /> <code class="file">PackageInfo.g</code> (loading info for GAP 4.4) <br /> <code class="file">read.g</code> (implementations) <br /> <code class="file">data/automorphic.tbl</code> (library of automorphic loops) <br /> <code class="file">data/automorphic/*.*</code> (addition files for the library of automorphic loops) <br /> <code class="file">data/cc.tbl</code> (library of conjugacy closed loops) <br /> <code class="file">data/code.tbl</code> (library of code loops) <br /> <code class="file">data/interesting.tbl</code> (library of interesting loops) <br /> <code class="file">data/itp_small.tbl</code> (library of small loops up to isotopism) <br /> <code class="file">data/leftbol.tbl</code> (library of left Bol loops) <br /> <code class="file">data/moufang.tbl</code> (library of Moufang loops) <br /> <code class="file">data/nilpotent.tbl</code> (library of small nilpotent loops) <br /> <code class="file">data/rcc.tbl</code> (library of right conjugacy closed loops) <br /> <code class="file">data/rcc/*.*</code> (additional files for the library of right conjugacy closed loops) <br /> <code class="file">data/paige.tbl</code> (library of Paige loops) <br /> <code class="file">data/small.tbl</code> (library of small loops) <br /> <code class="file">data/steiner.tbl</code> (library of Steiner loops) <br /> <code class="file">doc/*.*</code> (all documentation files) <br /> <code class="file">doc/loops.xml</code> (the main documentation file for GAPDoc) <br /> <code class="file">doc/loops.bib</code> (the main bibliography file for documentation) <br /> <code class="file">gap/banner.g</code> (banner of LOOPS) <br /> <code class="file">gap/bol_core_methods.gd .gi</code> (core methods for Bol loops) <br /> <code class="file">gap/classes.gd .gi</code> (properties of quasigroups and loops) <br /> <code class="file">gap/convert.gd .gi</code> (methods for data conversion and compression) <br /> <code class="file">gap/core_methods.gd .gi</code> (core methods for quasigroups and loops) <br /> <code class="file">gap/elements.gd .gi</code> (elements and basic arithmetic operations) <br /> <code class="file">gap/examples.gd .gi</code> (methods for libraries of loops) <br /> <code class="file">gap/extensions.gd .gi</code> (methods for extensions of loops) <br /> <code class="file">gap/iso.gd .gi</code> (methods for isomorphisms and isotopisms of loops) <br /> <code class="file">gap/memory.gd .gi</code> (memory management) <br /> <code class="file">gap/mlt_search.gd .gi</code> (realizing groups as multiplication groups of loops) <br /> <code class="file">gap/moufang_modifications.gd .gi</code> (methods for Moufang modifications) <br /> <code class="file">gap/moufang_triality.gd .gi</code> (methods for triality of Moufang loops) <br /> <code class="file">gap/quasigroups.gd .gi</code> (representing, creating and displaying quasigroups) <br /> <code class="file">gap/random.gd .gi</code> (random quasigroups and loops) <br /> <code class="file">tst/bol.tst</code> (test file for Bol loops) <br /> <code class="file">tst/core_methods.tst</code> (test file for core methods) <br /> <code class="file">tst/iso.tst</code> (test file for isomorphisms and automorphisms) <br /> <code class="file">tst/lib.tst</code> (test file for libraries of loops, except Moufang loops) <br /> <code class="file">tst/nilpot.tst</code> (test file for nilpotency and triality) <br /> <code class="file">tst/testall.g</code> (batch for all tets files)</p>
<div class="chlinkprevnextbot">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chap9_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chapB_mj.html">[Next Chapter]</a>&nbsp; </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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</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>

128
doc/chapB.txt Normal file
View file

@ -0,0 +1,128 @@
B Filters
Many implications among properties of loops are built directly into LOOPS. A
sizeable portion of these properties are of trivial character or are based
on definitions (e.g., alternative loops = left alternative loops + right
alternative loops). The remaining implications are theorems.
All filters of LOOPS are summarized below, using the GAP convention that the
property on the left is implied by the property (properties) on the right.
( IsExtraLoop, IsAssociative and IsLoop )
( IsExtraLoop, IsCodeLoop )
( IsCCLoop, IsCodeLoop )
( HasTwosidedInverses, IsPowerAssociative and IsLoop )
( IsPowerAlternative, IsDiassociative )
( IsFlexible, IsDiassociative )
( HasAntiautomorphicInverseProperty, HasAutomorphicInverseProperty and
IsCommutative )
( HasAutomorphicInverseProperty, HasAntiautomorphicInverseProperty and
IsCommutative )
( HasLeftInverseProperty, HasInverseProperty )
( HasRightInverseProperty, HasInverseProperty )
( HasWeakInverseProperty, HasInverseProperty )
( HasAntiautomorphicInverseProperty, HasInverseProperty )
( HasTwosidedInverses, HasAntiautomorphicInverseProperty )
( HasInverseProperty, HasLeftInverseProperty and IsCommutative )
( HasInverseProperty, HasRightInverseProperty and IsCommutative )
( HasInverseProperty, HasLeftInverseProperty and HasRightInverseProperty )
( HasInverseProperty, HasLeftInverseProperty and HasWeakInverseProperty )
( HasInverseProperty, HasRightInverseProperty and HasWeakInverseProperty )
( HasInverseProperty, HasLeftInverseProperty and
HasAntiautomorphicInverseProperty )
( HasInverseProperty, HasRightInverseProperty and
HasAntiautomorphicInverseProperty )
( HasInverseProperty, HasWeakInverseProperty and
HasAntiautomorphicInverseProperty )
( HasTwosidedInverses, HasLeftInverseProperty )
( HasTwosidedInverses, HasRightInverseProperty )
( HasTwosidedInverses, IsFlexible and IsLoop )
( IsMoufangLoop, IsExtraLoop )
( IsCLoop, IsExtraLoop )
( IsExtraLoop, IsMoufangLoop and IsLeftNuclearSquareLoop )
( IsExtraLoop, IsMoufangLoop and IsMiddleNuclearSquareLoop )
( IsExtraLoop, IsMoufangLoop and IsRightNuclearSquareLoop )
( IsLeftBolLoop, IsMoufangLoop )
( IsRightBolLoop, IsMoufangLoop )
( IsDiassociative, IsMoufangLoop )
( IsMoufangLoop, IsLeftBolLoop and IsRightBolLoop )
( IsLCLoop, IsCLoop )
( IsRCLoop, IsCLoop )
( IsDiassociative, IsCLoop and IsFlexible)
( IsCLoop, IsLCLoop and IsRCLoop )
( IsRightBolLoop, IsLeftBolLoop and IsCommutative )
( IsLeftPowerAlternative, IsLeftBolLoop )
( IsLeftBolLoop, IsRightBolLoop and IsCommutative )
( IsRightPowerAlternative, IsRightBolLoop )
( IsLeftPowerAlternative, IsLCLoop )
( IsLeftNuclearSquareLoop, IsLCLoop )
( IsMiddleNuclearSquareLoop, IsLCLoop )
( IsRCLoop, IsLCLoop and IsCommutative )
( IsRightPowerAlternative, IsRCLoop )
( IsRightNuclearSquareLoop, IsRCLoop )
( IsMiddleNuclearSquareLoop, IsRCLoop )
( IsLCLoop, IsRCLoop and IsCommutative )
( IsRightNuclearSquareLoop, IsLeftNuclearSquareLoop and IsCommutative )
( IsLeftNuclearSquareLoop, IsRightNuclearSquareLoop and IsCommutative )
( IsLeftNuclearSquareLoop, IsNuclearSquareLoop )
( IsRightNuclearSquareLoop, IsNuclearSquareLoop )
( IsMiddleNuclearSquareLoop, IsNuclearSquareLoop )
( IsNuclearSquareLoop, IsLeftNuclearSquareLoop and IsRightNuclearSquareLoop
 and IsMiddleNuclearSquareLoop )
( IsFlexible, IsCommutative )
( IsRightAlternative, IsLeftAlternative and IsCommutative )
( IsLeftAlternative, IsRightAlternative and IsCommutative )
( IsLeftAlternative, IsAlternative )
( IsRightAlternative, IsAlternative )
( IsAlternative, IsLeftAlternative and IsRightAlternative )
( IsLeftAlternative, IsLeftPowerAlternative )
( HasLeftInverseProperty, IsLeftPowerAlternative )
( IsPowerAssociative, IsLeftPowerAlternative )
( IsRightAlternative, IsRightPowerAlternative )
( HasRightInverseProperty, IsRightPowerAlternative )
( IsPowerAssociative, IsRightPowerAlternative )
( IsLeftPowerAlternative, IsPowerAlternative )
( IsRightPowerAlternative, IsPowerAlternative )
( IsAssociative, IsLCCLoop and IsCommutative )
( IsExtraLoop, IsLCCLoop and IsMoufangLoop )
( IsAssociative, IsRCCLoop and IsCommutative )
( IsExtraLoop, IsRCCLoop and IsMoufangLoop )
( IsLCCLoop, IsCCLoop )
( IsRCCLoop, IsCCLoop )
( IsCCLoop, IsLCCLoop and IsRCCLoop )
( IsOsbornLoop, IsMoufangLoop )
( IsOsbornLoop, IsCCLoop )
( HasAutomorphicInverseProperty, IsLeftBruckLoop )
( IsLeftBolLoop, IsLeftBruckLoop )
( IsRightBruckLoop, IsLeftBruckLoop and IsCommutative )
( IsLeftBruckLoop, IsLeftBolLoop and HasAutomorphicInverseProperty )
( HasAutomorphicInverseProperty, IsRightBruckLoop )
( IsRightBolLoop, IsRightBruckLoop )
( IsLeftBruckLoop, IsRightBruckLoop and IsCommutative )
( IsRightBruckLoop, IsRightBolLoop and HasAutomorphicInverseProperty )
( IsCommutative, IsSteinerLoop )
( IsCLoop, IsSteinerLoop )
( IsLeftAutomorphicLoop, IsAutomorphicLoop )
( IsRightAutomorphicLoop, IsAutomorphicLoop )
( IsMiddleAutomorphicLoop, IsAutomorphicLoop )
( IsMiddleAutomorphicLoop, IsCommutative )
( IsAutomorphicLoop, IsLeftAutomorphicLoop and IsCommutative )
( IsAutomorphicLoop, IsRightAutomorphicLoop and IsCommutative )
( IsLeftAutomorphicLoop, IsRightAutomorphicLoop and
HasAntiautomorphicInverseProperty )
( IsRightAutomorphicLoop, IsLeftAutomorphicLoop and
HasAntiautomorphicInverseProperty )
( IsFlexible, IsMiddleAutomorphicLoop )
( HasAntiautomorphicInverseProperty, IsFlexible and IsLeftAutomorphicLoop )
( HasAntiautomorphicInverseProperty, IsFlexible and IsRightAutomorphicLoop )
( IsMoufangLoop, IsAutomorphicLoop and IsLeftAlternative )
( IsMoufangLoop, IsAutomorphicLoop and IsRightAlternative )
( IsMoufangLoop, IsAutomorphicLoop and HasLeftInverseProperty )
( IsMoufangLoop, IsAutomorphicLoop and HasRightInverseProperty )
( IsMoufangLoop, IsAutomorphicLoop and HasWeakInverseProperty )
( IsLeftAutomorphicLoop, IsLeftBruckLoop )
( IsLeftAutomorphicLoop, IsLCCLoop )
( IsRightAutomorphicLoop, IsRightBruckLoop )
( IsRightAutomorphicLoop, IsRCCLoop )
( IsAutomorphicLoop, IsCommutative and IsMoufangLoop )

45
doc/chapB_mj.html Normal file

File diff suppressed because one or more lines are too long

103
doc/chapBib.txt Normal file
View file

@ -0,0 +1,103 @@
References
[Art15] Artic, K., On conjugacy closed loops and conjugacy closed loop
folders, Ph.D. thesis, RWTH Aachen University (2015).
[Art59] Artzy, R., On automorphic-inverse properties in loops, Proc. Amer.
Math. Soc., 10 (1959), 588591.
[Bru58] Bruck, R. H., A survey of binary systems, Springer Verlag,
Ergebnisse der Mathematik und ihrer Grenzgebiete. Neue Folge, Heft 20.
Reihe: Gruppentheorie, Berlin (1958), viii+185 pages.
[BP56] Bruck, R. H. and Paige, L. J., Loops whose inner mappings are
automorphisms, Ann. of Math. (2), 63 (1956), 308323.
[CR99] Colbourn, C. J. and Rosa, A., Triple systems, The Clarendon Press
Oxford University Press, Oxford Mathematical Monographs, New York (1999),
xvi+560 pages.
[CD05] Csörgő, P. and Drápal, A., Left conjugacy closed loops of nilpotency
class two, Results Math., 47, 3-4 (2005), 242265.
[DV09] Daly, D. and Vojtěchovský, P., Enumeration of nilpotent loops via
cohomology, J. Algebra, 322, 11 (2009), 40804098.
[BGV12] De Barros, D. A. S., Grishkov, A. and Vojtěchovský, P., Commutative
automorphic loops of order p^3, J. Algebra Appl., 11, 5 (2012), 1250100, 15.
[Drá03] Drápal, A., Cyclic and dihedral constructions of even order,
Comment. Math. Univ. Carolin., 44, 4 (2003), 593614.
[DV06] Drápal, A. and Vojtěchovský, P., Moufang loops that share associator
and three quarters of their multiplication tables, Rocky Mountain J. Math.,
36, 2 (2006), 425455.
[Fen69] Fenyves, F., Extra loops. II. On loops with identities of
Bol-Moufang type, Publ. Math. Debrecen, 16 (1969), 187192.
[GMR99] Goodaire, E. G., May, S. and Raman, M., The Moufang loops of order
less than 64, Nova Science Publishers Inc., Commack, NY (1999), xviii+287
pages.
[GKN14] Grishkov, A., Kinyon, M. and Nagy, G. P., Solvability of commutative
automorphic loops, Proc. Amer. Math. Soc., 142, 9 (2014), 30293037.
[JM96] Jacobson, M. T. and Matthews, P., Generating uniformly distributed
random Latin squares, J. Combin. Des., 4, 6 (1996), 405437.
[JKV12] Jedlička, P., Kinyon, M. and Vojtěchovský, P., Nilpotency in
automorphic loops of prime power order, J. Algebra, 350 (2012), 6476.
[JKNV11] Johnson, K. W., Kinyon, M. K., Nagy, G. P. and Vojtěchovský, P.,
Searching for small simple automorphic loops, LMS J. Comput. Math., 14
(2011), 200213.
[KKP02] Kinyon, M. K., Kunen, K. and Phillips, J. D., Every diassociative
A-loop is Moufang, Proc. Amer. Math. Soc., 130, 3 (2002), 619624.
[KKPV16] Kinyon, M. K., Kunen, K., Phillips, J. D. and Vojtěchovský, P., The
structure of automorphic loops, Trans. Amer. Math. Soc., 368, 12 (2016),
89018927.
[KNV15] Kinyon, M. K., Nagy, G. P. and Vojtěchovský, P., Bol loops and Bruck
loops of order pq,  (2015), ((preprint)).
[Kun00] Kunen, K., The structure of conjugacy closed loops, Trans. Amer.
Math. Soc., 352, 6 (2000), 28892911.
[Lie87] Liebeck, M. W., The classification of finite simple Moufang loops,
Math. Proc. Cambridge Philos. Soc., 102, 1 (1987), 3347.
[Moo] Moorhouse, G. E., Bol loops of small order,
((http://www.uwyo.edu/moorhouse/pub/bol/)).
[NV03] Nagy, G. P. and Vojtěchovský, P., Octonions, simple Moufang loops and
triality, Quasigroups Related Systems, 10 (2003), 6594.
[NV07] Nagy, G. P. and Vojtěchovský, P., The Moufang loops of order 64 and
81, J. Symbolic Comput., 42, 9 (2007), 871883.
[Pfl90] Pflugfelder, H. O., Quasigroups and loops: introduction, Heldermann
Verlag, Sigma Series in Pure Mathematics, 7, Berlin (1990), viii+147 pages.
[PV05] Phillips, J. D. and Vojtěchovský, P., The varieties of loops of
Bol-Moufang type, Algebra Universalis, 54, 3 (2005), 259271.
[SZ12] Slattery, M. and Zenisek, A., Moufang loops of order 243,
Commentationes Mathematicae Universitatis Carolinae, 53, 3 (2012), 423428.
[Voj06] Vojtěchovský, P., Toward the classification of Moufang loops of
order 64, European J. Combin., 27, 3 (2006), 444460.
[Voj15] Vojtěchovský, P., Three lectures on automorphic loops, Quasigroups
Related Systems, 23, 1 (2015), 129163.
[WJ75] Wilson Jr., R. L., Quasidirect products of quasigroups, Comm.
Algebra, 3, 9 (1975), 835850.


373
doc/chapBib_mj.html Normal file
View file

@ -0,0 +1,373 @@
<?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="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (Loops) - References</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="chapBib" 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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chapB_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chapInd_mj.html">[Next Chapter]</a>&nbsp; </div>
<p id="mathjaxlink" class="pcenter"><a href="chapBib.html">[MathJax off]</a></p>
<p><a id="X7A6F98FD85F02BFE" name="X7A6F98FD85F02BFE"></a></p>
<h3>References</h3>
<p><a id="biBArtic" name="biBArtic"></a></p>
<p class='BibEntry'>
[<span class='BibKey'>Art15</span>] <b class='BibAuthor'>Artic, K.</b>,
<i class='BibTitle'>On conjugacy closed loops and conjugacy closed loop folders</i>,
<span class='BibType'>Ph.D. thesis</span>,
<span class='BibSchool'>RWTH Aachen University</span>
(<span class='BibYear'>2015</span>).
</p>
<p><a id="biBAr" name="biBAr"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=0107674">Art59</a></span>] <b class='BibAuthor'>Artzy, R.</b>,
<i class='BibTitle'>On automorphic-inverse properties in loops</i>,
<span class='BibJournal'>Proc. Amer. Math. Soc.</span>,
<em class='BibVolume'>10</em>
(<span class='BibYear'>1959</span>),
<span class='BibPages'>588591</span>.
</p>
<p><a id="biBBr" name="biBBr"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=0093552">Bru58</a></span>] <b class='BibAuthor'>Bruck, R. H.</b>,
<i class='BibTitle'>A survey of binary systems</i>,
<span class='BibPublisher'>Springer Verlag</span>,
<span class='BibSeries'>Ergebnisse der Mathematik und ihrer Grenzgebiete. Neue Folge,
Heft 20. Reihe: Gruppentheorie</span>,
<span class='BibAddress'>Berlin</span>
(<span class='BibYear'>1958</span>),
<span class='BibPages'>viii+185 pages</span>.
</p>
<p><a id="biBBrPa" name="biBBrPa"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=0076779">BP56</a></span>] <b class='BibAuthor'>Bruck, R. H. and Paige, L. J.</b>,
<i class='BibTitle'>Loops whose inner mappings are automorphisms</i>,
<span class='BibJournal'>Ann. of Math. (2)</span>,
<em class='BibVolume'>63</em>
(<span class='BibYear'>1956</span>),
<span class='BibPages'>308323</span>.
</p>
<p><a id="biBCoRo" name="biBCoRo"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=1843379">CR99</a></span>] <b class='BibAuthor'>Colbourn, C. J. and Rosa, A.</b>,
<i class='BibTitle'>Triple systems</i>,
<span class='BibPublisher'>The Clarendon Press Oxford University Press</span>,
<span class='BibSeries'>Oxford Mathematical Monographs</span>,
<span class='BibAddress'>New York</span>
(<span class='BibYear'>1999</span>),
<span class='BibPages'>xvi+560 pages</span>.
</p>
<p><a id="biBCsDr" name="biBCsDr"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=2153496">CD05</a></span>] <b class='BibAuthor'>Csörgő, P. and Drápal, A.</b>,
<i class='BibTitle'>Left conjugacy closed loops of nilpotency class two</i>,
<span class='BibJournal'>Results Math.</span>,
<em class='BibVolume'>47</em> (<span class='BibNumber'>3-4</span>)
(<span class='BibYear'>2005</span>),
<span class='BibPages'>242265</span>.
</p>
<p><a id="biBDaVo" name="biBDaVo"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=2556139">DV09</a></span>] <b class='BibAuthor'>Daly, D. and Vojtěchovský, P.</b>,
<i class='BibTitle'>Enumeration of nilpotent loops via cohomology</i>,
<span class='BibJournal'>J. Algebra</span>,
<em class='BibVolume'>322</em> (<span class='BibNumber'>11</span>)
(<span class='BibYear'>2009</span>),
<span class='BibPages'>40804098</span>.
</p>
<p><a id="biBBaGrVo" name="biBBaGrVo"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=2983192">BGV12</a></span>] <b class='BibAuthor'>De Barros, D. A. S., Grishkov, A. and Vojtěchovský, P.</b>,
<i class='BibTitle'>Commutative automorphic loops of order p^3</i>,
<span class='BibJournal'>J. Algebra Appl.</span>,
<em class='BibVolume'>11</em> (<span class='BibNumber'>5</span>)
(<span class='BibYear'>2012</span>),
<span class='BibPages'>1250100, 15</span>.
</p>
<p><a id="biBDrapalCD" name="biBDrapalCD"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=MR2062876">Drá03</a></span>] <b class='BibAuthor'>Drápal, A.</b>,
<i class='BibTitle'>Cyclic and dihedral constructions of even order</i>,
<span class='BibJournal'>Comment. Math. Univ. Carolin.</span>,
<em class='BibVolume'>44</em> (<span class='BibNumber'>4</span>)
(<span class='BibYear'>2003</span>),
<span class='BibPages'>593614</span>.
</p>
<p><a id="biBDrVo" name="biBDrVo"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=2234814">DV06</a></span>] <b class='BibAuthor'>Drápal, A. and Vojtěchovský, P.</b>,
<i class='BibTitle'>Moufang loops that share associator and three quarters of
their multiplication tables</i>,
<span class='BibJournal'>Rocky Mountain J. Math.</span>,
<em class='BibVolume'>36</em> (<span class='BibNumber'>2</span>)
(<span class='BibYear'>2006</span>),
<span class='BibPages'>425455</span>.
</p>
<p><a id="biBFe" name="biBFe"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=0262409">Fen69</a></span>] <b class='BibAuthor'>Fenyves, F.</b>,
<i class='BibTitle'>Extra loops. II. On loops with identities of
Bol-Moufang type</i>,
<span class='BibJournal'>Publ. Math. Debrecen</span>,
<em class='BibVolume'>16</em>
(<span class='BibYear'>1969</span>),
<span class='BibPages'>187192</span>.
</p>
<p><a id="biBGo" name="biBGo"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=1689624">GMR99</a></span>] <b class='BibAuthor'>Goodaire, E. G., May, S. and Raman, M.</b>,
<i class='BibTitle'>The Moufang loops of order less than 64</i>,
<span class='BibPublisher'>Nova Science Publishers Inc.</span>,
<span class='BibAddress'>Commack, NY</span>
(<span class='BibYear'>1999</span>),
<span class='BibPages'>xviii+287 pages</span>.
</p>
<p><a id="biBGrKiNa" name="biBGrKiNa"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=3223359">GKN14</a></span>] <b class='BibAuthor'>Grishkov, A., Kinyon, M. and Nagy, G. P.</b>,
<i class='BibTitle'>Solvability of commutative automorphic loops</i>,
<span class='BibJournal'>Proc. Amer. Math. Soc.</span>,
<em class='BibVolume'>142</em> (<span class='BibNumber'>9</span>)
(<span class='BibYear'>2014</span>),
<span class='BibPages'>30293037</span>.
</p>
<p><a id="biBJaMa" name="biBJaMa"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=1410617">JM96</a></span>] <b class='BibAuthor'>Jacobson, M. T. and Matthews, P.</b>,
<i class='BibTitle'>Generating uniformly distributed random Latin squares</i>,
<span class='BibJournal'>J. Combin. Des.</span>,
<em class='BibVolume'>4</em> (<span class='BibNumber'>6</span>)
(<span class='BibYear'>1996</span>),
<span class='BibPages'>405437</span>.
</p>
<p><a id="biBJeKiVo" name="biBJeKiVo"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=2859875">JKV12</a></span>] <b class='BibAuthor'>Jedlička, P., Kinyon, M. and Vojtěchovský, P.</b>,
<i class='BibTitle'>Nilpotency in automorphic loops of prime power order</i>,
<span class='BibJournal'>J. Algebra</span>,
<em class='BibVolume'>350</em>
(<span class='BibYear'>2012</span>),
<span class='BibPages'>6476</span>.
</p>
<p><a id="biBJoKiNaVo" name="biBJoKiNaVo"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=2831230">JKNV11</a></span>] <b class='BibAuthor'>Johnson, K. W., Kinyon, M. K., Nagy, G. P. and Vojtěchovský, P.</b>,
<i class='BibTitle'>Searching for small simple automorphic loops</i>,
<span class='BibJournal'>LMS J. Comput. Math.</span>,
<em class='BibVolume'>14</em>
(<span class='BibYear'>2011</span>),
<span class='BibPages'>200213</span>.
</p>
<p><a id="biBKiKuPh" name="biBKiKuPh"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=1866009">KKP02</a></span>] <b class='BibAuthor'>Kinyon, M. K., Kunen, K. and Phillips, J. D.</b>,
<i class='BibTitle'>Every diassociative A-loop is Moufang</i>,
<span class='BibJournal'>Proc. Amer. Math. Soc.</span>,
<em class='BibVolume'>130</em> (<span class='BibNumber'>3</span>)
(<span class='BibYear'>2002</span>),
<span class='BibPages'>619624</span>.
</p>
<p><a id="biBKiKuPhVo" name="biBKiKuPhVo"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=3551593">KKPV16</a></span>] <b class='BibAuthor'>Kinyon, M. K., Kunen, K., Phillips, J. D. and Vojtěchovský, P.</b>,
<i class='BibTitle'>The structure of automorphic loops</i>,
<span class='BibJournal'>Trans. Amer. Math. Soc.</span>,
<em class='BibVolume'>368</em> (<span class='BibNumber'>12</span>)
(<span class='BibYear'>2016</span>),
<span class='BibPages'>89018927</span>.
</p>
<p><a id="biBKiNaVo2015" name="biBKiNaVo2015"></a></p>
<p class='BibEntry'>
[<span class='BibKey'>KNV15</span>] <b class='BibAuthor'>Kinyon, M. K., Nagy, G. P. and Vojtěchovský, P.</b>,
<i class='BibTitle'>Bol loops and Bruck loops of order pq</i>,
<span class='BibJournal'></span>
(<span class='BibYear'>2015</span>)<br />
(<span class='BibNote'>preprint</span>).
</p>
<p><a id="biBKun" name="biBKun"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=1615991">Kun00</a></span>] <b class='BibAuthor'>Kunen, K.</b>,
<i class='BibTitle'>The structure of conjugacy closed loops</i>,
<span class='BibJournal'>Trans. Amer. Math. Soc.</span>,
<em class='BibVolume'>352</em> (<span class='BibNumber'>6</span>)
(<span class='BibYear'>2000</span>),
<span class='BibPages'>28892911</span>.
</p>
<p><a id="biBLi" name="biBLi"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=886433">Lie87</a></span>] <b class='BibAuthor'>Liebeck, M. W.</b>,
<i class='BibTitle'>The classification of finite simple Moufang loops</i>,
<span class='BibJournal'>Math. Proc. Cambridge Philos. Soc.</span>,
<em class='BibVolume'>102</em> (<span class='BibNumber'>1</span>)
(<span class='BibYear'>1987</span>),
<span class='BibPages'>3347</span>.
</p>
<p><a id="biBMo" name="biBMo"></a></p>
<p class='BibEntry'>
[<span class='BibKey'>Moo</span>] <b class='BibAuthor'>Moorhouse, G. E.</b>,
<i class='BibTitle'>Bol loops of small order</i><br />
(<span class='BibNote'>http://www.uwyo.edu/moorhouse/pub/bol/</span>).
</p>
<p><a id="biBNaVo2003" name="biBNaVo2003"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=1998692">NV03</a></span>] <b class='BibAuthor'>Nagy, G. P. and Vojtěchovský, P.</b>,
<i class='BibTitle'>Octonions, simple Moufang loops and triality</i>,
<span class='BibJournal'>Quasigroups Related Systems</span>,
<em class='BibVolume'>10</em>
(<span class='BibYear'>2003</span>),
<span class='BibPages'>6594</span>.
</p>
<p><a id="biBNaVo2007" name="biBNaVo2007"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=2355056">NV07</a></span>] <b class='BibAuthor'>Nagy, G. P. and Vojtěchovský, P.</b>,
<i class='BibTitle'>The Moufang loops of order 64 and 81</i>,
<span class='BibJournal'>J. Symbolic Comput.</span>,
<em class='BibVolume'>42</em> (<span class='BibNumber'>9</span>)
(<span class='BibYear'>2007</span>),
<span class='BibPages'>871883</span>.
</p>
<p><a id="biBPf" name="biBPf"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=1125767">Pfl90</a></span>] <b class='BibAuthor'>Pflugfelder, H. O.</b>,
<i class='BibTitle'>Quasigroups and loops: introduction</i>,
<span class='BibPublisher'>Heldermann Verlag</span>,
<span class='BibSeries'>Sigma Series in Pure Mathematics</span>,
<em class='BibVolume'>7</em>,
<span class='BibAddress'>Berlin</span>
(<span class='BibYear'>1990</span>),
<span class='BibPages'>viii+147 pages</span>.
</p>
<p><a id="biBPhiVoj" name="biBPhiVoj"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=2219409">PV05</a></span>] <b class='BibAuthor'>Phillips, J. D. and Vojtěchovský, P.</b>,
<i class='BibTitle'>The varieties of loops of Bol-Moufang type</i>,
<span class='BibJournal'>Algebra Universalis</span>,
<em class='BibVolume'>54</em> (<span class='BibNumber'>3</span>)
(<span class='BibYear'>2005</span>),
<span class='BibPages'>259271</span>.
</p>
<p><a id="biBSlZe2011" name="biBSlZe2011"></a></p>
<p class='BibEntry'>
[<span class='BibKey'>SZ12</span>] <b class='BibAuthor'>Slattery, M. and Zenisek, A.</b>,
<i class='BibTitle'>Moufang loops of order 243</i>,
<span class='BibJournal'>Commentationes Mathematicae Universitatis Carolinae</span>,
<em class='BibVolume'>53</em> (<span class='BibNumber'>3</span>)
(<span class='BibYear'>2012</span>),
<span class='BibPages'>423428</span>.
</p>
<p><a id="biBVo" name="biBVo"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=2206479">Voj06</a></span>] <b class='BibAuthor'>Vojtěchovský, P.</b>,
<i class='BibTitle'>Toward the classification of Moufang loops of order 64</i>,
<span class='BibJournal'>European J. Combin.</span>,
<em class='BibVolume'>27</em> (<span class='BibNumber'>3</span>)
(<span class='BibYear'>2006</span>),
<span class='BibPages'>444460</span>.
</p>
<p><a id="biBVoQRS" name="biBVoQRS"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=3353114">Voj15</a></span>] <b class='BibAuthor'>Vojtěchovský, P.</b>,
<i class='BibTitle'>Three lectures on automorphic loops</i>,
<span class='BibJournal'>Quasigroups Related Systems</span>,
<em class='BibVolume'>23</em> (<span class='BibNumber'>1</span>)
(<span class='BibYear'>2015</span>),
<span class='BibPages'>129163</span>.
</p>
<p><a id="biBWi" name="biBWi"></a></p>
<p class='BibEntry'>
[<span class='BibKeyLink'><a href="http://www.ams.org/mathscinet-getitem?mr=0376937">WJ75</a></span>] <b class='BibAuthor'>Wilson Jr., R. L.</b>,
<i class='BibTitle'>Quasidirect products of quasigroups</i>,
<span class='BibJournal'>Comm. Algebra</span>,
<em class='BibVolume'>3</em> (<span class='BibNumber'>9</span>)
(<span class='BibYear'>1975</span>),
<span class='BibPages'>835850</span>.
</p>
<p> </p>
<div class="chlinkprevnextbot">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chapB_mj.html">[Previous Chapter]</a>&nbsp; &nbsp;<a href="chapInd_mj.html">[Next Chapter]</a>&nbsp; </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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</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>

434
doc/chapInd.txt Normal file
View file

@ -0,0 +1,434 @@
Index
AllLoopsWithMltGroup 8.4-5
AllLoopTablesInGroup 8.4-1
AllProperLoopTablesInGroup 8.4-2
AllSubloops 6.2-5
AllSubquasigroups 6.2-4
alternative loop 7.4
alternative loop, left 7.4
alternative loop, right 7.4
antiautomorphic inverse property 7.2-5
AreEqualDiscriminators 6.11-9
AssociatedLeftBruckLoop 8.1-1
AssociatedRightBruckLoop 8.1-1
associator 2.5
Associator 5.4-1
associator subloop 2.5
AssociatorSubloop 6.6-5
automorphic inverse property 7.2-4
automorphic loop 7.7
automorphic loop, left 7.7
automorphic loop, middle 7.7
automorphic loop, right 7.7
AutomorphicLoop 9.10-1
AutomorphismGroup 6.11-5
Bol loop, left 3.3
Bol loop, left 7.4
Bol loop, left 8.1-1
Bol loop, right 7.4
Bruck loop, associated left 8.1-1
Bruck loop, left 7.8-3
Bruck loop, right 7.8-4
C loop 7.4
CanonicalCayleyTable 4.3-1
CanonicalCopy 4.3-2
Cayley table 4.1
Cayley table, canonical 4.3-1
CayleyTable 5.1-2
CayleyTableByPerms 4.6-1
CCLoop 9.6-3
center 2.3
Center 6.6-4
central series, lower 6.9-5
central series, upper 2.4
Chein loop 8.2-3
cocycle 4.8
code loop 7.8-1
CodeLoop 9.4-1
commutant 2.3
Commutant 6.6-3
commutator 2.5
Commutator 5.4-2
conjugacy closed loop 7.6
conjugacy closed loop, left 7.6
conjugacy closed loop, right 7.6
ConjugacyClosedLoop 9.6-3
conjugation 6.5
coset 6.2-6
derived series 2.4
derived subloop 2.4
DerivedLength 6.10-3
DerivedSubloop 6.10-2
diassociative quasigroup 7.1-4
DirectProduct 4.11-1
Discriminator 6.11-8
DisplayLibraryInfo 9.1-3
distributive quasigroup 7.3-6
distributive quasigroup, left 7.3-6
distributive quasigroup, right 7.3-6
division, left 2.2
division, right 2.2
Elements 5.1-1
entropic quasigroup 7.3-7
exact group factorization 8.1-2
Exponent 5.1-5
exponent 5.1-5
extension 4.8
extension, nuclear 4.8
extra loop 7.4
FactorLoop 6.8-1
flexible loop 7.4
folder, quasigroup 4.7
Frattini subloop 6.10-4
FrattinifactorSize 6.10-5
FrattiniSubloop 6.10-4
GeneratorsOfLoop 5.5-1
GeneratorsOfQuasigroup 5.5-1
GeneratorsSmallest 5.5-2
group 2.1
group with triality 8.3
groupoid 2.1
HasAntiautomorphicInverseProperty 7.2-5
HasAutomorphicInverseProperty 7.2-4
HasInverseProperty 7.2-1
HasLeftInverseProperty 7.2-1
HasRightInverseProperty 7.2-1
HasTwosidedInverses 7.2-2
HasWeakInverseProperty 7.2-3
homomorphism 2.6
homotopism 2.6
idempotent quasigroup 7.3-3
identity, element 2.1
identity, of Bol-Moufang type 7.4
inner mapping, left 6.5
inner mapping, middle 6.5
inner mapping, right 6.5
inner mapping group 2.2
inner mapping group, left 2.2
inner mapping group, middle 6.5
inner mapping group, right 2.2
InnerMappingGroup 6.5-3
InterestingLoop 9.11-1
IntoGroup 4.10-4
IntoLoop 4.10-3
IntoQuasigroup 4.10-1
inverse 5.3
Inverse 5.3-1
inverse, left 5.3
inverse, left 7.2
inverse, right 5.3
inverse, right 7.2
inverse, two-sided 2.1
inverse, two-sided 7.2-2
inverse property 7.2-1
inverse property, antiautomorphic 7.2-5
inverse property, automorphic 7.2-4
inverse property, left 7.2-1
inverse property, right 7.2-1
inverse property, weak 7.2-3
IsALoop 7.7-4
IsAlternative 7.4-15
IsAssociative 7.1-1
IsAutomorphicLoop 7.7-4
IsCCLoop 7.6-3
IsCLoop 7.4-3
IsCodeLoop 7.8-1
IsCommutative 7.1-2
IsConjugacyClosedLoop 7.6-3
IsDiassociative 7.1-4
IsDistributive 7.3-6
IsEntropic 7.3-7
IsExactGroupFactorization 8.1-2
IsExtraLoop 7.4-1
IsFlexible 7.4-12
IsIdempotent 7.3-3
IsLCCLoop 7.6-1
IsLCLoop 7.4-6
IsLeftALoop 7.7-1
IsLeftAlternative 7.4-13
IsLeftAutomorphicLoop 7.7-1
IsLeftBolLoop 7.4-4
IsLeftBruckLoop 7.8-3
IsLeftConjugacyClosedLoop 7.6-1
IsLeftDistributive 7.3-6
IsLeftKLoop 7.8-3
IsLeftNuclearSquareLoop 7.4-8
IsLeftPowerAlternative 7.5-1
IsLoop 3.1
IsLoopCayleyTable 4.2-2
IsLoopElement 3.1
IsLoopTable 4.2-2
IsMedial 7.3-7
IsMiddleALoop 7.7-2
IsMiddleAutomorphicLoop 7.7-2
IsMiddleNuclearSquareLoop 7.4-9
IsMoufangLoop 7.4-2
IsNilpotent 6.9-1
IsNormal 6.7-1
IsNuclearSquareLoop 7.4-11
IsomorphicCopyByNormalSubloop 6.11-7
IsomorphicCopyByPerm 6.11-6
isomorphism 2.6
IsomorphismLoops 6.11-2
IsomorphismQuasigroups 6.11-1
IsOsbornLoop 7.6-4
isotopism 2.6
isotopism, principal 2.6
IsotopismLoops 6.12-1
IsPowerAlternative 7.5-1
IsPowerAssociative 7.1-3
IsQuasigroup 3.1
IsQuasigroupCayleyTable 4.2-1
IsQuasigroupElement 3.1
IsQuasigroupTable 4.2-1
IsRCCLoop 7.6-2
IsRCLoop 7.4-7
IsRightALoop 7.7-3
IsRightAlternative 7.4-14
IsRightAutomorphicLoop 7.7-3
IsRightBolLoop 7.4-5
IsRightBruckLoop 7.8-4
IsRightConjugacyClosedLoop 7.6-2
IsRightDistributive 7.3-6
IsRightKLoop 7.8-4
IsRightNuclearSquareLoop 7.4-10
IsRightPowerAlternative 7.5-1
IsSemisymmetric 7.3-1
IsSimple 6.7-3
IsSolvable 6.10-1
IsSteinerLoop 7.8-2
IsSteinerQuasigroup 7.3-4
IsStronglyNilpotent 6.9-3
IsSubloop 6.2-3
IsSubquasigroup 6.2-3
IsTotallySymmetric 7.3-2
IsUnipotent 7.3-5
ItpSmallLoop 9.12-1
K loop, left 7.8-3
K loop, right 7.8-4
latin square 2.1
latin square 4.1
latin square, random 4.9
LC loop 7.4
LCCLoop 9.6-2
LeftBolLoop 9.2-1
LeftConjugacyClosedLoop 9.6-2
LeftDivision 5.2-1
LeftDivision 5.2-1
LeftDivision 5.2-1
LeftDivisionCayleyTable 5.2-2
LeftInnerMapping 6.5-1
LeftInnerMappingGroup 6.5-2
LeftInverse 5.3-1
LeftMultiplicationGroup 6.4-1
LeftNucleus 6.6-1
LeftSection 6.3-2
LeftTranslation 6.3-1
LibraryLoop 9.1-1
loop 2.1
loop, C 7.4
loop, Chein 8.2-3
loop, LC 7.4
loop, Moufang 7.4
loop, Osborn 7.6-4
loop, Paige 9.8
loop, RC 7.4
loop, Steiner 7.8-2
loop, alternative 7.4
loop, associated left Bruck 8.1-1
loop, automorphic 7.7
loop, code 7.8-1
loop, conjugacy closed 7.6
loop, extra 7.4
loop, flexible 7.4
loop, left Bol 3.3
loop, left Bol 7.4
loop, left Bol 8.1-1
loop, left Bruck 7.8-3
loop, left K 7.8-3
loop, left alternative 7.4
loop, left automorphic 7.7
loop, left conjugacy closed 7.6
loop, left nuclear square 7.4
loop, left power alternative 7.5
loop, middle automorphic 7.7
loop, middle nuclear square 7.4
loop, nilpotent 2.4
loop, nilpotent 4.9-2
loop, nuclear square 7.4
loop, octonion 9.3-1
loop, of Bol-Moufang type 7.4
loop, power alternative 7.5
loop, power associative 5.1-5
loop, right Bol 7.4
loop, right Bruck 7.8-4
loop, right K 7.8-4
loop, right alternative 7.4
loop, right automorphic 7.7
loop, right conjugacy closed 7.6
loop, right nuclear square 7.4
loop, right power alternative 7.5
loop, sedenion 9.11
loop, simple 3.3
loop, simple 6.7-3
loop, solvable 2.4
loop, strongly nilpotent 6.9-3
loop isotope, principal 2.6
loop table 4.1
LoopByCayleyTable 4.4-1
LoopByCyclicModification 8.2-1
LoopByDihedralModification 8.2-2
LoopByExtension 4.8-2
LoopByLeftSection 4.6-2
LoopByRightFolder 4.7-1
LoopByRightSection 4.6-3
LoopFromFile 4.5-1
LoopMG2 8.2-3
LoopsUpToIsomorphism 6.11-4
LoopsUpToIsotopism 6.12-2
LowerCentralSeries 6.9-5
magma 2.1
medial quasigroup 7.3-7
MiddleInnerMapping 6.5-1
MiddleInnerMappingGroup 6.5-2
MiddleNucleus 6.6-1
modification, Moufang 8.2
modification, cyclic 8.2-1
modification, dihedral 8.2-2
Moufang loop 7.4
MoufangLoop 9.3-1
multiplication group 2.2
multiplication group, left 2.2
multiplication group, relative 6.4-2
multiplication group, relative left 6.4-2
multiplication group, relative right 6.4-2
multiplication group, right 2.2
multiplication table 4.1
MultiplicationGroup 6.4-1
MyLibraryLoop 9.1-2
NaturalHomomorphismByNormalSubloop 6.8-2
neutral element 2.1
nilpotence class 2.4
NilpotencyClassOfLoop 6.9-2
nilpotent loop 2.4
nilpotent loop, strongly 6.9-3
NilpotentLoop 9.9-1
normal closure 6.7-2
normal subloop 6.7-1
NormalClosure 6.7-2
NormalizedQuasigroupTable 4.3-3
Nuc 6.6-2
nuclear square loop 7.4
nuclear square loop, left 7.4
nuclear square loop, middle 7.4
nuclear square loop, right 7.4
NuclearExtension 4.8-1
nucleus 2.3
nucleus, left 2.3
nucleus, middle 2.3
nucleus, right 2.3
NucleusOfLoop 6.6-2
NucleusOfQuasigroup 6.6-2
octonion loop 9.3-1
One 5.1-3
OneLoopTableInGroup 8.4-3
OneLoopWithMltGroup 8.4-6
OneProperLoopTableInGroup 8.4-4
Opposite 4.12-1
opposite quasigroup 4.12
OppositeLoop 4.12-1
OppositeQuasigroup 4.12-1
Osborn loop 7.6-4
Paige loop 9.8
PaigeLoop 9.8-1
Parent 6.1-1
PosInParent 6.1-3
Position 6.1-2
power alternative loop 7.5
power alternative loop, left 7.5
power alternative loop, right 7.5
power associative loop 5.1-5
power associative quasigroup 7.1-3
PrincipalLoopIsotope 4.10-2
quasigroup 2.1
quasigroup, Steiner 7.3-4
quasigroup, diassociative 7.1-4
quasigroup, distributive 7.3-6
quasigroup, entropic 7.3-7
quasigroup, idempotent 7.3-3
quasigroup, left distributive 7.3-6
quasigroup, medial 7.3-7
quasigroup, opposite 4.12
quasigroup, power associative 7.1-3
quasigroup, right distributive 7.3-6
quasigroup, semisymmetric 7.3-1
quasigroup, totally symmetric 7.3-2
quasigroup, unipotent 7.3-5
quasigroup table 4.1
QuasigroupByCayleyTable 4.4-1
QuasigroupByLeftSection 4.6-2
QuasigroupByRightFolder 4.7-1
QuasigroupByRightSection 4.6-3
QuasigroupFromFile 4.5-1
QuasigroupsUpToIsomorphism 6.11-3
RandomLoop 4.9-1
RandomNilpotentLoop 4.9-2
RandomQuasigroup 4.9-1
RC loop 7.4
RCCLoop 9.6-1
RelativeLeftMultiplicationGroup 6.4-2
RelativeMultiplicationGroup 6.4-2
RelativeRightMultiplicationGroup 6.4-2
RightBolLoop 9.2-2
RightBolLoopByExactGroupFactorization 8.1-3
RightConjugacyClosedLoop 9.6-1
RightCosets 6.2-6
RightDivision 5.2-1
RightDivision 5.2-1
RightDivision 5.2-1
RightDivisionCayleyTable 5.2-2
RightInnerMapping 6.5-1
RightInnerMappingGroup 6.5-2
RightInverse 5.3-1
RightMultiplicationGroup 6.4-1
RightNucleus 6.6-1
RightSection 6.3-2
RightTranslation 6.3-1
RightTransversal 6.2-7
section, left 2.2
section, right 2.2
sedenion loop 9.11
semisymmetric quasigroup 7.3-1
SetLoopElmName 3.4-1
SetQuasigroupElmName 3.4-1
simple loop 3.3
simple loop 6.7-3
Size 5.1-4
SmallGeneratingSet 5.5-3
SmallLoop 9.7-1
solvability class 2.4
solvable loop 2.4
Steiner loop 7.8-2
Steiner quasigroup 7.3-4
SteinerLoop 9.5-1
strongly nilpotent loop 6.9-3
subloop 2.3
Subloop 6.2-2
subloop, normal 2.3
subloop, normal 6.7-1
subquasigroup 2.3
Subquasigroup 6.2-1
totally symmetric quasigroup 7.3-2
translation, left 2.2
translation, right 2.2
transversal 6.2-7
TrialityPcGroup 8.3-2
TrialityPermGroup 8.3-1
unipotent quasigroup 7.3-5
UpperCentralSeries 6.9-4
-------------------------------------------------------

469
doc/chapInd_mj.html Normal file
View file

@ -0,0 +1,469 @@
<?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="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (Loops) - Index</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="chapInd" 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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chapBib_mj.html">[Previous Chapter]</a>&nbsp; </div>
<p id="mathjaxlink" class="pcenter"><a href="chapInd.html">[MathJax off]</a></p>
<p><a id="X83A0356F839C696F" name="X83A0356F839C696F"></a></p>
<div class="index">
<h3>Index</h3>
<code class="func">AllLoopsWithMltGroup</code> <a href="chap8_mj.html#X7E5F1C2879358EEF">8.4-5</a><br />
<code class="func">AllLoopTablesInGroup</code> <a href="chap8_mj.html#X804F40087DD1225D">8.4-1</a><br />
<code class="func">AllProperLoopTablesInGroup</code> <a href="chap8_mj.html#X7854C8E382DC8E8B">8.4-2</a><br />
<code class="func">AllSubloops</code> <a href="chap6_mj.html#X81EF252585592001">6.2-5</a><br />
<code class="func">AllSubquasigroups</code> <a href="chap6_mj.html#X859B6C8183537E75">6.2-4</a><br />
alternative loop <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
alternative loop, left <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
alternative loop, right <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
antiautomorphic inverse property <a href="chap7_mj.html#X8538D4638232DB51">7.2-5</a><br />
<code class="func">AreEqualDiscriminators</code> <a href="chap6_mj.html#X812F0DEE7C896E18">6.11-9</a><br />
<code class="func">AssociatedLeftBruckLoop</code> <a href="chap8_mj.html#X8664CA927DD73DBE">8.1-1</a><br />
<code class="func">AssociatedRightBruckLoop</code> <a href="chap8_mj.html#X8664CA927DD73DBE">8.1-1</a><br />
associator <a href="chap2_mj.html#X7E0849977869E53D">2.5</a><br />
<code class="func">Associator</code> <a href="chap5_mj.html#X82B7448879B91F7B">5.4-1</a><br />
associator subloop <a href="chap2_mj.html#X7E0849977869E53D">2.5</a><br />
<code class="func">AssociatorSubloop</code> <a href="chap6_mj.html#X7F7FDE82780EDD7E">6.6-5</a><br />
automorphic inverse property <a href="chap7_mj.html#X7F46CE6B7D387158">7.2-4</a><br />
automorphic loop <a href="chap7_mj.html#X793B22EA8643C667">7.7</a><br />
automorphic loop, left <a href="chap7_mj.html#X793B22EA8643C667">7.7</a><br />
automorphic loop, middle <a href="chap7_mj.html#X793B22EA8643C667">7.7</a><br />
automorphic loop, right <a href="chap7_mj.html#X793B22EA8643C667">7.7</a><br />
<code class="func">AutomorphicLoop</code> <a href="chap9_mj.html#X784FFA9E7FDA9F43">9.10-1</a><br />
<code class="func">AutomorphismGroup</code> <a href="chap6_mj.html#X87677B0787B4461A">6.11-5</a><br />
Bol loop, left <a href="chap3_mj.html#X87E49ED884FA6DC4">3.3</a><br />
Bol loop, left <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
Bol loop, left <a href="chap8_mj.html#X8664CA927DD73DBE">8.1-1</a><br />
Bol loop, right <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
Bruck loop, associated left <a href="chap8_mj.html#X8664CA927DD73DBE">8.1-1</a><br />
Bruck loop, left <a href="chap7_mj.html#X85F1BD4280E44F5B">7.8-3</a><br />
Bruck loop, right <a href="chap7_mj.html#X857B373E7B4E0519">7.8-4</a><br />
C loop <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
<code class="func">CanonicalCayleyTable</code> <a href="chap4_mj.html#X7971CCB87DAFF7B9">4.3-1</a><br />
<code class="func">CanonicalCopy</code> <a href="chap4_mj.html#X7B816D887F46E6B7">4.3-2</a><br />
Cayley table <a href="chap4_mj.html#X7DE8405B82BC36A9">4.1</a><br />
Cayley table, canonical <a href="chap4_mj.html#X7971CCB87DAFF7B9">4.3-1</a><br />
<code class="func">CayleyTable</code> <a href="chap5_mj.html#X85457FA27DE7114D">5.1-2</a><br />
<code class="func">CayleyTableByPerms</code> <a href="chap4_mj.html#X7F94C8DD7E1A3470">4.6-1</a><br />
<code class="func">CCLoop</code> <a href="chap9_mj.html#X798BC601843E8916">9.6-3</a><br />
center <a href="chap2_mj.html#X83EDF04F7952143F">2.3</a><br />
<code class="func">Center</code> <a href="chap6_mj.html#X7C1FBE7A84DD4873">6.6-4</a><br />
central series, lower <a href="chap6_mj.html#X817BDBC2812992ED">6.9-5</a><br />
central series, upper <a href="chap2_mj.html#X869CBCE381E2C422">2.4</a><br />
Chein loop <a href="chap8_mj.html#X7CC6CDB786E9BBA0">8.2-3</a><br />
cocycle <a href="chap4_mj.html#X8759431780AC81A9">4.8</a><br />
code loop <a href="chap7_mj.html#X790FA1188087D5C1">7.8-1</a><br />
<code class="func">CodeLoop</code> <a href="chap9_mj.html#X7DB4D3B27BB4D7EE">9.4-1</a><br />
commutant <a href="chap2_mj.html#X83EDF04F7952143F">2.3</a><br />
<code class="func">Commutant</code> <a href="chap6_mj.html#X7C8428DE791F3CE1">6.6-3</a><br />
commutator <a href="chap2_mj.html#X7E0849977869E53D">2.5</a><br />
<code class="func">Commutator</code> <a href="chap5_mj.html#X7D624A9587FB1FE5">5.4-2</a><br />
conjugacy closed loop <a href="chap7_mj.html#X8176B2C47A4629CD">7.6</a><br />
conjugacy closed loop, left <a href="chap7_mj.html#X8176B2C47A4629CD">7.6</a><br />
conjugacy closed loop, right <a href="chap7_mj.html#X8176B2C47A4629CD">7.6</a><br />
<code class="func">ConjugacyClosedLoop</code> <a href="chap9_mj.html#X798BC601843E8916">9.6-3</a><br />
conjugation <a href="chap6_mj.html#X8740D61178ACD217">6.5</a><br />
coset <a href="chap6_mj.html#X835F48248571364F">6.2-6</a><br />
derived series <a href="chap2_mj.html#X869CBCE381E2C422">2.4</a><br />
derived subloop <a href="chap2_mj.html#X869CBCE381E2C422">2.4</a><br />
<code class="func">DerivedLength</code> <a href="chap6_mj.html#X7A9AA1577CEC891F">6.10-3</a><br />
<code class="func">DerivedSubloop</code> <a href="chap6_mj.html#X7A82DC4680DAD67C">6.10-2</a><br />
diassociative quasigroup <a href="chap7_mj.html#X872DCA027E1A4A1D">7.1-4</a><br />
<code class="func">DirectProduct</code> <a href="chap4_mj.html#X861BA02C7902A4F4">4.11-1</a><br />
<code class="func">Discriminator</code> <a href="chap6_mj.html#X7D09D8957E4A0973">6.11-8</a><br />
<code class="func">DisplayLibraryInfo</code> <a href="chap9_mj.html#X7A64372E81E713B4">9.1-3</a><br />
distributive quasigroup <a href="chap7_mj.html#X7B76FD6E878ED4F1">7.3-6</a><br />
distributive quasigroup, left <a href="chap7_mj.html#X7B76FD6E878ED4F1">7.3-6</a><br />
distributive quasigroup, right <a href="chap7_mj.html#X7B76FD6E878ED4F1">7.3-6</a><br />
division, left <a href="chap2_mj.html#X7EC01B437CC2B2C9">2.2</a><br />
division, right <a href="chap2_mj.html#X7EC01B437CC2B2C9">2.2</a><br />
<code class="func">Elements</code> <a href="chap5_mj.html#X79B130FC7906FB4C">5.1-1</a><br />
entropic quasigroup <a href="chap7_mj.html#X7F23D4D97A38D223">7.3-7</a><br />
exact group factorization <a href="chap8_mj.html#X82FC16F386CE11F1">8.1-2</a><br />
<code class="func">Exponent</code> <a href="chap5_mj.html#X7D44470C7DA59C1C">5.1-5</a><br />
exponent <a href="chap5_mj.html#X7D44470C7DA59C1C">5.1-5</a><br />
extension <a href="chap4_mj.html#X8759431780AC81A9">4.8</a><br />
extension, nuclear <a href="chap4_mj.html#X8759431780AC81A9">4.8</a><br />
extra loop <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
<code class="func">FactorLoop</code> <a href="chap6_mj.html#X83E1953980E2DE2F">6.8-1</a><br />
flexible loop <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
folder, quasigroup <a href="chap4_mj.html#X85ABE99E84E5B0E8">4.7</a><br />
Frattini subloop <a href="chap6_mj.html#X85BD2C517FA7A47E">6.10-4</a><br />
<code class="func">FrattinifactorSize</code> <a href="chap6_mj.html#X855286367A2D5A54">6.10-5</a><br />
<code class="func">FrattiniSubloop</code> <a href="chap6_mj.html#X85BD2C517FA7A47E">6.10-4</a><br />
<code class="func">GeneratorsOfLoop</code> <a href="chap5_mj.html#X83944A777D161D10">5.5-1</a><br />
<code class="func">GeneratorsOfQuasigroup</code> <a href="chap5_mj.html#X83944A777D161D10">5.5-1</a><br />
<code class="func">GeneratorsSmallest</code> <a href="chap5_mj.html#X82FD78AF7F80A0E2">5.5-2</a><br />
group <a href="chap2_mj.html#X80243DE5826583B8">2.1</a><br />
group with triality <a href="chap8_mj.html#X83E73A767D79FAFD">8.3</a><br />
groupoid <a href="chap2_mj.html#X80243DE5826583B8">2.1</a><br />
<code class="func">HasAntiautomorphicInverseProperty</code> <a href="chap7_mj.html#X8538D4638232DB51">7.2-5</a><br />
<code class="func">HasAutomorphicInverseProperty</code> <a href="chap7_mj.html#X7F46CE6B7D387158">7.2-4</a><br />
<code class="func">HasInverseProperty</code> <a href="chap7_mj.html#X85EDD10586596458">7.2-1</a><br />
<code class="func">HasLeftInverseProperty</code> <a href="chap7_mj.html#X85EDD10586596458">7.2-1</a><br />
<code class="func">HasRightInverseProperty</code> <a href="chap7_mj.html#X85EDD10586596458">7.2-1</a><br />
<code class="func">HasTwosidedInverses</code> <a href="chap7_mj.html#X86B93E1B7AEA6EDA">7.2-2</a><br />
<code class="func">HasWeakInverseProperty</code> <a href="chap7_mj.html#X793909B780761EA8">7.2-3</a><br />
homomorphism <a href="chap2_mj.html#X791066ED7DD9F254">2.6</a><br />
homotopism <a href="chap2_mj.html#X791066ED7DD9F254">2.6</a><br />
idempotent quasigroup <a href="chap7_mj.html#X7CB5896082D29173">7.3-3</a><br />
identity, element <a href="chap2_mj.html#X80243DE5826583B8">2.1</a><br />
identity, of Bol-Moufang type <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
inner mapping, left <a href="chap6_mj.html#X8740D61178ACD217">6.5</a><br />
inner mapping, middle <a href="chap6_mj.html#X8740D61178ACD217">6.5</a><br />
inner mapping, right <a href="chap6_mj.html#X8740D61178ACD217">6.5</a><br />
inner mapping group <a href="chap2_mj.html#X7EC01B437CC2B2C9">2.2</a><br />
inner mapping group, left <a href="chap2_mj.html#X7EC01B437CC2B2C9">2.2</a><br />
inner mapping group, middle <a href="chap6_mj.html#X8740D61178ACD217">6.5</a><br />
inner mapping group, right <a href="chap2_mj.html#X7EC01B437CC2B2C9">2.2</a><br />
<code class="func">InnerMappingGroup</code> <a href="chap6_mj.html#X82513A3B7C3A6420">6.5-3</a><br />
<code class="func">InterestingLoop</code> <a href="chap9_mj.html#X87F24AD3811910D3">9.11-1</a><br />
<code class="func">IntoGroup</code> <a href="chap4_mj.html#X7B5C6C64831B866E">4.10-4</a><br />
<code class="func">IntoLoop</code> <a href="chap4_mj.html#X7A59C36683118E5A">4.10-3</a><br />
<code class="func">IntoQuasigroup</code> <a href="chap4_mj.html#X84575A4B78CC545E">4.10-1</a><br />
inverse <a href="chap5_mj.html#X810850247ADB4EE9">5.3</a><br />
<code class="func">Inverse</code> <a href="chap5_mj.html#X805781838020CF44">5.3-1</a><br />
inverse, left <a href="chap5_mj.html#X810850247ADB4EE9">5.3</a><br />
inverse, left <a href="chap7_mj.html#X853841C5820BFEA4">7.2</a><br />
inverse, right <a href="chap5_mj.html#X810850247ADB4EE9">5.3</a><br />
inverse, right <a href="chap7_mj.html#X853841C5820BFEA4">7.2</a><br />
inverse, two-sided <a href="chap2_mj.html#X80243DE5826583B8">2.1</a><br />
inverse, two-sided <a href="chap7_mj.html#X86B93E1B7AEA6EDA">7.2-2</a><br />
inverse property <a href="chap7_mj.html#X85EDD10586596458">7.2-1</a><br />
inverse property, antiautomorphic <a href="chap7_mj.html#X8538D4638232DB51">7.2-5</a><br />
inverse property, automorphic <a href="chap7_mj.html#X7F46CE6B7D387158">7.2-4</a><br />
inverse property, left <a href="chap7_mj.html#X85EDD10586596458">7.2-1</a><br />
inverse property, right <a href="chap7_mj.html#X85EDD10586596458">7.2-1</a><br />
inverse property, weak <a href="chap7_mj.html#X793909B780761EA8">7.2-3</a><br />
<code class="func">IsALoop</code> <a href="chap7_mj.html#X7899603184CF13FD">7.7-4</a><br />
<code class="func">IsAlternative</code> <a href="chap7_mj.html#X8379356E82DB5DDA">7.4-15</a><br />
<code class="func">IsAssociative</code> <a href="chap7_mj.html#X7C83B5A47FD18FB7">7.1-1</a><br />
<code class="func">IsAutomorphicLoop</code> <a href="chap7_mj.html#X7899603184CF13FD">7.7-4</a><br />
<code class="func">IsCCLoop</code> <a href="chap7_mj.html#X878B614479DCB83F">7.6-3</a><br />
<code class="func">IsCLoop</code> <a href="chap7_mj.html#X866F04DC7AE54B7C">7.4-3</a><br />
<code class="func">IsCodeLoop</code> <a href="chap7_mj.html#X790FA1188087D5C1">7.8-1</a><br />
<code class="func">IsCommutative</code> <a href="chap7_mj.html#X830A4A4C795FBC2D">7.1-2</a><br />
<code class="func">IsConjugacyClosedLoop</code> <a href="chap7_mj.html#X878B614479DCB83F">7.6-3</a><br />
<code class="func">IsDiassociative</code> <a href="chap7_mj.html#X872DCA027E1A4A1D">7.1-4</a><br />
<code class="func">IsDistributive</code> <a href="chap7_mj.html#X7B76FD6E878ED4F1">7.3-6</a><br />
<code class="func">IsEntropic</code> <a href="chap7_mj.html#X7F23D4D97A38D223">7.3-7</a><br />
<code class="func">IsExactGroupFactorization</code> <a href="chap8_mj.html#X82FC16F386CE11F1">8.1-2</a><br />
<code class="func">IsExtraLoop</code> <a href="chap7_mj.html#X7988AFE27D06ACB5">7.4-1</a><br />
<code class="func">IsFlexible</code> <a href="chap7_mj.html#X7C32851A7AF1C45F">7.4-12</a><br />
<code class="func">IsIdempotent</code> <a href="chap7_mj.html#X7CB5896082D29173">7.3-3</a><br />
<code class="func">IsLCCLoop</code> <a href="chap7_mj.html#X784E08CD7B710AF4">7.6-1</a><br />
<code class="func">IsLCLoop</code> <a href="chap7_mj.html#X789E0A6979697C4C">7.4-6</a><br />
<code class="func">IsLeftALoop</code> <a href="chap7_mj.html#X7F063914804659F1">7.7-1</a><br />
<code class="func">IsLeftAlternative</code> <a href="chap7_mj.html#X7DF0196786B9CE08">7.4-13</a><br />
<code class="func">IsLeftAutomorphicLoop</code> <a href="chap7_mj.html#X7F063914804659F1">7.7-1</a><br />
<code class="func">IsLeftBolLoop</code> <a href="chap7_mj.html#X801DAAE8834A1A65">7.4-4</a><br />
<code class="func">IsLeftBruckLoop</code> <a href="chap7_mj.html#X85F1BD4280E44F5B">7.8-3</a><br />
<code class="func">IsLeftConjugacyClosedLoop</code> <a href="chap7_mj.html#X784E08CD7B710AF4">7.6-1</a><br />
<code class="func">IsLeftDistributive</code> <a href="chap7_mj.html#X7B76FD6E878ED4F1">7.3-6</a><br />
<code class="func">IsLeftKLoop</code> <a href="chap7_mj.html#X85F1BD4280E44F5B">7.8-3</a><br />
<code class="func">IsLeftNuclearSquareLoop</code> <a href="chap7_mj.html#X819F285887B5EB9E">7.4-8</a><br />
<code class="func">IsLeftPowerAlternative</code> <a href="chap7_mj.html#X875C3DF681B3FAE2">7.5-1</a><br />
IsLoop <a href="chap3_mj.html#X86F02BBD87FEA1C6">3.1</a><br />
<code class="func">IsLoopCayleyTable</code> <a href="chap4_mj.html#X7AAE48507A471069">4.2-2</a><br />
IsLoopElement <a href="chap3_mj.html#X86F02BBD87FEA1C6">3.1</a><br />
<code class="func">IsLoopTable</code> <a href="chap4_mj.html#X7AAE48507A471069">4.2-2</a><br />
<code class="func">IsMedial</code> <a href="chap7_mj.html#X7F23D4D97A38D223">7.3-7</a><br />
<code class="func">IsMiddleALoop</code> <a href="chap7_mj.html#X7DFE830584A769E5">7.7-2</a><br />
<code class="func">IsMiddleAutomorphicLoop</code> <a href="chap7_mj.html#X7DFE830584A769E5">7.7-2</a><br />
<code class="func">IsMiddleNuclearSquareLoop</code> <a href="chap7_mj.html#X8474F55681244A8A">7.4-9</a><br />
<code class="func">IsMoufangLoop</code> <a href="chap7_mj.html#X7F1C151484C97E61">7.4-2</a><br />
<code class="func">IsNilpotent</code> <a href="chap6_mj.html#X78A4B93781C96AAE">6.9-1</a><br />
<code class="func">IsNormal</code> <a href="chap6_mj.html#X838186F9836F678C">6.7-1</a><br />
<code class="func">IsNuclearSquareLoop</code> <a href="chap7_mj.html#X796650088213229B">7.4-11</a><br />
<code class="func">IsomorphicCopyByNormalSubloop</code> <a href="chap6_mj.html#X8121DE3A78795040">6.11-7</a><br />
<code class="func">IsomorphicCopyByPerm</code> <a href="chap6_mj.html#X85B3E22679FD8D81">6.11-6</a><br />
isomorphism <a href="chap2_mj.html#X791066ED7DD9F254">2.6</a><br />
<code class="func">IsomorphismLoops</code> <a href="chap6_mj.html#X7D7B10D6836FCA9F">6.11-2</a><br />
<code class="func">IsomorphismQuasigroups</code> <a href="chap6_mj.html#X801067F67E5292F7">6.11-1</a><br />
<code class="func">IsOsbornLoop</code> <a href="chap7_mj.html#X8655956878205FC1">7.6-4</a><br />
isotopism <a href="chap2_mj.html#X791066ED7DD9F254">2.6</a><br />
isotopism, principal <a href="chap2_mj.html#X791066ED7DD9F254">2.6</a><br />
<code class="func">IsotopismLoops</code> <a href="chap6_mj.html#X84C5ADE77F910F63">6.12-1</a><br />
<code class="func">IsPowerAlternative</code> <a href="chap7_mj.html#X875C3DF681B3FAE2">7.5-1</a><br />
<code class="func">IsPowerAssociative</code> <a href="chap7_mj.html#X7D53EA947F1CDA69">7.1-3</a><br />
IsQuasigroup <a href="chap3_mj.html#X86F02BBD87FEA1C6">3.1</a><br />
<code class="func">IsQuasigroupCayleyTable</code> <a href="chap4_mj.html#X81179355869B9DFE">4.2-1</a><br />
IsQuasigroupElement <a href="chap3_mj.html#X86F02BBD87FEA1C6">3.1</a><br />
<code class="func">IsQuasigroupTable</code> <a href="chap4_mj.html#X81179355869B9DFE">4.2-1</a><br />
<code class="func">IsRCCLoop</code> <a href="chap7_mj.html#X7B3016B47A1A8213">7.6-2</a><br />
<code class="func">IsRCLoop</code> <a href="chap7_mj.html#X7B03CC577802F4AB">7.4-7</a><br />
<code class="func">IsRightALoop</code> <a href="chap7_mj.html#X7EA9165A87F99E35">7.7-3</a><br />
<code class="func">IsRightAlternative</code> <a href="chap7_mj.html#X8416FAD87F148F5D">7.4-14</a><br />
<code class="func">IsRightAutomorphicLoop</code> <a href="chap7_mj.html#X7EA9165A87F99E35">7.7-3</a><br />
<code class="func">IsRightBolLoop</code> <a href="chap7_mj.html#X79279F9787E72566">7.4-5</a><br />
<code class="func">IsRightBruckLoop</code> <a href="chap7_mj.html#X857B373E7B4E0519">7.8-4</a><br />
<code class="func">IsRightConjugacyClosedLoop</code> <a href="chap7_mj.html#X7B3016B47A1A8213">7.6-2</a><br />
<code class="func">IsRightDistributive</code> <a href="chap7_mj.html#X7B76FD6E878ED4F1">7.3-6</a><br />
<code class="func">IsRightKLoop</code> <a href="chap7_mj.html#X857B373E7B4E0519">7.8-4</a><br />
<code class="func">IsRightNuclearSquareLoop</code> <a href="chap7_mj.html#X807B3B21825E3076">7.4-10</a><br />
<code class="func">IsRightPowerAlternative</code> <a href="chap7_mj.html#X875C3DF681B3FAE2">7.5-1</a><br />
<code class="func">IsSemisymmetric</code> <a href="chap7_mj.html#X834848ED85F9012B">7.3-1</a><br />
<code class="func">IsSimple</code> <a href="chap6_mj.html#X7D8E63A7824037CC">6.7-3</a><br />
<code class="func">IsSolvable</code> <a href="chap6_mj.html#X79B10B337A3B1C6E">6.10-1</a><br />
<code class="func">IsSteinerLoop</code> <a href="chap7_mj.html#X793600C9801F4F62">7.8-2</a><br />
<code class="func">IsSteinerQuasigroup</code> <a href="chap7_mj.html#X83DE7DD77C056C1F">7.3-4</a><br />
<code class="func">IsStronglyNilpotent</code> <a href="chap6_mj.html#X7E7C2D117B55F6A0">6.9-3</a><br />
<code class="func">IsSubloop</code> <a href="chap6_mj.html#X87AC8B7E80CE9260">6.2-3</a><br />
<code class="func">IsSubquasigroup</code> <a href="chap6_mj.html#X87AC8B7E80CE9260">6.2-3</a><br />
<code class="func">IsTotallySymmetric</code> <a href="chap7_mj.html#X834F809B8060B754">7.3-2</a><br />
<code class="func">IsUnipotent</code> <a href="chap7_mj.html#X7CA3DCA07B6CB9BD">7.3-5</a><br />
<code class="func">ItpSmallLoop</code> <a href="chap9_mj.html#X850C4C01817A098D">9.12-1</a><br />
K loop, left <a href="chap7_mj.html#X85F1BD4280E44F5B">7.8-3</a><br />
K loop, right <a href="chap7_mj.html#X857B373E7B4E0519">7.8-4</a><br />
latin square <a href="chap2_mj.html#X80243DE5826583B8">2.1</a><br />
latin square <a href="chap4_mj.html#X7DE8405B82BC36A9">4.1</a><br />
latin square, random <a href="chap4_mj.html#X7AE29A1A7AA5C25A">4.9</a><br />
LC loop <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
<code class="func">LCCLoop</code> <a href="chap9_mj.html#X80AB8B107D55FB19">9.6-2</a><br />
<code class="func">LeftBolLoop</code> <a href="chap9_mj.html#X7EE99F647C537994">9.2-1</a><br />
<code class="func">LeftConjugacyClosedLoop</code> <a href="chap9_mj.html#X80AB8B107D55FB19">9.6-2</a><br />
<code class="func">LeftDivision</code> <a href="chap5_mj.html#X7D5956967BCC1834">5.2-1</a><br />
<code class="func">LeftDivision</code> <a href="chap5_mj.html#X7D5956967BCC1834">5.2-1</a><br />
<code class="func">LeftDivision</code> <a href="chap5_mj.html#X7D5956967BCC1834">5.2-1</a><br />
<code class="func">LeftDivisionCayleyTable</code> <a href="chap5_mj.html#X804F67C8796A0EB3">5.2-2</a><br />
<code class="func">LeftInnerMapping</code> <a href="chap6_mj.html#X7EE1E78C856C6F7C">6.5-1</a><br />
<code class="func">LeftInnerMappingGroup</code> <a href="chap6_mj.html#X79CDA09A7D48BF2B">6.5-2</a><br />
<code class="func">LeftInverse</code> <a href="chap5_mj.html#X805781838020CF44">5.3-1</a><br />
<code class="func">LeftMultiplicationGroup</code> <a href="chap6_mj.html#X87302BE983A5FC61">6.4-1</a><br />
<code class="func">LeftNucleus</code> <a href="chap6_mj.html#X7DF536FC85BBD1D2">6.6-1</a><br />
<code class="func">LeftSection</code> <a href="chap6_mj.html#X7EB9197C80FB4664">6.3-2</a><br />
<code class="func">LeftTranslation</code> <a href="chap6_mj.html#X7B45B48C7C4D6061">6.3-1</a><br />
<code class="func">LibraryLoop</code> <a href="chap9_mj.html#X849865D6786EEF9B">9.1-1</a><br />
loop <a href="chap2_mj.html#X80243DE5826583B8">2.1</a><br />
loop, C <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
loop, Chein <a href="chap8_mj.html#X7CC6CDB786E9BBA0">8.2-3</a><br />
loop, LC <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
loop, Moufang <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
loop, Osborn <a href="chap7_mj.html#X8655956878205FC1">7.6-4</a><br />
loop, Paige <a href="chap9_mj.html#X8135C8FD8714C606">9.8</a><br />
loop, RC <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
loop, Steiner <a href="chap7_mj.html#X793600C9801F4F62">7.8-2</a><br />
loop, alternative <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
loop, associated left Bruck <a href="chap8_mj.html#X8664CA927DD73DBE">8.1-1</a><br />
loop, automorphic <a href="chap7_mj.html#X793B22EA8643C667">7.7</a><br />
loop, code <a href="chap7_mj.html#X790FA1188087D5C1">7.8-1</a><br />
loop, conjugacy closed <a href="chap7_mj.html#X8176B2C47A4629CD">7.6</a><br />
loop, extra <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
loop, flexible <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
loop, left Bol <a href="chap3_mj.html#X87E49ED884FA6DC4">3.3</a><br />
loop, left Bol <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
loop, left Bol <a href="chap8_mj.html#X8664CA927DD73DBE">8.1-1</a><br />
loop, left Bruck <a href="chap7_mj.html#X85F1BD4280E44F5B">7.8-3</a><br />
loop, left K <a href="chap7_mj.html#X85F1BD4280E44F5B">7.8-3</a><br />
loop, left alternative <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
loop, left automorphic <a href="chap7_mj.html#X793B22EA8643C667">7.7</a><br />
loop, left conjugacy closed <a href="chap7_mj.html#X8176B2C47A4629CD">7.6</a><br />
loop, left nuclear square <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
loop, left power alternative <a href="chap7_mj.html#X83A501387E1AC371">7.5</a><br />
loop, middle automorphic <a href="chap7_mj.html#X793B22EA8643C667">7.7</a><br />
loop, middle nuclear square <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
loop, nilpotent <a href="chap2_mj.html#X869CBCE381E2C422">2.4</a><br />
loop, nilpotent <a href="chap4_mj.html#X817132C887D3FD3A">4.9-2</a><br />
loop, nuclear square <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
loop, octonion <a href="chap9_mj.html#X81E82098822543EE">9.3-1</a><br />
loop, of Bol-Moufang type <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
loop, power alternative <a href="chap7_mj.html#X83A501387E1AC371">7.5</a><br />
loop, power associative <a href="chap5_mj.html#X7D44470C7DA59C1C">5.1-5</a><br />
loop, right Bol <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
loop, right Bruck <a href="chap7_mj.html#X857B373E7B4E0519">7.8-4</a><br />
loop, right K <a href="chap7_mj.html#X857B373E7B4E0519">7.8-4</a><br />
loop, right alternative <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
loop, right automorphic <a href="chap7_mj.html#X793B22EA8643C667">7.7</a><br />
loop, right conjugacy closed <a href="chap7_mj.html#X8176B2C47A4629CD">7.6</a><br />
loop, right nuclear square <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
loop, right power alternative <a href="chap7_mj.html#X83A501387E1AC371">7.5</a><br />
loop, sedenion <a href="chap9_mj.html#X843BD73F788049F7">9.11</a><br />
loop, simple <a href="chap3_mj.html#X87E49ED884FA6DC4">3.3</a><br />
loop, simple <a href="chap6_mj.html#X7D8E63A7824037CC">6.7-3</a><br />
loop, solvable <a href="chap2_mj.html#X869CBCE381E2C422">2.4</a><br />
loop, strongly nilpotent <a href="chap6_mj.html#X7E7C2D117B55F6A0">6.9-3</a><br />
loop isotope, principal <a href="chap2_mj.html#X791066ED7DD9F254">2.6</a><br />
loop table <a href="chap4_mj.html#X7DE8405B82BC36A9">4.1</a><br />
<code class="func">LoopByCayleyTable</code> <a href="chap4_mj.html#X860135BB85F2DB19">4.4-1</a><br />
<code class="func">LoopByCyclicModification</code> <a href="chap8_mj.html#X7B3165C083709831">8.2-1</a><br />
<code class="func">LoopByDihedralModification</code> <a href="chap8_mj.html#X7D7717C587BC2D1E">8.2-2</a><br />
<code class="func">LoopByExtension</code> <a href="chap4_mj.html#X79AEE93E7E15B802">4.8-2</a><br />
<code class="func">LoopByLeftSection</code> <a href="chap4_mj.html#X7EC1EB0D7B8382A1">4.6-2</a><br />
<code class="func">LoopByRightFolder</code> <a href="chap4_mj.html#X83168E62861F70AB">4.7-1</a><br />
<code class="func">LoopByRightSection</code> <a href="chap4_mj.html#X80B436ED7CC0749E">4.6-3</a><br />
<code class="func">LoopFromFile</code> <a href="chap4_mj.html#X81A1DB918057933E">4.5-1</a><br />
<code class="func">LoopMG2</code> <a href="chap8_mj.html#X7CC6CDB786E9BBA0">8.2-3</a><br />
<code class="func">LoopsUpToIsomorphism</code> <a href="chap6_mj.html#X8308F38283C61B20">6.11-4</a><br />
<code class="func">LoopsUpToIsotopism</code> <a href="chap6_mj.html#X841E540B7A7EF29F">6.12-2</a><br />
<code class="func">LowerCentralSeries</code> <a href="chap6_mj.html#X817BDBC2812992ED">6.9-5</a><br />
magma <a href="chap2_mj.html#X80243DE5826583B8">2.1</a><br />
medial quasigroup <a href="chap7_mj.html#X7F23D4D97A38D223">7.3-7</a><br />
<code class="func">MiddleInnerMapping</code> <a href="chap6_mj.html#X7EE1E78C856C6F7C">6.5-1</a><br />
<code class="func">MiddleInnerMappingGroup</code> <a href="chap6_mj.html#X79CDA09A7D48BF2B">6.5-2</a><br />
<code class="func">MiddleNucleus</code> <a href="chap6_mj.html#X7DF536FC85BBD1D2">6.6-1</a><br />
modification, Moufang <a href="chap8_mj.html#X819F82737C2A860D">8.2</a><br />
modification, cyclic <a href="chap8_mj.html#X7B3165C083709831">8.2-1</a><br />
modification, dihedral <a href="chap8_mj.html#X7D7717C587BC2D1E">8.2-2</a><br />
Moufang loop <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
<code class="func">MoufangLoop</code> <a href="chap9_mj.html#X81E82098822543EE">9.3-1</a><br />
multiplication group <a href="chap2_mj.html#X7EC01B437CC2B2C9">2.2</a><br />
multiplication group, left <a href="chap2_mj.html#X7EC01B437CC2B2C9">2.2</a><br />
multiplication group, relative <a href="chap6_mj.html#X847256B779E1E7E5">6.4-2</a><br />
multiplication group, relative left <a href="chap6_mj.html#X847256B779E1E7E5">6.4-2</a><br />
multiplication group, relative right <a href="chap6_mj.html#X847256B779E1E7E5">6.4-2</a><br />
multiplication group, right <a href="chap2_mj.html#X7EC01B437CC2B2C9">2.2</a><br />
multiplication table <a href="chap4_mj.html#X7DE8405B82BC36A9">4.1</a><br />
<code class="func">MultiplicationGroup</code> <a href="chap6_mj.html#X87302BE983A5FC61">6.4-1</a><br />
<code class="func">MyLibraryLoop</code> <a href="chap9_mj.html#X78C4B8757902D49F">9.1-2</a><br />
<code class="func">NaturalHomomorphismByNormalSubloop</code> <a href="chap6_mj.html#X870FCB497AECC730">6.8-2</a><br />
neutral element <a href="chap2_mj.html#X80243DE5826583B8">2.1</a><br />
nilpotence class <a href="chap2_mj.html#X869CBCE381E2C422">2.4</a><br />
<code class="func">NilpotencyClassOfLoop</code> <a href="chap6_mj.html#X7D5FC62581A99482">6.9-2</a><br />
nilpotent loop <a href="chap2_mj.html#X869CBCE381E2C422">2.4</a><br />
nilpotent loop, strongly <a href="chap6_mj.html#X7E7C2D117B55F6A0">6.9-3</a><br />
<code class="func">NilpotentLoop</code> <a href="chap9_mj.html#X7A9C960D86E2AD28">9.9-1</a><br />
normal closure <a href="chap6_mj.html#X7BDEA0A98720D1BB">6.7-2</a><br />
normal subloop <a href="chap6_mj.html#X838186F9836F678C">6.7-1</a><br />
<code class="func">NormalClosure</code> <a href="chap6_mj.html#X7BDEA0A98720D1BB">6.7-2</a><br />
<code class="func">NormalizedQuasigroupTable</code> <a href="chap4_mj.html#X821A2F9E85FAD8BF">4.3-3</a><br />
<code class="func">Nuc</code> <a href="chap6_mj.html#X84D389677A91C290">6.6-2</a><br />
nuclear square loop <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
nuclear square loop, left <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
nuclear square loop, middle <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
nuclear square loop, right <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
<code class="func">NuclearExtension</code> <a href="chap4_mj.html#X784733C67AA6B2FA">4.8-1</a><br />
nucleus <a href="chap2_mj.html#X83EDF04F7952143F">2.3</a><br />
nucleus, left <a href="chap2_mj.html#X83EDF04F7952143F">2.3</a><br />
nucleus, middle <a href="chap2_mj.html#X83EDF04F7952143F">2.3</a><br />
nucleus, right <a href="chap2_mj.html#X83EDF04F7952143F">2.3</a><br />
<code class="func">NucleusOfLoop</code> <a href="chap6_mj.html#X84D389677A91C290">6.6-2</a><br />
<code class="func">NucleusOfQuasigroup</code> <a href="chap6_mj.html#X84D389677A91C290">6.6-2</a><br />
octonion loop <a href="chap9_mj.html#X81E82098822543EE">9.3-1</a><br />
<code class="func">One</code> <a href="chap5_mj.html#X8129A6877FFD804B">5.1-3</a><br />
<code class="func">OneLoopTableInGroup</code> <a href="chap8_mj.html#X7BFFC66A824BA6AA">8.4-3</a><br />
<code class="func">OneLoopWithMltGroup</code> <a href="chap8_mj.html#X8266DE05824226E6">8.4-6</a><br />
<code class="func">OneProperLoopTableInGroup</code> <a href="chap8_mj.html#X84C5A76585B335FF">8.4-4</a><br />
<code class="func">Opposite</code> <a href="chap4_mj.html#X87B6AED47EE2BCD3">4.12-1</a><br />
opposite quasigroup <a href="chap4_mj.html#X7865FC8D7854C2E3">4.12</a><br />
<code class="func">OppositeLoop</code> <a href="chap4_mj.html#X87B6AED47EE2BCD3">4.12-1</a><br />
<code class="func">OppositeQuasigroup</code> <a href="chap4_mj.html#X87B6AED47EE2BCD3">4.12-1</a><br />
Osborn loop <a href="chap7_mj.html#X8655956878205FC1">7.6-4</a><br />
Paige loop <a href="chap9_mj.html#X8135C8FD8714C606">9.8</a><br />
<code class="func">PaigeLoop</code> <a href="chap9_mj.html#X7FCF4D6B7AD66D74">9.8-1</a><br />
<code class="func">Parent</code> <a href="chap6_mj.html#X7BC856CC7F116BB0">6.1-1</a><br />
<code class="func">PosInParent</code> <a href="chap6_mj.html#X832295DE866E44EE">6.1-3</a><br />
<code class="func">Position</code> <a href="chap6_mj.html#X79975EC6783B4293">6.1-2</a><br />
power alternative loop <a href="chap7_mj.html#X83A501387E1AC371">7.5</a><br />
power alternative loop, left <a href="chap7_mj.html#X83A501387E1AC371">7.5</a><br />
power alternative loop, right <a href="chap7_mj.html#X83A501387E1AC371">7.5</a><br />
power associative loop <a href="chap5_mj.html#X7D44470C7DA59C1C">5.1-5</a><br />
power associative quasigroup <a href="chap7_mj.html#X7D53EA947F1CDA69">7.1-3</a><br />
<code class="func">PrincipalLoopIsotope</code> <a href="chap4_mj.html#X79CEA57C850C7070">4.10-2</a><br />
quasigroup <a href="chap2_mj.html#X80243DE5826583B8">2.1</a><br />
quasigroup, Steiner <a href="chap7_mj.html#X83DE7DD77C056C1F">7.3-4</a><br />
quasigroup, diassociative <a href="chap7_mj.html#X872DCA027E1A4A1D">7.1-4</a><br />
quasigroup, distributive <a href="chap7_mj.html#X7B76FD6E878ED4F1">7.3-6</a><br />
quasigroup, entropic <a href="chap7_mj.html#X7F23D4D97A38D223">7.3-7</a><br />
quasigroup, idempotent <a href="chap7_mj.html#X7CB5896082D29173">7.3-3</a><br />
quasigroup, left distributive <a href="chap7_mj.html#X7B76FD6E878ED4F1">7.3-6</a><br />
quasigroup, medial <a href="chap7_mj.html#X7F23D4D97A38D223">7.3-7</a><br />
quasigroup, opposite <a href="chap4_mj.html#X7865FC8D7854C2E3">4.12</a><br />
quasigroup, power associative <a href="chap7_mj.html#X7D53EA947F1CDA69">7.1-3</a><br />
quasigroup, right distributive <a href="chap7_mj.html#X7B76FD6E878ED4F1">7.3-6</a><br />
quasigroup, semisymmetric <a href="chap7_mj.html#X834848ED85F9012B">7.3-1</a><br />
quasigroup, totally symmetric <a href="chap7_mj.html#X834F809B8060B754">7.3-2</a><br />
quasigroup, unipotent <a href="chap7_mj.html#X7CA3DCA07B6CB9BD">7.3-5</a><br />
quasigroup table <a href="chap4_mj.html#X7DE8405B82BC36A9">4.1</a><br />
<code class="func">QuasigroupByCayleyTable</code> <a href="chap4_mj.html#X860135BB85F2DB19">4.4-1</a><br />
<code class="func">QuasigroupByLeftSection</code> <a href="chap4_mj.html#X7EC1EB0D7B8382A1">4.6-2</a><br />
<code class="func">QuasigroupByRightFolder</code> <a href="chap4_mj.html#X83168E62861F70AB">4.7-1</a><br />
<code class="func">QuasigroupByRightSection</code> <a href="chap4_mj.html#X80B436ED7CC0749E">4.6-3</a><br />
<code class="func">QuasigroupFromFile</code> <a href="chap4_mj.html#X81A1DB918057933E">4.5-1</a><br />
<code class="func">QuasigroupsUpToIsomorphism</code> <a href="chap6_mj.html#X82373C5479574F22">6.11-3</a><br />
<code class="func">RandomLoop</code> <a href="chap4_mj.html#X8271C0F5786B6FA9">4.9-1</a><br />
<code class="func">RandomNilpotentLoop</code> <a href="chap4_mj.html#X817132C887D3FD3A">4.9-2</a><br />
<code class="func">RandomQuasigroup</code> <a href="chap4_mj.html#X8271C0F5786B6FA9">4.9-1</a><br />
RC loop <a href="chap7_mj.html#X780D907986EBA6C7">7.4</a><br />
<code class="func">RCCLoop</code> <a href="chap9_mj.html#X806B2DE67990E42F">9.6-1</a><br />
<code class="func">RelativeLeftMultiplicationGroup</code> <a href="chap6_mj.html#X847256B779E1E7E5">6.4-2</a><br />
<code class="func">RelativeMultiplicationGroup</code> <a href="chap6_mj.html#X847256B779E1E7E5">6.4-2</a><br />
<code class="func">RelativeRightMultiplicationGroup</code> <a href="chap6_mj.html#X847256B779E1E7E5">6.4-2</a><br />
<code class="func">RightBolLoop</code> <a href="chap9_mj.html#X8774304282654C58">9.2-2</a><br />
<code class="func">RightBolLoopByExactGroupFactorization</code> <a href="chap8_mj.html#X7DCA64807F899127">8.1-3</a><br />
<code class="func">RightConjugacyClosedLoop</code> <a href="chap9_mj.html#X806B2DE67990E42F">9.6-1</a><br />
<code class="func">RightCosets</code> <a href="chap6_mj.html#X835F48248571364F">6.2-6</a><br />
<code class="func">RightDivision</code> <a href="chap5_mj.html#X7D5956967BCC1834">5.2-1</a><br />
<code class="func">RightDivision</code> <a href="chap5_mj.html#X7D5956967BCC1834">5.2-1</a><br />
<code class="func">RightDivision</code> <a href="chap5_mj.html#X7D5956967BCC1834">5.2-1</a><br />
<code class="func">RightDivisionCayleyTable</code> <a href="chap5_mj.html#X804F67C8796A0EB3">5.2-2</a><br />
<code class="func">RightInnerMapping</code> <a href="chap6_mj.html#X7EE1E78C856C6F7C">6.5-1</a><br />
<code class="func">RightInnerMappingGroup</code> <a href="chap6_mj.html#X79CDA09A7D48BF2B">6.5-2</a><br />
<code class="func">RightInverse</code> <a href="chap5_mj.html#X805781838020CF44">5.3-1</a><br />
<code class="func">RightMultiplicationGroup</code> <a href="chap6_mj.html#X87302BE983A5FC61">6.4-1</a><br />
<code class="func">RightNucleus</code> <a href="chap6_mj.html#X7DF536FC85BBD1D2">6.6-1</a><br />
<code class="func">RightSection</code> <a href="chap6_mj.html#X7EB9197C80FB4664">6.3-2</a><br />
<code class="func">RightTranslation</code> <a href="chap6_mj.html#X7B45B48C7C4D6061">6.3-1</a><br />
<code class="func">RightTransversal</code> <a href="chap6_mj.html#X85C65D06822E716F">6.2-7</a><br />
section, left <a href="chap2_mj.html#X7EC01B437CC2B2C9">2.2</a><br />
section, right <a href="chap2_mj.html#X7EC01B437CC2B2C9">2.2</a><br />
sedenion loop <a href="chap9_mj.html#X843BD73F788049F7">9.11</a><br />
semisymmetric quasigroup <a href="chap7_mj.html#X834848ED85F9012B">7.3-1</a><br />
<code class="func">SetLoopElmName</code> <a href="chap3_mj.html#X7A7EB1B579273D07">3.4-1</a><br />
<code class="func">SetQuasigroupElmName</code> <a href="chap3_mj.html#X7A7EB1B579273D07">3.4-1</a><br />
simple loop <a href="chap3_mj.html#X87E49ED884FA6DC4">3.3</a><br />
simple loop <a href="chap6_mj.html#X7D8E63A7824037CC">6.7-3</a><br />
<code class="func">Size</code> <a href="chap5_mj.html#X858ADA3B7A684421">5.1-4</a><br />
<code class="func">SmallGeneratingSet</code> <a href="chap5_mj.html#X814DBABC878D5232">5.5-3</a><br />
<code class="func">SmallLoop</code> <a href="chap9_mj.html#X7C6EE23E84CD87D3">9.7-1</a><br />
solvability class <a href="chap2_mj.html#X869CBCE381E2C422">2.4</a><br />
solvable loop <a href="chap2_mj.html#X869CBCE381E2C422">2.4</a><br />
Steiner loop <a href="chap7_mj.html#X793600C9801F4F62">7.8-2</a><br />
Steiner quasigroup <a href="chap7_mj.html#X83DE7DD77C056C1F">7.3-4</a><br />
<code class="func">SteinerLoop</code> <a href="chap9_mj.html#X87C235457E859AF4">9.5-1</a><br />
strongly nilpotent loop <a href="chap6_mj.html#X7E7C2D117B55F6A0">6.9-3</a><br />
subloop <a href="chap2_mj.html#X83EDF04F7952143F">2.3</a><br />
<code class="func">Subloop</code> <a href="chap6_mj.html#X84E6744E804AE830">6.2-2</a><br />
subloop, normal <a href="chap2_mj.html#X83EDF04F7952143F">2.3</a><br />
subloop, normal <a href="chap6_mj.html#X838186F9836F678C">6.7-1</a><br />
subquasigroup <a href="chap2_mj.html#X83EDF04F7952143F">2.3</a><br />
<code class="func">Subquasigroup</code> <a href="chap6_mj.html#X7DD511FF864FCDFF">6.2-1</a><br />
totally symmetric quasigroup <a href="chap7_mj.html#X834F809B8060B754">7.3-2</a><br />
translation, left <a href="chap2_mj.html#X7EC01B437CC2B2C9">2.2</a><br />
translation, right <a href="chap2_mj.html#X7EC01B437CC2B2C9">2.2</a><br />
transversal <a href="chap6_mj.html#X85C65D06822E716F">6.2-7</a><br />
<code class="func">TrialityPcGroup</code> <a href="chap8_mj.html#X82CC977085DFDFE8">8.3-2</a><br />
<code class="func">TrialityPermGroup</code> <a href="chap8_mj.html#X7DB4DE647F6F56F0">8.3-1</a><br />
unipotent quasigroup <a href="chap7_mj.html#X7CA3DCA07B6CB9BD">7.3-5</a><br />
<code class="func">UpperCentralSeries</code> <a href="chap6_mj.html#X7ED37AA07BEE79E0">6.9-4</a><br />
<p> </p>
</div>
<div class="chlinkprevnextbot">&nbsp;<a href="chap0_mj.html">[Top of Book]</a>&nbsp; <a href="chap0_mj.html#contents">[Contents]</a>&nbsp; &nbsp;<a href="chapBib_mj.html">[Previous Chapter]</a>&nbsp; </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="chapA_mj.html">A</a> <a href="chapB_mj.html">B</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>

132
doc/chooser.html Normal file
View file

@ -0,0 +1,132 @@
<?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>
<title>GAPDoc Style Chooser</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">
<!-- find current value of name nam in form -->
function currval(nam) {
var chform = document.forms[0].elements;
for (var i=0; chform.length > i; i++) {
if (chform[i].name == nam && chform[i].type == "radio" &&
chform[i].checked == true)
return chform[i].value;
}
return "";
}
<!-- find style from current values in form -->
function getstyle() {
var choices = ["toggle","colorprompt","tocside","font","justify"];
var style = "";
for (var i=0; choices.length > i; i++) {
var a = currval(choices[i]);
if (a.length > 0) {
if (style.length > 0)
style = style + ",";
style = style + a;
}
}
if (style.length == 0)
style = "default";
return style;
}
<!-- adjust the back link -->
function f() {
addr = window.location.search.split("=")[1];
addr = addr + "?GAPDocStyle=" + getstyle();
document.getElementsByName("backLINK")[0].href = addr;
}
function resetf() {
addr = window.location.search.split("=")[1];
addr = addr + "?GAPDocStyle=default";
document.getElementsByName("backLINK")[0].href = addr;
}
<!-- initialize form from GAPDocStyle cookie -->
function initform() {
var style = valueString(document.cookie, "GAPDocStyle");
if (style != 0 && style.length > 0 && style.length != "default") {
stlist = style.split(",");
var chform = document.forms[0].elements;
for (var i=0; chform.length > i; i++) {
if (chform[i].type == "radio") {
for (var j=0; stlist.length > j; j++) {
if (chform[i].value == stlist[j])
chform[i].checked = true;
}
}
}
}
}
</script>
</head>
<body class="chooser">
<h2>Setting preferences for GAPDoc manuals</h2>
<form name="SetGAPDocHTMLStyle" action="">
<p>
<input name="reset" type="reset" value="Reset to defaults"
onclick="javascript:resetf()"/>
</p>
<p>
Unfold subsections in menus only by mouse clicks:
<input type="radio" name="toggle" value="" checked="checked"
onclick="javascript:f()"/> no (default)
&nbsp;&nbsp;&nbsp;
<input type="radio" name="toggle" value="toggless"
onclick="javascript:f()"/> yes
</p>
<p>
Show GAP examples as in sessions with <code>ColorPrompt(true)</code>:
<input type="radio" name="colorprompt" value="" checked="checked"
onclick="javascript:f()"/> yes
(default) &nbsp;&nbsp;&nbsp;
<input type="radio" name="colorprompt" value="nocolorprompt"
onclick="javascript:f()"/> no
</p>
<p>
Display side of table of contents within chapters:
<input type="radio" name="tocside" value="" checked="checked"
onclick="javascript:f()"/> right (default) &nbsp;&nbsp;&nbsp;
<input type="radio" name="tocside" value="lefttoc"
onclick="javascript:f()"/> left
</p>
<p>
Main document font:
<input type="radio" name="font" value="" checked="checked"
onclick="javascript:f()"/> Helvetica/sans
serif (default) &nbsp;&nbsp;&nbsp;
<input type="radio" name="font" value="times"
onclick="javascript:f()"/> Times/serif
</p>
<p>
Paragraph formatting:
<input type="radio" name="justify" value="" checked="checked"
onclick="javascript:f()"/> left-right
justified (default) &nbsp;&nbsp;&nbsp;
<input type="radio" name="justify" value="ragged"
onclick="javascript:f()"/> ragged right
</p>
</form>
<p>
<a name="backLINK" href=""><strong>Apply settings to last page.</strong></a>
</p>
<script type="text/javascript">
initform();
f();
</script>
</body>
</html>

437
doc/gapdoc.dtd Normal file
View file

@ -0,0 +1,437 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- ==================================================================
gapdoc.dtd - XML Document type definition for GAP documentation
By Frank Lübeck and Max Neunhöffer
================================================================== -->
<!-- Note that this definition goes "bottom-up" because entities can only
be used after their definition in the file. -->
<!-- ==================================================================
Some entities:
================================================================== -->
<!-- The standard XML entities: -->
<!ENTITY lt "&#38;#60;">
<!ENTITY gt "&#62;">
<!ENTITY amp "&#38;#38;">
<!ENTITY apos "&#39;">
<!ENTITY quot "&#34;">
<!-- The following were introduced in GAPDoc version < 1.0, it is no longer
necessary to take care of LaTeX special characters
(we keep the entities with simplified definitions for compatibility) -->
<!ENTITY tamp "&amp;">
<!ENTITY tlt "&lt;">
<!ENTITY tgt "&gt;">
<!ENTITY hash "#">
<!ENTITY dollar "$">
<!ENTITY percent "&#37;">
<!ENTITY tilde "~">
<!ENTITY bslash "\\">
<!ENTITY obrace "{">
<!ENTITY cbrace "}">
<!ENTITY uscore "_">
<!ENTITY circum "^">
<!-- ==================================================================
Our predefined entities:
================================================================== -->
<!ENTITY nbsp "&#160;">
<!ENTITY ndash "&#x2013;">
<!ENTITY GAP "<Package>GAP</Package>">
<!ENTITY GAPDoc "<Package>GAPDoc</Package>">
<!ENTITY TeX
"<Alt Only='LaTeX'>{\TeX}</Alt><Alt Not='LaTeX'>TeX</Alt>">
<!ENTITY LaTeX
"<Alt Only='LaTeX'>{\LaTeX}</Alt><Alt Not='LaTeX'>LaTeX</Alt>">
<!ENTITY BibTeX
"<Alt Only='LaTeX'>{Bib\TeX}</Alt><Alt Not='LaTeX'>BibTeX</Alt>">
<!ENTITY MeatAxe "<Package>MeatAxe</Package>">
<!ENTITY XGAP "<Package>XGAP</Package>">
<!ENTITY copyright "&#169;">
<!-- and unicode math symbols -->
<!ENTITY CC "&#x2102;" > <!-- double struck -->
<!ENTITY ZZ "&#x2124;" >
<!ENTITY NN "&#x2115;" >
<!ENTITY PP "&#x2119;" >
<!ENTITY QQ "&#x211a;" >
<!ENTITY HH "&#x210d;" >
<!ENTITY RR "&#x211d;" >
<!-- ==================================================================
The following describes the "innermost" documentation text which
can occur at various places in the document like for example
section headings. It does neither contain further sectioning
elements nor environments like Enums or Lists.
================================================================== -->
<!ENTITY % InnerText "#PCDATA |
Alt |
Emph | E |
Par | P | Br |
Keyword | K | Arg | A | Quoted | Q | Code | C |
File | F | Button | B | Package |
M | Math | Display |
Example | Listing | Log | Verb |
URL | Email | Homepage | Address | Cite | Label |
Ref | Index |
Ignore" >
<!ELEMENT Alt (%InnerText;)*> <!-- This is only to allow "Only" and
"Not" attributes for normal text -->
<!ATTLIST Alt Only CDATA #IMPLIED
Not CDATA #IMPLIED>
<!-- The following elements declare a certain block of InnerText to
have a certain property. They are non-terminal and can contain
any InnerText recursively. -->
<!ELEMENT Emph (%InnerText;)*> <!-- Emphasize something -->
<!ELEMENT E (%InnerText;)*> <!-- the same as shortcut -->
<!-- The following is an empty element marking a paragraph boundary. -->
<!ELEMENT Par EMPTY> <!-- this is intentionally empty! -->
<!ELEMENT P EMPTY> <!-- the same as shortcut -->
<!-- And here is an element for forcing a line break, not starting
a new paragraph. -->
<!ELEMENT Br EMPTY> <!-- a forced line break -->
<!-- The following elements mark a word or sentence to be of a certain
kind, such that it can be typeset differently. They are terminal
elements that should only contain character data. But we have to
allow Alt elements for handling special characters. For these
elements we introduce a long name - which is easy to remember -
and a short name - which you may prefer because of the shorter
markup. -->
<!ELEMENT Keyword (#PCDATA|Alt)*> <!-- Keyword -->
<!ELEMENT K (#PCDATA|Alt)*> <!-- Keyword (shortcut) -->
<!ELEMENT Arg (#PCDATA|Alt)*> <!-- Argument -->
<!ELEMENT A (#PCDATA|Alt)*> <!-- Argument (shortcut) -->
<!ELEMENT Code (#PCDATA|Alt|A|Arg)*> <!-- GAP code -->
<!ELEMENT C (#PCDATA|Alt|A|Arg)*> <!-- GAP code (shortcut) -->
<!ELEMENT File (#PCDATA|Alt)*> <!-- Filename -->
<!ELEMENT F (#PCDATA|Alt)*> <!-- Filename (shortcut) -->
<!ELEMENT Button (#PCDATA|Alt)*> <!-- "Button" (also Menu, Key) -->
<!ELEMENT B (#PCDATA|Alt)*> <!-- "Button" (shortcut) -->
<!ELEMENT Package (#PCDATA|Alt)*> <!-- A package name -->
<!ELEMENT Quoted (%InnerText;)*> <!-- Quoted (in quotes) text -->
<!ELEMENT Q (%InnerText;)*> <!-- Quoted text (shortcut) -->
<!-- The following elements contain mathematical formulae. They are
terminal elements that contain character data in TeX notation. -->
<!-- Math with well defined translation to text output -->
<!ELEMENT M (#PCDATA|A|Arg|Alt)*>
<!-- Normal TeX math mode formula -->
<!ELEMENT Math (#PCDATA|A|Arg|Alt)*>
<!-- TeX displayed math mode formula -->
<!ELEMENT Display (#PCDATA|A|Arg|Alt)*>
<!-- Mode="M" causes <M>-style formatting -->
<!ATTLIST Display Mode CDATA #IMPLIED>
<!-- The following elements contain GAP related text like code,
session logs or examples. They are all terminal elements and
consist of character data which is normally typeset verbatim. The
different types of the elements only control how they are
treated. -->
<!ELEMENT Example (#PCDATA)> <!-- This is subject to the automatic
example checking mechanism -->
<!ELEMENT Log (#PCDATA)> <!-- This not -->
<!ELEMENT Listing (#PCDATA)> <!-- This is just for code listings -->
<!ATTLIST Listing Type CDATA #IMPLIED> <!-- a comment about the type of
listed code, may appear in
output -->
<!-- One further verbatim element, this is truely verbatim without
any processing and intended for ASCII substitutes of complicated
displayed formulae or tables. -->
<!ELEMENT Verb (#PCDATA)>
<!-- The following elements are for cross-referencing purposes like
URLs, citations, references, and the index. All these elements
are terminal and need special methods to make up the actual
output during document generation. -->
<!ELEMENT URL (#PCDATA|Alt|Link|LinkText)*> <!-- Link, LinkText
variant for case where text needs further markup -->
<!ATTLIST URL Text CDATA #IMPLIED> <!-- This is for output formats
that have links like HTML -->
<!ELEMENT Link (%InnerText;)*> <!-- the URL -->
<!ELEMENT LinkText (%InnerText;)*> <!-- text for links, can contain markup -->
<!-- The following two are actually URLs, but the element name determines
the type. -->
<!ELEMENT Email (#PCDATA|Alt|Link|LinkText)*>
<!ELEMENT Homepage (#PCDATA|Alt|Link|LinkText)*>
<!-- Those who still want to give postal addresses can use the following
element. Use <Br/> for specifying typical line breaks -->
<!ELEMENT Address (#PCDATA|Alt|Br)*>
<!ELEMENT Cite EMPTY>
<!ATTLIST Cite Key CDATA #REQUIRED
Where CDATA #IMPLIED>
<!ELEMENT Label EMPTY>
<!ATTLIST Label Name CDATA #REQUIRED>
<!ELEMENT Ref EMPTY>
<!ATTLIST Ref Func CDATA #IMPLIED
Oper CDATA #IMPLIED
Meth CDATA #IMPLIED
Filt CDATA #IMPLIED
Prop CDATA #IMPLIED
Attr CDATA #IMPLIED
Var CDATA #IMPLIED
Fam CDATA #IMPLIED
InfoClass CDATA #IMPLIED
Chap CDATA #IMPLIED
Sect CDATA #IMPLIED
Subsect CDATA #IMPLIED
Appendix CDATA #IMPLIED
Text CDATA #IMPLIED
Label CDATA #IMPLIED
BookName CDATA #IMPLIED
Style (Text|Number) #IMPLIED> <!-- normally automatic -->
<!-- Note that only one attribute of Ref is used normally. BookName
and Style can be specified in addition to handle external
references and the typesetting style of the reference. -->
<!-- For explicit index entries (Func and so on should cause an
automatically generated index entry). Use the attributes Key,
Subkey for sorting (simplified, without markup). The Subkey value
also gets printed. Use the optional Subkey element if the printed
version needs some markup. -->
<!ELEMENT Index (%InnerText;|Subkey)*>
<!ATTLIST Index Key CDATA #IMPLIED
Subkey CDATA #IMPLIED>
<!ELEMENT Subkey (%InnerText;)*>
<!-- ==================================================================
The following describes the normal documentation text which can
occur at various places in the document. It does not contain
further sectioning elements. In addition to InnerText it can contain
environments like enumerations, lists, and such.
================================================================== -->
<!ENTITY % Text "%InnerText; | List | Enum | Table">
<!ELEMENT Item ( %Text;)*>
<!ELEMENT Mark ( %InnerText;)*>
<!ELEMENT BigMark ( %InnerText;)*>
<!ELEMENT List ( ((Mark,Item)|(BigMark,Item)|Item)+ )>
<!ATTLIST List Only CDATA #IMPLIED
Not CDATA #IMPLIED>
<!ELEMENT Enum ( Item+ )>
<!ATTLIST Enum Only CDATA #IMPLIED
Not CDATA #IMPLIED>
<!ELEMENT Table ( Caption?, (Row | HorLine)+ )>
<!ATTLIST Table Label CDATA #IMPLIED
Only CDATA #IMPLIED
Not CDATA #IMPLIED
Align CDATA #REQUIRED> <!-- A TeX tabular string -->
<!-- We allow | and l,c,r, nothing else -->
<!ELEMENT Row ( Item+ )>
<!ELEMENT HorLine EMPTY>
<!ELEMENT Caption ( %InnerText;)*>
<!-- ==================================================================
We start defining some things within the overall structure:
================================================================== -->
<!-- The TitlePage consists of several sub-elements: -->
<!ELEMENT TitlePage (Title, Subtitle?, Version?, TitleComment?,
Author+, Date?, Address?, Abstract?, Copyright?,
Acknowledgements? , Colophon? )>
<!ELEMENT Title (%Text;)*>
<!ELEMENT Subtitle (%Text;)*>
<!ELEMENT Version (%Text;)*>
<!ELEMENT TitleComment (%Text;)*>
<!ELEMENT Author (%Text;)*> <!-- There may be more than one Author! -->
<!ELEMENT Date (%Text;)*>
<!ELEMENT Abstract (%Text;)*>
<!ELEMENT Copyright (%Text;)*>
<!ELEMENT Acknowledgements (%Text;)*>
<!ELEMENT Colophon (%Text;)*>
<!-- The following things just specify some information about the
corresponding parts of the Book: -->
<!ELEMENT TableOfContents EMPTY>
<!ELEMENT Bibliography EMPTY>
<!ATTLIST Bibliography Databases CDATA #REQUIRED
Style CDATA #IMPLIED>
<!ELEMENT TheIndex EMPTY>
<!-- ==================================================================
The Ignore element can be used everywhere to include further
information in a GAPDoc document which is not intended for the
standard converters (e.g., source code, not yet finished stuff,
and so on. This information can be extracted by special converter
routines, more precise information about the content of an Ignore
element can be given by the "Remark" attribute.
================================================================== -->
<!ELEMENT Ignore (%Text;| Chapter | Section | Subsection | ManSection |
Heading)*>
<!ATTLIST Ignore Remark CDATA #IMPLIED>
<!-- ==================================================================
Now we go on with the overall structure by defining the sectioning
structure, which includes the Synopsis element:
================================================================== -->
<!ELEMENT Subsection (%Text;| Heading)*>
<!ATTLIST Subsection Label CDATA #IMPLIED> <!-- For reference purposes -->
<!ELEMENT ManSection ( Heading?,
((Func, Returns?) | (Oper, Returns?) |
(Meth, Returns?) | (Filt, Returns?) |
(Prop, Returns?) | (Attr, Returns?) |
Var | Fam | InfoClass)+, Description )>
<!ATTLIST ManSection Label CDATA #IMPLIED> <!-- For reference purposes -->
<!ELEMENT Returns (%Text;)*>
<!ELEMENT Description (%Text;)*>
<!-- Note that the ManSection element is actually a subsection with
respect to labelling, referencing, and counting of sectioning
elements. -->
<!ELEMENT Func EMPTY>
<!ATTLIST Func Name CDATA #REQUIRED
Label CDATA #IMPLIED
Arg CDATA #REQUIRED
Comm CDATA #IMPLIED>
<!-- Note that Arg contains the full list of arguments, including
optional parts, which are denoted by square brackets [].
Arguments are separated by whitespace, commas count as
whitespace. -->
<!-- Note further that although Name and Label are CDATA (and not ID)
Label must make up a unique identifier. -->
<!ELEMENT Oper EMPTY>
<!ATTLIST Oper Name CDATA #REQUIRED
Label CDATA #IMPLIED
Arg CDATA #REQUIRED
Comm CDATA #IMPLIED>
<!ELEMENT Meth EMPTY>
<!ATTLIST Meth Name CDATA #REQUIRED
Label CDATA #IMPLIED
Arg CDATA #REQUIRED
Comm CDATA #IMPLIED>
<!ELEMENT Filt EMPTY>
<!ATTLIST Filt Name CDATA #REQUIRED
Label CDATA #IMPLIED
Arg CDATA #IMPLIED
Comm CDATA #IMPLIED
Type CDATA #IMPLIED>
<!ELEMENT Prop EMPTY>
<!ATTLIST Prop Name CDATA #REQUIRED
Label CDATA #IMPLIED
Arg CDATA #REQUIRED
Comm CDATA #IMPLIED>
<!ELEMENT Attr EMPTY>
<!ATTLIST Attr Name CDATA #REQUIRED
Label CDATA #IMPLIED
Arg CDATA #REQUIRED
Comm CDATA #IMPLIED>
<!ELEMENT Var EMPTY>
<!ATTLIST Var Name CDATA #REQUIRED
Label CDATA #IMPLIED
Comm CDATA #IMPLIED>
<!ELEMENT Fam EMPTY>
<!ATTLIST Fam Name CDATA #REQUIRED
Label CDATA #IMPLIED
Comm CDATA #IMPLIED>
<!ELEMENT InfoClass EMPTY>
<!ATTLIST InfoClass Name CDATA #REQUIRED
Label CDATA #IMPLIED
Comm CDATA #IMPLIED>
<!ELEMENT Heading (%InnerText;)*>
<!ELEMENT Section (%Text;| Heading | Subsection | ManSection)*>
<!ATTLIST Section Label CDATA #IMPLIED> <!-- For reference purposes -->
<!ELEMENT Chapter (%Text;| Heading | Section)*>
<!ATTLIST Chapter Label CDATA #IMPLIED> <!-- For reference purposes -->
<!-- Note that the entity %InnerText; is documentation that contains
neither sectioning elements nor environments like enumerations,
but only formulae, labels, references, citations, and other
terminal elements. -->
<!ELEMENT Appendix (%Text;| Heading | Section)*>
<!ATTLIST Appendix Label CDATA #IMPLIED> <!-- For reference purposes -->
<!-- Note that an Appendix is exactly the same as a Chapter. They
differ only in the numbering. -->
<!-- ==================================================================
At last we define the overall structure of a gapdoc Book:
================================================================== -->
<!ELEMENT Body ( %Text;| Chapter | Section )*>
<!ELEMENT Book (TitlePage,
TableOfContents?,
Body,
Appendix*,
Bibliography?,
TheIndex?)>
<!ATTLIST Book Name CDATA #REQUIRED>
<!-- Note that the entity %Text; is documentation that contains
no further sectioning elements but possibly environments like
enumerations, and formulae, labels, references, and citations.
-->
<!-- ============================================================== -->

17
doc/lefttoc.css Normal file
View file

@ -0,0 +1,17 @@
/* leftmenu.css Frank Lübeck */
/* Change default CSS to show section menu on left side */
body {
padding-left: 28%;
}
body.chap0 {
padding-left: 2%;
}
div.ChapSects div.ContSect:hover div.ContSSBlock {
left: 15%;
}
div.ChapSects {
left: 1%;
width: 25%;
}

161
doc/loops.bbl Normal file
View file

@ -0,0 +1,161 @@
\begin{thebibliography}{DBGV12}
\bibitem[Art59]{Ar}
R.~Artzy.
\newblock On automorphic-inverse properties in loops.
\newblock {\em Proc. Amer. Math. Soc.}, 10:588{\textendash}591, 1959.
\bibitem[Art15]{Artic}
K.~Artic.
\newblock {\em On conjugacy closed loops and conjugacy closed loop folders}.
\newblock PhD thesis, RWTH Aachen University, 2015.
\bibitem[BP56]{BrPa}
R.~H. Bruck and L.~J. Paige.
\newblock Loops whose inner mappings are automorphisms.
\newblock {\em Ann. of Math. (2)}, 63:308{\textendash}323, 1956.
\bibitem[Bru58]{Br}
R.~H. Bruck.
\newblock {\em A survey of binary systems}.
\newblock Ergebnisse der Mathematik und ihrer Grenzgebiete. Neue Folge, Heft
20. Reihe: Gruppentheorie. Springer Verlag, Berlin, 1958.
\bibitem[CD05]{CsDr}
P.~Cs{\"o}rg{\H o} and A.~Dr{\a'a}pal.
\newblock Left conjugacy closed loops of nilpotency class two.
\newblock {\em Results Math.}, 47(3-4):242{\textendash}265, 2005.
\bibitem[CR99]{CoRo}
C.~J. Colbourn and A.~Rosa.
\newblock {\em Triple systems}.
\newblock Oxford Mathematical Monographs. The Clarendon Press Oxford University
Press, New York, 1999.
\bibitem[DBGV12]{BaGrVo}
D.~A.~S. De~Barros, A.~Grishkov, and P.~Vojt{\v e}chovsk{\a'y}.
\newblock Commutative automorphic loops of order {$p^3$}.
\newblock {\em J. Algebra Appl.}, 11(5):1250100, 15, 2012.
\bibitem[Dr{\a'a}03]{DrapalCD}
A.~Dr{\a'a}pal.
\newblock Cyclic and dihedral constructions of even order.
\newblock {\em Comment. Math. Univ. Carolin.}, 44(4):593{\textendash}614, 2003.
\bibitem[DV06]{DrVo}
A.~Dr{\a'a}pal and P.~Vojt{\v e}chovsk{\a'y}.
\newblock Moufang loops that share associator and three quarters of their
multiplication tables.
\newblock {\em Rocky Mountain J. Math.}, 36(2):425{\textendash}455, 2006.
\bibitem[DV09]{DaVo}
D.~Daly and P.~Vojt{\v e}chovsk{\a'y}.
\newblock Enumeration of nilpotent loops via cohomology.
\newblock {\em J. Algebra}, 322(11):4080{\textendash}4098, 2009.
\bibitem[Fen69]{Fe}
F.~Fenyves.
\newblock Extra loops. {II}. {O}n loops with identities of {B}ol-{M}oufang
type.
\newblock {\em Publ. Math. Debrecen}, 16:187{\textendash}192, 1969.
\bibitem[GKN14]{GrKiNa}
A.~Grishkov, M.~Kinyon, and G.~P. Nagy.
\newblock Solvability of commutative automorphic loops.
\newblock {\em Proc. Amer. Math. Soc.}, 142(9):3029{\textendash}3037, 2014.
\bibitem[GMR99]{Go}
E.~G. Goodaire, S.~May, and M.~Raman.
\newblock {\em The {M}oufang loops of order less than 64}.
\newblock Nova Science Publishers Inc., Commack, NY, 1999.
\bibitem[JKNV11]{JoKiNaVo}
K.~W. Johnson, M.~K. Kinyon, G.~P. Nagy, and P.~Vojt{\v e}chovsk{\a'y}.
\newblock Searching for small simple automorphic loops.
\newblock {\em LMS J. Comput. Math.}, 14:200{\textendash}213, 2011.
\bibitem[JKV12]{JeKiVo}
P.~Jedli{\v c}ka, M.~Kinyon, and P.~Vojt{\v e}chovsk{\a'y}.
\newblock Nilpotency in automorphic loops of prime power order.
\newblock {\em J. Algebra}, 350:64{\textendash}76, 2012.
\bibitem[JM96]{JaMa}
M.~T. Jacobson and P.~Matthews.
\newblock Generating uniformly distributed random {L}atin squares.
\newblock {\em J. Combin. Des.}, 4(6):405{\textendash}437, 1996.
\bibitem[KKP02]{KiKuPh}
M.~K. Kinyon, K.~Kunen, and J.~D. Phillips.
\newblock Every diassociative {$A$}-loop is {M}oufang.
\newblock {\em Proc. Amer. Math. Soc.}, 130(3):619{\textendash}624, 2002.
\bibitem[KKPV16]{KiKuPhVo}
M.~K. Kinyon, K.~Kunen, J.~D. Phillips, and P.~Vojt{\v e}chovsk{\a'y}.
\newblock The structure of automorphic loops.
\newblock {\em Trans. Amer. Math. Soc.}, 368(12):8901{\textendash}8927, 2016.
\bibitem[KNV15]{KiNaVo2015}
M.~K. Kinyon, G.~P. Nagy, and P.~Vojt{\v e}chovsk{\a'y}.
\newblock Bol loops and bruck loops of order $pq$.
\newblock 2015.
\newblock preprint.
\bibitem[Kun00]{Kun}
K.~Kunen.
\newblock The structure of conjugacy closed loops.
\newblock {\em Trans. Amer. Math. Soc.}, 352(6):2889{\textendash}2911, 2000.
\bibitem[Lie87]{Li}
M.~W. Liebeck.
\newblock The classification of finite simple {M}oufang loops.
\newblock {\em Math. Proc. Cambridge Philos. Soc.}, 102(1):33{\textendash}47,
1987.
\bibitem[Moo]{Mo}
G.~E. Moorhouse.
\newblock Bol loops of small order.
\newblock http://www.uwyo.edu/moorhouse/pub/bol/.
\bibitem[NV03]{NaVo2003}
G.~P. Nagy and P.~Vojt{\v e}chovsk{\a'y}.
\newblock Octonions, simple {M}oufang loops and triality.
\newblock {\em Quasigroups Related Systems}, 10:65{\textendash}94, 2003.
\bibitem[NV07]{NaVo2007}
G.~P. Nagy and P.~Vojt{\v e}chovsk{\a'y}.
\newblock The {M}oufang loops of order 64 and 81.
\newblock {\em J. Symbolic Comput.}, 42(9):871{\textendash}883, 2007.
\bibitem[Pfl90]{Pf}
H.~O. Pflugfelder.
\newblock {\em Quasigroups and loops: introduction}, volume~7 of {\em Sigma
Series in Pure Mathematics}.
\newblock Heldermann Verlag, Berlin, 1990.
\bibitem[PV05]{PhiVoj}
J.~D. Phillips and P.~Vojt{\v e}chovsk{\a'y}.
\newblock The varieties of loops of {B}ol-{M}oufang type.
\newblock {\em Algebra Universalis}, 54(3):259{\textendash}271, 2005.
\bibitem[SZ12]{SlZe2011}
M.~Slattery and A.~Zenisek.
\newblock Moufang loops of order 243.
\newblock {\em Commentationes Mathematicae Universitatis Carolinae},
53(3):423{\textendash}428, 2012.
\bibitem[Voj06]{Vo}
P.~Vojt{\v e}chovsk{\a'y}.
\newblock Toward the classification of {M}oufang loops of order 64.
\newblock {\em European J. Combin.}, 27(3):444{\textendash}460, 2006.
\bibitem[Voj15]{VoQRS}
P.~Vojt{\v e}chovsk{\a'y}.
\newblock Three lectures on automorphic loops.
\newblock {\em Quasigroups Related Systems}, 23(1):129{\textendash}163, 2015.
\bibitem[WJ75]{Wi}
R.~L. Wilson~Jr.
\newblock Quasidirect products of quasigroups.
\newblock {\em Comm. Algebra}, 3(9):835{\textendash}850, 1975.
\end{thebibliography}

656
doc/loops.bib Normal file
View file

@ -0,0 +1,656 @@
\begin{thebibliography}{99}
\bibitem{Artic}
Katharina~Artic
\newblock{On conjugacy closed loops and conjugacy closed loop folders}.
PhD Dissertation, RWTH Aachen University, 2015
@phdthesis {Artic,
AUTHOR = {Artic, Katharina},
TITLE = {On conjugacy closed loops and conjugacy closed loop folders},
SCHOOL = {RWTH Aachen University},
YEAR = {2015},
}
\bibitem{Ar}
R.~Artzy,
\newblock {\it On automorphic-inverse properties in loops}.
Proc. Amer. Math. Soc. {10} (1959), 588--591.
@article {Ar,
AUTHOR = {Artzy, R.},
TITLE = {On automorphic-inverse properties in loops},
JOURNAL = {Proc. Amer. Math. Soc.},
FJOURNAL = {Proceedings of the American Mathematical Society},
VOLUME = {10},
YEAR = {1959},
PAGES = {588--591},
ISSN = {0002-9939},
MRCLASS = {20.00},
MRNUMBER = {0107674 (21 \#6397)},
MRREVIEWER = {H. Minc},
}
\bibitem{BaGrVo}
Dylene Agda Souza De Barros, Alexander Grishkov and Petr Vojt\v{e}chovsk\'y,
\newblock {\it Commutative automorphic loops of order $p^3$},
J. Algebra Appl. 11 (2012), no. 5, 1250100, 15 pp.
@article {BaGrVo,
AUTHOR = {De Barros, Dylene Agda Souza and Grishkov, Alexander and
Vojt{\v{e}}chovsk{\'y}, Petr},
TITLE = {Commutative automorphic loops of order {$p^3$}},
JOURNAL = {J. Algebra Appl.},
FJOURNAL = {Journal of Algebra and its Applications},
VOLUME = {11},
YEAR = {2012},
NUMBER = {5},
PAGES = {1250100, 15},
ISSN = {0219-4988},
MRCLASS = {20N05 (20G40)},
MRNUMBER = {2983192},
MRREVIEWER = {{\'A}gota Figula},
DOI = {10.1142/S0219498812501009},
URL = {http://dx.doi.org/10.1142/S0219498812501009},
}
\bibitem{Br}
R.~Hubert~Bruck.
\newblock A Survey of Binary Systems, third printing, corrected. {\it Ergebnisse der
Mathematik und ihrer Grenzgebiete}, {\it Neue Folge} {20},
Springer-Verlag, 1971.
@book {Br,
AUTHOR = {Bruck, Richard Hubert},
TITLE = {A survey of binary systems},
SERIES = {Ergebnisse der Mathematik und ihrer Grenzgebiete. Neue Folge,
Heft 20. Reihe: Gruppentheorie},
PUBLISHER = {Springer Verlag},
ADDRESS = {Berlin},
YEAR = {1958},
PAGES = {viii+185},
MRCLASS = {20.00},
MRNUMBER = {0093552 (20 \#76)},
MRREVIEWER = {L. J. Paige},
}
\bibitem{BrPa}
R.H.~Bruck and Lowell J.~Paige.
\newblock {\it Loops whose inner mappings are automorphisms},
Ann. of Math. (2) 63 (1956), 308--323.
@article {BrPa,
AUTHOR = {Bruck, R. H. and Paige, Lowell J.},
TITLE = {Loops whose inner mappings are automorphisms},
JOURNAL = {Ann. of Math. (2)},
FJOURNAL = {Annals of Mathematics. Second Series},
VOLUME = {63},
YEAR = {1956},
PAGES = {308--323},
ISSN = {0003-486X},
MRCLASS = {20.0X},
MRNUMBER = {0076779},
MRREVIEWER = {R. Moufang},
}
\bibitem{ChPfSm}
O.~Chein, H.~O.~Pflugfelder, J.~D.~H.~Smith (editors).
\newblock Quasigroups and Loops: Theory and Applications, {\it Sigma Series in Pure
Mathematics} {8}, Heldermann Verlag Berlin, 1990.
@book {ChPfSm,
TITLE = {Quasigroups and loops: theory and applications},
SERIES = {Sigma Series in Pure Mathematics},
VOLUME = {8},
EDITOR = {Chein, O. and Pflugfelder, H. O. and Smith, J. D. H.},
PUBLISHER = {Heldermann Verlag},
ADDRESS = {Berlin},
YEAR = {1990},
PAGES = {xii+568},
ISBN = {3-88538-008-0},
MRCLASS = {20N05 (20-06)},
MRNUMBER = {1125806 (93g:20133)},
MRREVIEWER = {D. A. Robinson},
}
\bibitem{CoRo}
Charles J.~Colbourn and Alexander Rosa.
\newblock Triple systems, {\it Oxford Mathematical Monographs}, The Clarendon Press,
Oxford University Press, New York, 1999.
@book {CoRo,
AUTHOR = {Colbourn, Charles J. and Rosa, Alexander},
TITLE = {Triple systems},
SERIES = {Oxford Mathematical Monographs},
PUBLISHER = {The Clarendon Press Oxford University Press},
ADDRESS = {New York},
YEAR = {1999},
PAGES = {xvi+560},
ISBN = {0-19-853576-7},
MRCLASS = {05B07 (05-02)},
MRNUMBER = {1843379 (2002h:05024)},
MRREVIEWER = {Elizabeth J. Billington},
}
\bibitem{CsDr}
Piroska Cs\"org\H{o} and Ale\v{s} Dr\'apal.
\newblock {\it Left conjugacy closed loops of nilpotency class two},
Results Math. {47} (2005), no. {3}--{4}, 242--265.
@article {CsDr,
AUTHOR = {Cs{\"o}rg{\H{o}}, Piroska and Dr{\'a}pal, Ale{\v{s}}},
TITLE = {Left conjugacy closed loops of nilpotency class two},
JOURNAL = {Results Math.},
FJOURNAL = {Results in Mathematics. Resultate der Mathematik},
VOLUME = {47},
YEAR = {2005},
NUMBER = {3-4},
PAGES = {242--265},
ISSN = {1422-6383},
MRCLASS = {20N05},
MRNUMBER = {2153496 (2006b:20095)},
MRREVIEWER = {Huberta Lausch},
}
\bibitem{DaVo}
Daniel Daly and Petr Vojt\v{e}chovsk\'y,
\newblock {\it Enumeration of nilpotent loops via cohomology},
Journal of Algebra {322} (2009), no. {11}, 4080--4098.
@article {DaVo,
AUTHOR = {Daly, Daniel and Vojt{\v{e}}chovsk{\'y}, Petr},
TITLE = {Enumeration of nilpotent loops via cohomology},
JOURNAL = {J. Algebra},
FJOURNAL = {Journal of Algebra},
VOLUME = {322},
YEAR = {2009},
NUMBER = {11},
PAGES = {4080--4098},
ISSN = {0021-8693},
CODEN = {JALGA4},
MRCLASS = {20N05 (20J99)},
MRNUMBER = {2556139 (2011e:20098)},
MRREVIEWER = {Yu. M. Movsisyan},
DOI = {10.1016/j.jalgebra.2009.03.042},
URL = {http://dx.doi.org/10.1016/j.jalgebra.2009.03.042},
}
\bibitem{DrapalCD}
Ale\v{s} Dr\'apal.
\newblock {\it Cyclic and dihedral constructions of even order},
Comment. Math. Univ. Carolin. {44} (2003), no. {4}, 593--614.
@article {DrapalCD,
AUTHOR = {Dr{\'a}pal, Ale{\v{s}}},
TITLE = {Cyclic and dihedral constructions of even order},
JOURNAL = {Comment. Math. Univ. Carolin.},
FJOURNAL = {Commentationes Mathematicae Universitatis Carolinae},
VOLUME = {44},
YEAR = {2003},
NUMBER = {4},
PAGES = {593--614},
ISSN = {},
CODEN = {},
MRCLASS = {20D60 (05B15)},
MRNUMBER = {MR2062876 (2005d:20038)},
MRREVIEWER = {Thomas Michael Keller},
DOI = {},
URL = {},
}
\bibitem{DrVo}
Ale\v{s} Dr\'apal and Petr Vojt\v{e}chovsk\'y.
\newblock {\it Moufang loops that share associator and three quarters of their
multiplication tables},
Rocky Mountain Journal of Mathematics {36} (2006), no. {2}, 425--455.
@article {DrVo,
AUTHOR = {Dr{\'a}pal, Ale{\v{s}} and Vojt{\v{e}}chovsk{\'y}, Petr},
TITLE = {Moufang loops that share associator and three quarters of
their multiplication tables},
JOURNAL = {Rocky Mountain J. Math.},
FJOURNAL = {The Rocky Mountain Journal of Mathematics},
VOLUME = {36},
YEAR = {2006},
NUMBER = {2},
PAGES = {425--455},
ISSN = {0035-7596},
CODEN = {RMJMAE},
MRCLASS = {20N05 (05B15)},
MRNUMBER = {2234814 (2007d:20114)},
MRREVIEWER = {Orin Chein},
DOI = {10.1216/rmjm/1181069461},
URL = {http://dx.doi.org/10.1216/rmjm/1181069461},
}
\bibitem{Fe}
Ferenc Fenyves.
\newblock {\it Extra loops II, On loops with identities of Bol-Moufang type},
Publ. Math. Debrecen {16}(1969), 187--192.
@article {Fe,
AUTHOR = {Fenyves, Ferenc},
TITLE = {Extra loops. {II}. {O}n loops with identities of
{B}ol-{M}oufang type},
JOURNAL = {Publ. Math. Debrecen},
FJOURNAL = {Publicationes Mathematicae Debrecen},
VOLUME = {16},
YEAR = {1969},
PAGES = {187--192},
ISSN = {0033-3883},
MRCLASS = {20.95},
MRNUMBER = {0262409 (41 \#7017)},
MRREVIEWER = {D. A. Robinson},
}
\bibitem{Go}
Edgar G. Goodaire, Sean May and Maitreyi Raman.
\newblock The Moufang loops of order less than $64$, Commack, NY: Nova Science
Publishers, 1999.
@book {Go,
AUTHOR = {Goodaire, Edgar G. and May, Sean and Raman, Maitreyi},
TITLE = {The {M}oufang loops of order less than 64},
PUBLISHER = {Nova Science Publishers Inc.},
ADDRESS = {Commack, NY},
YEAR = {1999},
PAGES = {xviii+287},
ISBN = {1-56072-659-8},
MRCLASS = {20N05},
MRNUMBER = {1689624 (2000a:20147)},
}
\bibitem{GrKiNa}
Alexander Grishkov, Michael Kinyon and G\'abor Nagy.
\newblock {\it Solvability of commutative automorphic loops},
Proc. Amer. Math. Soc. {142} (2014), no. 9, 3029--3037.
@article {GrKiNa,
AUTHOR = {Grishkov, Alexander and Kinyon, Michael and Nagy, G{\'a}bor
P.},
TITLE = {Solvability of commutative automorphic loops},
JOURNAL = {Proc. Amer. Math. Soc.},
FJOURNAL = {Proceedings of the American Mathematical Society},
VOLUME = {142},
YEAR = {2014},
NUMBER = {9},
PAGES = {3029--3037},
ISSN = {0002-9939},
MRCLASS = {20N05 (17B99)},
MRNUMBER = {3223359},
MRREVIEWER = {J. D. Phillips},
DOI = {10.1090/S0002-9939-2014-12053-3},
URL = {http://dx.doi.org/10.1090/S0002-9939-2014-12053-3},
}
\bibitem{JaMa}
Mark T. Jacobson and Peter Matthews.
\newblock {\it Generating uniformly distributed random latin squares},
J. Combinatorial Designs {4}(1998), no. {6}, 405--437.
@article {JaMa,
AUTHOR = {Jacobson, Mark T. and Matthews, Peter},
TITLE = {Generating uniformly distributed random {L}atin squares},
JOURNAL = {J. Combin. Des.},
FJOURNAL = {Journal of Combinatorial Designs},
VOLUME = {4},
YEAR = {1996},
NUMBER = {6},
PAGES = {405--437},
ISSN = {1063-8539},
MRCLASS = {05B15 (60J10)},
MRNUMBER = {1410617 (98b:05021)},
MRREVIEWER = {Lars D{\o}vling Andersen},
DOI = {10.1002/(SICI)1520-6610(1996)4:6<405::AID-JCD3>3.0.CO;2-J},
URL =
{http://dx.doi.org/10.1002/(SICI)1520-6610(1996)4:6<405::AID-JCD3>3.0.CO;2-J},
}
\bibitem{JeKiVo}
P\v{r}emysl Jedli\v{c}ka, Michael Kinyon and Petr Vojt\v{e}chovsk\'y,
\newblock {\it Nilpotency in automorphic loops of prime power order},
J. Algebra {350} (2012), 64--76.
@article {JeKiVo,
AUTHOR = {Jedli{\v{c}}ka, P{\v{r}}emysl and Kinyon, Michael and
Vojt{\v{e}}chovsk{\'y}, Petr},
TITLE = {Nilpotency in automorphic loops of prime power order},
JOURNAL = {J. Algebra},
FJOURNAL = {Journal of Algebra},
VOLUME = {350},
YEAR = {2012},
PAGES = {64--76},
ISSN = {0021-8693},
CODEN = {JALGA4},
MRCLASS = {20N05},
MRNUMBER = {2859875},
MRREVIEWER = {Mohammad Shahryari},
DOI = {10.1016/j.jalgebra.2011.09.034},
URL = {http://dx.doi.org/10.1016/j.jalgebra.2011.09.034},
}
\bibitem{JoKiNaVo}
Kenneth W. Johnson, Michael K. Kinyon, G\'abor P. Nagy and Petr Vojt{\v{e}}chovsk{\'y}.
\newblock {\it Searching for small simple automorphic loops},
LMS J. Comput. Math. {14} (2011), 200--213.
@article {JoKiNaVo,
AUTHOR = {Johnson, Kenneth W. and Kinyon, Michael K. and Nagy, G{\'a}bor
P. and Vojt{\v{e}}chovsk{\'y}, Petr},
TITLE = {Searching for small simple automorphic loops},
JOURNAL = {LMS J. Comput. Math.},
FJOURNAL = {LMS Journal of Computation and Mathematics},
VOLUME = {14},
YEAR = {2011},
PAGES = {200--213},
ISSN = {1461-1570},
MRCLASS = {20N05 (20B15 20B40)},
MRNUMBER = {2831230},
MRREVIEWER = {Tuval S. Foguel},
DOI = {10.1112/S1461157010000173},
URL = {http://dx.doi.org/10.1112/S1461157010000173},
}
\bibitem{KiKuPh}
Michael K. Kinyon, Kenneth Kunen, and J. D. Phillips,
\newblock {\it Every diassociative A-loop is Moufang},
Proc. Amer. Math. Soc. {130} (2002), 619--624.
@article {KiKuPh,
AUTHOR = {Kinyon, Michael K. and Kunen, Kenneth and Phillips, J. D.},
TITLE = {Every diassociative {$A$}-loop is {M}oufang},
JOURNAL = {Proc. Amer. Math. Soc.},
FJOURNAL = {Proceedings of the American Mathematical Society},
VOLUME = {130},
YEAR = {2002},
NUMBER = {3},
PAGES = {619--624},
ISSN = {0002-9939},
CODEN = {PAMYAR},
MRCLASS = {20N05 (68T15)},
MRNUMBER = {1866009 (2002k:20124)},
MRREVIEWER = {Orin Chein},
DOI = {10.1090/S0002-9939-01-06090-7},
URL = {http://dx.doi.org/10.1090/S0002-9939-01-06090-7},
}
\bibitem{KiKuPhVo}
Michael K. Kinyon, Kenneth Kunen, J. D. Phillips and Petr Vojt\v{e}chovsk\'y.
\newblock {\it The structure of automorphic loops},
Trans. Amer. Math. Soc. {368} (2016), no. 12, 8901--8927.
@article {KiKuPhVo,
AUTHOR = {Kinyon, Michael K. and Kunen, Kenneth and Phillips, J. D. and
Vojt{\v{e}}chovsk{\'y}, Petr},
TITLE = {The structure of automorphic loops},
JOURNAL = {Trans. Amer. Math. Soc.},
FJOURNAL = {Transactions of the American Mathematical Society},
VOLUME = {368},
YEAR = {2016},
NUMBER = {12},
PAGES = {8901--8927},
ISSN = {0002-9947},
CODEN = {TAMTAM},
MRCLASS = {20N05},
MRNUMBER = {3551593},
DOI = {10.1090/tran/6622},
URL = {http://dx.doi.org/10.1090/tran/6622},
}
\bibitem{KiNaVo2015}
Michael K. Kinyon, G\'abor P. Nagy and Petr Vojt{\v{e}}chovsk{\'y},
\newblock {\it Bol loops and Bruck loops of order $pq$},
preprint.
@article {KiNaVo2015,
AUTHOR = {Kinyon, Michael K. and Nagy, G\'abor P. and Vojt{\v{e}}chovsk{\'y}, Petr},
TITLE = {Bol loops and Bruck loops of order $pq$},
JOURNAL = {},
YEAR = {2015},
NOTE = {preprint},
}
\bibitem{Kun}
Kenneth Kunen.
\newblock {\it The structure of conjugacy closed loops},
Trans. Amer. Math. Soc. {352} (2000), 2889--2911.
@article {Kun,
AUTHOR = {Kunen, Kenneth},
TITLE = {The structure of conjugacy closed loops},
JOURNAL = {Trans. Amer. Math. Soc.},
FJOURNAL = {Transactions of the American Mathematical Society},
VOLUME = {352},
YEAR = {2000},
NUMBER = {6},
PAGES = {2889--2911},
ISSN = {0002-9947},
CODEN = {TAMTAM},
MRCLASS = {20N05 (03C05)},
MRNUMBER = {1615991 (2000j:20132)},
MRREVIEWER = {Edgar G. Goodaire},
DOI = {10.1090/S0002-9947-00-02350-3},
URL = {http://dx.doi.org/10.1090/S0002-9947-00-02350-3},
}
\bibitem{Li}
M.~Liebeck.
\newblock {\it The classification of finite simple Moufang loops},
Math. Proc. Cambridge Philos. Soc. {102} (1987), 33--47.
@article {Li,
AUTHOR = {Liebeck, Martin W.},
TITLE = {The classification of finite simple {M}oufang loops},
JOURNAL = {Math. Proc. Cambridge Philos. Soc.},
FJOURNAL = {Mathematical Proceedings of the Cambridge Philosophical
Society},
VOLUME = {102},
YEAR = {1987},
NUMBER = {1},
PAGES = {33--47},
ISSN = {0305-0041},
CODEN = {MPCPCO},
MRCLASS = {20N05},
MRNUMBER = {886433 (88g:20146)},
MRREVIEWER = {Karl H. Robinson},
DOI = {10.1017/S0305004100067025},
URL = {http://dx.doi.org/10.1017/S0305004100067025},
}
\bibitem{Mo}
G.~Eric Moorhouse.
\newblock {\it Bol loops of small order},
http://www.uwyo.edu/moorhouse/pub/bol/
@unpublished {Mo,
AUTHOR = {Moorhouse, G. Eric},
TITLE = {Bol loops of small order},
NOTE = {http://www.uwyo.edu/moorhouse/pub/bol/},
}
\bibitem{Na}
G\'abor~P.~Nagy,
\newblock {\it A class of simple proper Bol loops},
Manuscripta Math. {127} (2008), no. {1}, 81--88.
@article {Na,
AUTHOR = {Nagy, G{\'a}bor P.},
TITLE = {A class of simple proper {B}ol loops},
JOURNAL = {Manuscripta Math.},
FJOURNAL = {Manuscripta Mathematica},
VOLUME = {127},
YEAR = {2008},
NUMBER = {1},
PAGES = {81--88},
ISSN = {0025-2611},
CODEN = {MSMHB2},
MRCLASS = {20N05},
MRNUMBER = {2429915 (2009g:20149)},
MRREVIEWER = {Ramiro Carrillo-Catal{\'a}n},
DOI = {10.1007/s00229-008-0188-5},
URL = {http://dx.doi.org/10.1007/s00229-008-0188-5},
}
\bibitem{NaVo2003}
G\'abor~P.~Nagy and Petr Vojt\v{e}chovsk\'y.
\newblock {\it Octonions, simple Moufang loops and triality}, Quasigroups and Related
Systems {10} (2003), 65--94.
@article {NaVo2003,
AUTHOR = {Nagy, G{\'a}bor P. and Vojt{\v{e}}chovsk{\'y}, Petr},
TITLE = {Octonions, simple {M}oufang loops and triality},
JOURNAL = {Quasigroups Related Systems},
FJOURNAL = {Quasigroups and Related Systems},
VOLUME = {10},
YEAR = {2003},
PAGES = {65--94},
ISSN = {1561-2848},
MRCLASS = {20N05 (17A75)},
MRNUMBER = {1998692 (2004f:20118)},
MRREVIEWER = {Orin Chein},
}
\bibitem{NaVo2007}
G\'abor~P.~Nagy and Petr Vojt\v{e}chovsk\'y.
\newblock {\it The Moufang loops of order $64$ and $81$},
Journal of Symbolic Computation {42} (2007), no. {9}, 871--883.
@article {NaVo2007,
AUTHOR = {Nagy, G{\'a}bor P. and Vojt{\v{e}}chovsk{\'y}, Petr},
TITLE = {The {M}oufang loops of order 64 and 81},
JOURNAL = {J. Symbolic Comput.},
FJOURNAL = {Journal of Symbolic Computation},
VOLUME = {42},
YEAR = {2007},
NUMBER = {9},
PAGES = {871--883},
ISSN = {0747-7171},
MRCLASS = {20N05 (20D15)},
MRNUMBER = {2355056 (2009d:20155)},
MRREVIEWER = {Chris A. Rowley},
DOI = {10.1016/j.jsc.2007.06.004},
URL = {http://dx.doi.org/10.1016/j.jsc.2007.06.004},
}
\bibitem{Pf}
Hala~O.~Pflugfelder.
\newblock Quasigroups and Loops: Introduction, {\it Sigma Series in Pure Mathematics}
{7}, Heldermann Verlag Berlin, 1990.
@book {Pf,
AUTHOR = {Pflugfelder, Hala O.},
TITLE = {Quasigroups and loops: introduction},
SERIES = {Sigma Series in Pure Mathematics},
VOLUME = {7},
PUBLISHER = {Heldermann Verlag},
ADDRESS = {Berlin},
YEAR = {1990},
PAGES = {viii+147},
ISBN = {3-88538-007-2},
MRCLASS = {20N05 (20-01)},
MRNUMBER = {1125767 (93g:20132)},
MRREVIEWER = {D. A. Robinson},
}
\bibitem{PhiVoj}
J.~D.~Phillips and Petr Vojt\v{e}chovsk\'y.
\newblock {\it Varieties of loops of Bol-Moufang type},
Algebra Universalis {54} (2005), no. {3}, 259--271.
@article {PhiVoj,
AUTHOR = {Phillips, J. D. and Vojt{\v{e}}chovsk{\'y}, Petr},
TITLE = {The varieties of loops of {B}ol-{M}oufang type},
JOURNAL = {Algebra Universalis},
FJOURNAL = {Algebra Universalis},
VOLUME = {54},
YEAR = {2005},
NUMBER = {3},
PAGES = {259--271},
ISSN = {0002-5240},
CODEN = {AGUVA3},
MRCLASS = {20N05},
MRNUMBER = {2219409 (2007b:20147)},
MRREVIEWER = {A. Schleiermacher},
DOI = {10.1007/s00012-005-1941-1},
URL = {http://dx.doi.org/10.1007/s00012-005-1941-1},
}
\bibitem{SlZe2011}
M.~Slattery and A.~Zenisek.
\newblock{ \it Moufang loops of order 243},
\newblock Commentationes Mathematicae Universitatis Carolinae {53} (2012), no. {3}, 423--428.
preprint.
@article {SlZe2011,
AUTHOR = {Slattery, M. and Zenisek, A.},
TITLE = {Moufang loops of order 243},
JOURNAL = {Commentationes Mathematicae Universitatis Carolinae},
VOLUME = {53},
YEAR = {2012},
NUMBER = {3},
PAGES = {423--428},
}
\bibitem{Vo}
Petr Vojt\v{e}chovsk\'y.
\newblock {\it Toward the classification of Moufang loops of order $64$},
European Journal of Combinatorics {27}, issue {3} (April 2006), 444-460.
@article {Vo,
AUTHOR = {Vojt{\v{e}}chovsk{\'y}, Petr},
TITLE = {Toward the classification of {M}oufang loops of order 64},
JOURNAL = {European J. Combin.},
FJOURNAL = {European Journal of Combinatorics},
VOLUME = {27},
YEAR = {2006},
NUMBER = {3},
PAGES = {444--460},
ISSN = {0195-6698},
MRCLASS = {20N05},
MRNUMBER = {2206479 (2006k:20136)},
MRREVIEWER = {Orin Chein},
DOI = {10.1016/j.ejc.2004.10.003},
URL = {http://dx.doi.org/10.1016/j.ejc.2004.10.003},
}
\bibitem{VoQRS}
Petr Vojt\v{e}chovsk\'y.
\newblock {\it Three lectures on automorphic loops},
Quasigroups Related Systems {23} (2015), no. 1, 129--163.
@article {VoQRS,
AUTHOR = {Vojt{\v{e}}chovsk{\'y}, Petr},
TITLE = {Three lectures on automorphic loops},
JOURNAL = {Quasigroups Related Systems},
FJOURNAL = {Quasigroups and Related Systems},
VOLUME = {23},
YEAR = {2015},
NUMBER = {1},
PAGES = {129--163},
ISSN = {1561-2848},
MRCLASS = {20N05},
MRNUMBER = {3353114},
MRREVIEWER = {{\'A}gota Figula},
}
\bibitem{Wi}
R.~L.~Wilson,~Jr.
\newblock {\it Quasidirect products of quasigroups}, Comm. Algebra {3} (1975),
835--850.
@article {Wi,
AUTHOR = {Wilson, Jr., Robert L.},
TITLE = {Quasidirect products of quasigroups},
JOURNAL = {Comm. Algebra},
FJOURNAL = {Communications in Algebra},
VOLUME = {3},
YEAR = {1975},
NUMBER = {9},
PAGES = {835--850},
ISSN = {0092-7872},
MRCLASS = {20N05},
MRNUMBER = {0376937 (51 \#13112)},
MRREVIEWER = {D. A. Robinson},
}
\end{thebibliography}

5
doc/loops.blg Normal file
View file

@ -0,0 +1,5 @@
This is BibTeX, Version 0.99dThe top-level auxiliary file: loops.aux
The style file: alpha.bst
Database file #1: loops_bib.xml.bib
Warning--empty journal in KiNaVo2015
(There was 1 warning)

35
doc/loops.brf Normal file
View file

@ -0,0 +1,35 @@
\backcite {Br}{{8}{2}{chapter.2}}
\backcite {Pf}{{8}{2}{chapter.2}}
\backcite {JaMa}{{19}{4.9}{section.4.9}}
\backcite {Vo}{{35}{6.11.8}{subsection.6.11.8}}
\backcite {Ar}{{37}{7.2.4}{subsection.7.2.4}}
\backcite {Fe}{{39}{7.4}{section.7.4}}
\backcite {PhiVoj}{{39}{7.4}{section.7.4}}
\backcite {PhiVoj}{{39}{7.4}{section.7.4}}
\backcite {BrPa}{{43}{7.7}{section.7.7}}
\backcite {BrPa}{{43}{7.7}{section.7.7}}
\backcite {JoKiNaVo}{{43}{7.7}{section.7.7}}
\backcite {KiKuPh}{{43}{7.7}{section.7.7}}
\backcite {KiKuPhVo}{{43}{7.7}{section.7.7}}
\backcite {GrKiNa}{{43}{7.7}{section.7.7}}
\backcite {VoQRS}{{43}{7.7}{section.7.7}}
\backcite {JeKiVo}{{43}{7.7}{section.7.7}}
\backcite {BaGrVo}{{43}{7.7}{section.7.7}}
\backcite {VoQRS}{{43}{7.7}{section.7.7}}
\backcite {DrapalCD}{{46}{8.2}{section.8.2}}
\backcite {DrVo}{{46}{8.2}{section.8.2}}
\backcite {NaVo2003}{{46}{8.3}{section.8.3}}
\backcite {Mo}{{50}{9.2}{section.9.2}}
\backcite {KiNaVo2015}{{50}{9.2}{section.9.2}}
\backcite {Go}{{50}{9.3.1}{subsection.9.3.1}}
\backcite {NaVo2007}{{50}{9.3.1}{subsection.9.3.1}}
\backcite {SlZe2011}{{50}{9.3.1}{subsection.9.3.1}}
\backcite {NaVo2007}{{51}{9.4}{section.9.4}}
\backcite {CoRo}{{51}{9.5}{section.9.5}}
\backcite {Artic}{{51}{9.6}{section.9.6}}
\backcite {Kun}{{52}{9.6.2}{subsection.9.6.2}}
\backcite {CsDr}{{52}{9.6.2}{subsection.9.6.2}}
\backcite {Wi}{{52}{9.6.2}{subsection.9.6.2}}
\backcite {Kun}{{52}{9.6.2}{subsection.9.6.2}}
\backcite {Li}{{53}{9.8}{section.9.8}}
\backcite {DaVo}{{53}{9.9}{section.9.9}}

427
doc/loops.idx Normal file
View file

@ -0,0 +1,427 @@
\indexentry{groupoid|hyperpage}{8}
\indexentry{magma|hyperpage}{8}
\indexentry{neutral element|hyperpage}{8}
\indexentry{identity!element|hyperpage}{8}
\indexentry{inverse!two-sided|hyperpage}{8}
\indexentry{group|hyperpage}{8}
\indexentry{quasigroup|hyperpage}{8}
\indexentry{latin square|hyperpage}{8}
\indexentry{loop|hyperpage}{8}
\indexentry{translation!left|hyperpage}{8}
\indexentry{translation!right|hyperpage}{8}
\indexentry{division!left|hyperpage}{8}
\indexentry{division!right|hyperpage}{8}
\indexentry{section!left|hyperpage}{8}
\indexentry{section!right|hyperpage}{8}
\indexentry{multiplication group!left|hyperpage}{9}
\indexentry{multiplication group!right|hyperpage}{9}
\indexentry{multiplication group|hyperpage}{9}
\indexentry{inner mapping group!left|hyperpage}{9}
\indexentry{inner mapping group!right|hyperpage}{9}
\indexentry{inner mapping group|hyperpage}{9}
\indexentry{subquasigroup|hyperpage}{9}
\indexentry{subloop|hyperpage}{9}
\indexentry{nucleus!left|hyperpage}{9}
\indexentry{nucleus!middle|hyperpage}{9}
\indexentry{nucleus!right|hyperpage}{9}
\indexentry{nucleus|hyperpage}{9}
\indexentry{commutant|hyperpage}{9}
\indexentry{center|hyperpage}{9}
\indexentry{subloop!normal|hyperpage}{9}
\indexentry{nilpotence class|hyperpage}{9}
\indexentry{nilpotent loop|hyperpage}{9}
\indexentry{loop!nilpotent|hyperpage}{9}
\indexentry{central series!upper|hyperpage}{9}
\indexentry{derived subloop|hyperpage}{9}
\indexentry{solvability class|hyperpage}{9}
\indexentry{solvable loop|hyperpage}{9}
\indexentry{loop!solvable|hyperpage}{9}
\indexentry{derived series|hyperpage}{9}
\indexentry{commutator|hyperpage}{9}
\indexentry{associator|hyperpage}{9}
\indexentry{associator subloop|hyperpage}{9}
\indexentry{homomorphism|hyperpage}{9}
\indexentry{isomorphism|hyperpage}{9}
\indexentry{homotopism|hyperpage}{10}
\indexentry{isotopism|hyperpage}{10}
\indexentry{isotopism!principal|hyperpage}{10}
\indexentry{loop isotope!principal|hyperpage}{10}
\indexentry{IsQuasigroupElement|hyperpage}{11}
\indexentry{IsLoopElement|hyperpage}{11}
\indexentry{IsQuasigroup|hyperpage}{11}
\indexentry{IsLoop|hyperpage}{11}
\indexentry{Bol loop!left|hyperpage}{12}
\indexentry{loop!left Bol|hyperpage}{12}
\indexentry{simple loop|hyperpage}{12}
\indexentry{loop!simple|hyperpage}{12}
\indexentry{SetQuasigroupElmName@\texttt {SetQuasigroupElmName}|hyperpage}{13}
\indexentry{SetLoopElmName@\texttt {SetLoopElmName}|hyperpage}{13}
\indexentry{Cayley table|hyperpage}{14}
\indexentry{multiplication table|hyperpage}{14}
\indexentry{quasigroup table|hyperpage}{14}
\indexentry{latin square|hyperpage}{14}
\indexentry{loop table|hyperpage}{14}
\indexentry{IsQuasigroupTable@\texttt {IsQuasigroupTable}|hyperpage}{14}
\indexentry{IsQuasigroupCayleyTable@\texttt {IsQuasigroupCayleyTable}|hyperpage}{14}
\indexentry{IsLoopTable@\texttt {IsLoopTable}|hyperpage}{14}
\indexentry{IsLoopCayleyTable@\texttt {IsLoopCayleyTable}|hyperpage}{14}
\indexentry{CanonicalCayleyTable@\texttt {CanonicalCayleyTable}|hyperpage}{15}
\indexentry{Cayley table!canonical|hyperpage}{15}
\indexentry{CanonicalCopy@\texttt {CanonicalCopy}|hyperpage}{15}
\indexentry{NormalizedQuasigroupTable@\texttt {NormalizedQuasigroupTable}|hyperpage}{15}
\indexentry{QuasigroupByCayleyTable@\texttt {QuasigroupByCayleyTable}|hyperpage}{15}
\indexentry{LoopByCayleyTable@\texttt {LoopByCayleyTable}|hyperpage}{15}
\indexentry{QuasigroupFromFile@\texttt {QuasigroupFromFile}|hyperpage}{17}
\indexentry{LoopFromFile@\texttt {LoopFromFile}|hyperpage}{17}
\indexentry{CayleyTableByPerms@\texttt {CayleyTableByPerms}|hyperpage}{17}
\indexentry{QuasigroupByLeftSection@\texttt {QuasigroupByLeftSection}|hyperpage}{17}
\indexentry{LoopByLeftSection@\texttt {LoopByLeftSection}|hyperpage}{17}
\indexentry{QuasigroupByRightSection@\texttt {QuasigroupByRightSection}|hyperpage}{17}
\indexentry{LoopByRightSection@\texttt {LoopByRightSection}|hyperpage}{17}
\indexentry{folder!quasigroup|hyperpage}{18}
\indexentry{QuasigroupByRightFolder@\texttt {QuasigroupByRightFolder}|hyperpage}{18}
\indexentry{LoopByRightFolder@\texttt {LoopByRightFolder}|hyperpage}{18}
\indexentry{extension|hyperpage}{18}
\indexentry{extension!nuclear|hyperpage}{18}
\indexentry{cocycle|hyperpage}{18}
\indexentry{NuclearExtension@\texttt {NuclearExtension}|hyperpage}{18}
\indexentry{LoopByExtension@\texttt {LoopByExtension}|hyperpage}{18}
\indexentry{latin square!random|hyperpage}{19}
\indexentry{RandomQuasigroup@\texttt {RandomQuasigroup}|hyperpage}{19}
\indexentry{RandomLoop@\texttt {RandomLoop}|hyperpage}{19}
\indexentry{RandomNilpotentLoop@\texttt {RandomNilpotentLoop}|hyperpage}{19}
\indexentry{loop!nilpotent|hyperpage}{19}
\indexentry{IntoQuasigroup@\texttt {IntoQuasigroup}|hyperpage}{20}
\indexentry{PrincipalLoopIsotope@\texttt {PrincipalLoopIsotope}|hyperpage}{20}
\indexentry{IntoLoop@\texttt {IntoLoop}|hyperpage}{20}
\indexentry{IntoGroup@\texttt {IntoGroup}|hyperpage}{20}
\indexentry{DirectProduct@\texttt {DirectProduct}|hyperpage}{21}
\indexentry{opposite quasigroup|hyperpage}{21}
\indexentry{quasigroup!opposite|hyperpage}{21}
\indexentry{Opposite@\texttt {Opposite}|hyperpage}{21}
\indexentry{OppositeQuasigroup@\texttt {OppositeQuasigroup}|hyperpage}{21}
\indexentry{OppositeLoop@\texttt {OppositeLoop}|hyperpage}{21}
\indexentry{Elements@\texttt {Elements}|hyperpage}{22}
\indexentry{CayleyTable@\texttt {CayleyTable}|hyperpage}{22}
\indexentry{One@\texttt {One}|hyperpage}{22}
\indexentry{Size@\texttt {Size}|hyperpage}{22}
\indexentry{Exponent@\texttt {Exponent}|hyperpage}{23}
\indexentry{loop!power associative|hyperpage}{23}
\indexentry{power associative loop|hyperpage}{23}
\indexentry{exponent|hyperpage}{23}
\indexentry{LeftDivision@\texttt {LeftDivision}|hyperpage}{23}
\indexentry{RightDivision@\texttt {RightDivision}|hyperpage}{23}
\indexentry{LeftDivision@\texttt {LeftDivision}|hyperpage}{23}
\indexentry{LeftDivision@\texttt {LeftDivision}|hyperpage}{23}
\indexentry{RightDivision@\texttt {RightDivision}|hyperpage}{23}
\indexentry{RightDivision@\texttt {RightDivision}|hyperpage}{23}
\indexentry{LeftDivisionCayleyTable@\texttt {LeftDivisionCayleyTable}|hyperpage}{23}
\indexentry{RightDivisionCayleyTable@\texttt {RightDivisionCayleyTable}|hyperpage}{23}
\indexentry{inverse!left|hyperpage}{24}
\indexentry{inverse!right|hyperpage}{24}
\indexentry{inverse|hyperpage}{24}
\indexentry{LeftInverse@\texttt {LeftInverse}|hyperpage}{24}
\indexentry{RightInverse@\texttt {RightInverse}|hyperpage}{24}
\indexentry{Inverse@\texttt {Inverse}|hyperpage}{24}
\indexentry{Associator@\texttt {Associator}|hyperpage}{24}
\indexentry{Commutator@\texttt {Commutator}|hyperpage}{24}
\indexentry{GeneratorsOfQuasigroup@\texttt {GeneratorsOfQuasigroup}|hyperpage}{24}
\indexentry{GeneratorsOfLoop@\texttt {GeneratorsOfLoop}|hyperpage}{24}
\indexentry{GeneratorsSmallest@\texttt {GeneratorsSmallest}|hyperpage}{25}
\indexentry{SmallGeneratingSet@\texttt {SmallGeneratingSet}|hyperpage}{25}
\indexentry{Parent@\texttt {Parent}|hyperpage}{26}
\indexentry{Position@\texttt {Position}|hyperpage}{26}
\indexentry{PosInParent@\texttt {PosInParent}|hyperpage}{27}
\indexentry{Subquasigroup@\texttt {Subquasigroup}|hyperpage}{27}
\indexentry{Subloop@\texttt {Subloop}|hyperpage}{27}
\indexentry{IsSubquasigroup@\texttt {IsSubquasigroup}|hyperpage}{27}
\indexentry{IsSubloop@\texttt {IsSubloop}|hyperpage}{27}
\indexentry{AllSubquasigroups@\texttt {AllSubquasigroups}|hyperpage}{27}
\indexentry{AllSubloops@\texttt {AllSubloops}|hyperpage}{28}
\indexentry{RightCosets@\texttt {RightCosets}|hyperpage}{28}
\indexentry{coset|hyperpage}{28}
\indexentry{RightTransversal@\texttt {RightTransversal}|hyperpage}{28}
\indexentry{transversal|hyperpage}{28}
\indexentry{LeftTranslation@\texttt {LeftTranslation}|hyperpage}{28}
\indexentry{RightTranslation@\texttt {RightTranslation}|hyperpage}{28}
\indexentry{LeftSection@\texttt {LeftSection}|hyperpage}{28}
\indexentry{RightSection@\texttt {RightSection}|hyperpage}{28}
\indexentry{LeftMultiplicationGroup@\texttt {LeftMultiplicationGroup}|hyperpage}{29}
\indexentry{RightMultiplicationGroup@\texttt {RightMultiplicationGroup}|hyperpage}{29}
\indexentry{MultiplicationGroup@\texttt {MultiplicationGroup}|hyperpage}{29}
\indexentry{RelativeLeftMultiplicationGroup@\texttt {RelativeLeftMultiplicationGroup}|hyperpage}{29}
\indexentry{RelativeRightMultiplicationGroup@\texttt {RelativeRightMultiplicationGroup}|hyperpage}{29}
\indexentry{RelativeMultiplicationGroup@\texttt {RelativeMultiplicationGroup}|hyperpage}{29}
\indexentry{multiplication group!relative left|hyperpage}{29}
\indexentry{multiplication group!relative right |hyperpage}{29}
\indexentry{multiplication group!relative|hyperpage}{29}
\indexentry{inner mapping!left|hyperpage}{29}
\indexentry{inner mapping!right|hyperpage}{29}
\indexentry{conjugation|hyperpage}{30}
\indexentry{inner mapping!middle|hyperpage}{30}
\indexentry{inner mapping group!middle|hyperpage}{30}
\indexentry{LeftInnerMapping@\texttt {LeftInnerMapping}|hyperpage}{30}
\indexentry{RightInnerMapping@\texttt {RightInnerMapping}|hyperpage}{30}
\indexentry{MiddleInnerMapping@\texttt {MiddleInnerMapping}|hyperpage}{30}
\indexentry{LeftInnerMappingGroup@\texttt {LeftInnerMappingGroup}|hyperpage}{30}
\indexentry{RightInnerMappingGroup@\texttt {RightInnerMappingGroup}|hyperpage}{30}
\indexentry{MiddleInnerMappingGroup@\texttt {MiddleInnerMappingGroup}|hyperpage}{30}
\indexentry{InnerMappingGroup@\texttt {InnerMappingGroup}|hyperpage}{30}
\indexentry{LeftNucleus@\texttt {LeftNucleus}|hyperpage}{30}
\indexentry{MiddleNucleus@\texttt {MiddleNucleus}|hyperpage}{30}
\indexentry{RightNucleus@\texttt {RightNucleus}|hyperpage}{30}
\indexentry{Nuc@\texttt {Nuc}|hyperpage}{31}
\indexentry{NucleusOfQuasigroup@\texttt {NucleusOfQuasigroup}|hyperpage}{31}
\indexentry{NucleusOfLoop@\texttt {NucleusOfLoop}|hyperpage}{31}
\indexentry{Commutant@\texttt {Commutant}|hyperpage}{31}
\indexentry{Center@\texttt {Center}|hyperpage}{31}
\indexentry{AssociatorSubloop@\texttt {AssociatorSubloop}|hyperpage}{31}
\indexentry{IsNormal@\texttt {IsNormal}|hyperpage}{31}
\indexentry{subloop!normal|hyperpage}{31}
\indexentry{normal subloop|hyperpage}{31}
\indexentry{NormalClosure@\texttt {NormalClosure}|hyperpage}{31}
\indexentry{normal closure|hyperpage}{31}
\indexentry{IsSimple@\texttt {IsSimple}|hyperpage}{32}
\indexentry{simple loop|hyperpage}{32}
\indexentry{loop!simple|hyperpage}{32}
\indexentry{FactorLoop@\texttt {FactorLoop}|hyperpage}{32}
\indexentry{NaturalHomomorphismByNormalSubloop@\texttt {NaturalHomomorphismByNormalSubloop}|hyperpage}{32}
\indexentry{IsNilpotent@\texttt {IsNilpotent}|hyperpage}{32}
\indexentry{NilpotencyClassOfLoop@\texttt {NilpotencyClassOfLoop}|hyperpage}{32}
\indexentry{IsStronglyNilpotent@\texttt {IsStronglyNilpotent}|hyperpage}{32}
\indexentry{strongly nilpotent loop|hyperpage}{32}
\indexentry{nilpotent loop!strongly|hyperpage}{32}
\indexentry{loop!strongly nilpotent|hyperpage}{32}
\indexentry{UpperCentralSeries@\texttt {UpperCentralSeries}|hyperpage}{33}
\indexentry{LowerCentralSeries@\texttt {LowerCentralSeries}|hyperpage}{33}
\indexentry{central series!lower|hyperpage}{33}
\indexentry{IsSolvable@\texttt {IsSolvable}|hyperpage}{33}
\indexentry{DerivedSubloop@\texttt {DerivedSubloop}|hyperpage}{33}
\indexentry{DerivedLength@\texttt {DerivedLength}|hyperpage}{33}
\indexentry{FrattiniSubloop@\texttt {FrattiniSubloop}|hyperpage}{33}
\indexentry{Frattini subloop|hyperpage}{33}
\indexentry{FrattinifactorSize@\texttt {FrattinifactorSize}|hyperpage}{33}
\indexentry{IsomorphismQuasigroups@\texttt {IsomorphismQuasigroups}|hyperpage}{33}
\indexentry{IsomorphismLoops@\texttt {IsomorphismLoops}|hyperpage}{34}
\indexentry{QuasigroupsUpToIsomorphism@\texttt {QuasigroupsUpToIsomorphism}|hyperpage}{34}
\indexentry{LoopsUpToIsomorphism@\texttt {LoopsUpToIsomorphism}|hyperpage}{34}
\indexentry{AutomorphismGroup@\texttt {AutomorphismGroup}|hyperpage}{34}
\indexentry{IsomorphicCopyByPerm@\texttt {IsomorphicCopyByPerm}|hyperpage}{34}
\indexentry{IsomorphicCopyByNormalSubloop@\texttt {IsomorphicCopyByNormalSubloop}|hyperpage}{34}
\indexentry{Discriminator@\texttt {Discriminator}|hyperpage}{35}
\indexentry{AreEqualDiscriminators@\texttt {AreEqualDiscriminators}|hyperpage}{35}
\indexentry{IsotopismLoops@\texttt {IsotopismLoops}|hyperpage}{35}
\indexentry{LoopsUpToIsotopism@\texttt {LoopsUpToIsotopism}|hyperpage}{35}
\indexentry{IsAssociative@\texttt {IsAssociative}|hyperpage}{36}
\indexentry{IsCommutative@\texttt {IsCommutative}|hyperpage}{36}
\indexentry{IsPowerAssociative@\texttt {IsPowerAssociative}|hyperpage}{36}
\indexentry{quasigroup!power associative|hyperpage}{36}
\indexentry{power associative quasigroup|hyperpage}{36}
\indexentry{IsDiassociative@\texttt {IsDiassociative}|hyperpage}{36}
\indexentry{quasigroup!diassociative|hyperpage}{37}
\indexentry{diassociative quasigroup|hyperpage}{37}
\indexentry{inverse!left|hyperpage}{37}
\indexentry{inverse!right|hyperpage}{37}
\indexentry{HasLeftInverseProperty@\texttt {HasLeftInverseProperty}|hyperpage}{37}
\indexentry{HasRightInverseProperty@\texttt {HasRightInverseProperty}|hyperpage}{37}
\indexentry{HasInverseProperty@\texttt {HasInverseProperty}|hyperpage}{37}
\indexentry{inverse property!left|hyperpage}{37}
\indexentry{inverse property!right|hyperpage}{37}
\indexentry{inverse property|hyperpage}{37}
\indexentry{HasTwosidedInverses@\texttt {HasTwosidedInverses}|hyperpage}{37}
\indexentry{inverse!two-sided|hyperpage}{37}
\indexentry{HasWeakInverseProperty@\texttt {HasWeakInverseProperty}|hyperpage}{37}
\indexentry{inverse property!weak|hyperpage}{37}
\indexentry{HasAutomorphicInverseProperty@\texttt {HasAutomorphicInverseProperty}|hyperpage}{37}
\indexentry{automorphic inverse property|hyperpage}{37}
\indexentry{inverse property!automorphic|hyperpage}{37}
\indexentry{HasAntiautomorphicInverseProperty@\texttt {HasAntiautomorphicInverseProperty}|hyperpage}{37}
\indexentry{antiautomorphic inverse property|hyperpage}{37}
\indexentry{inverse property!antiautomorphic|hyperpage}{37}
\indexentry{IsSemisymmetric@\texttt {IsSemisymmetric}|hyperpage}{38}
\indexentry{semisymmetric quasigroup|hyperpage}{38}
\indexentry{quasigroup!semisymmetric|hyperpage}{38}
\indexentry{IsTotallySymmetric@\texttt {IsTotallySymmetric}|hyperpage}{38}
\indexentry{totally symmetric quasigroup|hyperpage}{38}
\indexentry{quasigroup!totally symmetric|hyperpage}{38}
\indexentry{IsIdempotent@\texttt {IsIdempotent}|hyperpage}{38}
\indexentry{idempotent quasigroup|hyperpage}{38}
\indexentry{quasigroup!idempotent|hyperpage}{38}
\indexentry{IsSteinerQuasigroup@\texttt {IsSteinerQuasigroup}|hyperpage}{38}
\indexentry{Steiner quasigroup|hyperpage}{38}
\indexentry{quasigroup!Steiner|hyperpage}{38}
\indexentry{unipotent quasigroup|hyperpage}{38}
\indexentry{quasigroup!unipotent|hyperpage}{38}
\indexentry{IsUnipotent@\texttt {IsUnipotent}|hyperpage}{38}
\indexentry{IsLeftDistributive@\texttt {IsLeftDistributive}|hyperpage}{38}
\indexentry{IsRightDistributive@\texttt {IsRightDistributive}|hyperpage}{38}
\indexentry{IsDistributive@\texttt {IsDistributive}|hyperpage}{38}
\indexentry{quasigroup!left distributive|hyperpage}{38}
\indexentry{distributive quasigroup!left|hyperpage}{38}
\indexentry{quasigroup!right distributive|hyperpage}{38}
\indexentry{distributive quasigroup!right|hyperpage}{38}
\indexentry{quasigroup!distributive|hyperpage}{38}
\indexentry{distributive quasigroup|hyperpage}{38}
\indexentry{IsEntropic@\texttt {IsEntropic}|hyperpage}{39}
\indexentry{IsMedial@\texttt {IsMedial}|hyperpage}{39}
\indexentry{entropic quasigroup|hyperpage}{39}
\indexentry{quasigroup!entropic|hyperpage}{39}
\indexentry{medial quasigroup|hyperpage}{39}
\indexentry{quasigroup!medial|hyperpage}{39}
\indexentry{loop!of Bol-Moufang type|hyperpage}{39}
\indexentry{identity!of Bol-Moufang type|hyperpage}{39}
\indexentry{alternative loop!left|hyperpage}{39}
\indexentry{loop!left alternative|hyperpage}{39}
\indexentry{alternative loop!right|hyperpage}{39}
\indexentry{loop!right alternative|hyperpage}{39}
\indexentry{nuclear square loop!left|hyperpage}{39}
\indexentry{loop!left nuclear square|hyperpage}{39}
\indexentry{nuclear square loop!middle|hyperpage}{39}
\indexentry{loop!middle nuclear square|hyperpage}{39}
\indexentry{nuclear square loop!right|hyperpage}{39}
\indexentry{loop!right nuclear square|hyperpage}{39}
\indexentry{flexible loop|hyperpage}{39}
\indexentry{loop!flexible|hyperpage}{39}
\indexentry{Bol loop!left|hyperpage}{39}
\indexentry{loop!left Bol|hyperpage}{39}
\indexentry{Bol loop!right|hyperpage}{39}
\indexentry{loop!right Bol|hyperpage}{39}
\indexentry{LC loop|hyperpage}{39}
\indexentry{loop!LC|hyperpage}{39}
\indexentry{RC loop|hyperpage}{39}
\indexentry{loop!RC|hyperpage}{39}
\indexentry{Moufang loop|hyperpage}{39}
\indexentry{loop!Moufang|hyperpage}{39}
\indexentry{C loop|hyperpage}{39}
\indexentry{loop!C|hyperpage}{39}
\indexentry{extra loop|hyperpage}{39}
\indexentry{loop!extra|hyperpage}{39}
\indexentry{alternative loop|hyperpage}{39}
\indexentry{loop!alternative|hyperpage}{39}
\indexentry{nuclear square loop|hyperpage}{39}
\indexentry{loop!nuclear square|hyperpage}{39}
\indexentry{IsExtraLoop@\texttt {IsExtraLoop}|hyperpage}{40}
\indexentry{IsMoufangLoop@\texttt {IsMoufangLoop}|hyperpage}{40}
\indexentry{IsCLoop@\texttt {IsCLoop}|hyperpage}{40}
\indexentry{IsLeftBolLoop@\texttt {IsLeftBolLoop}|hyperpage}{40}
\indexentry{IsRightBolLoop@\texttt {IsRightBolLoop}|hyperpage}{40}
\indexentry{IsLCLoop@\texttt {IsLCLoop}|hyperpage}{40}
\indexentry{IsRCLoop@\texttt {IsRCLoop}|hyperpage}{40}
\indexentry{IsLeftNuclearSquareLoop@\texttt {IsLeftNuclearSquareLoop}|hyperpage}{40}
\indexentry{IsMiddleNuclearSquareLoop@\texttt {IsMiddleNuclearSquareLoop}|hyperpage}{40}
\indexentry{IsRightNuclearSquareLoop@\texttt {IsRightNuclearSquareLoop}|hyperpage}{40}
\indexentry{IsNuclearSquareLoop@\texttt {IsNuclearSquareLoop}|hyperpage}{41}
\indexentry{IsFlexible@\texttt {IsFlexible}|hyperpage}{41}
\indexentry{IsLeftAlternative@\texttt {IsLeftAlternative}|hyperpage}{41}
\indexentry{IsRightAlternative@\texttt {IsRightAlternative}|hyperpage}{41}
\indexentry{IsAlternative@\texttt {IsAlternative}|hyperpage}{41}
\indexentry{power alternative loop!left|hyperpage}{42}
\indexentry{loop!left power alternative|hyperpage}{42}
\indexentry{power alternative loop!right|hyperpage}{42}
\indexentry{loop!right power alternative|hyperpage}{42}
\indexentry{power alternative loop|hyperpage}{42}
\indexentry{loop!power alternative|hyperpage}{42}
\indexentry{IsLeftPowerAlternative@\texttt {IsLeftPowerAlternative}|hyperpage}{42}
\indexentry{IsRightPowerAlternative@\texttt {IsRightPowerAlternative}|hyperpage}{42}
\indexentry{IsPowerAlternative@\texttt {IsPowerAlternative}|hyperpage}{42}
\indexentry{conjugacy closed loop!left|hyperpage}{42}
\indexentry{loop!left conjugacy closed|hyperpage}{42}
\indexentry{conjugacy closed loop!right|hyperpage}{42}
\indexentry{loop!right conjugacy closed|hyperpage}{42}
\indexentry{conjugacy closed loop|hyperpage}{42}
\indexentry{loop!conjugacy closed|hyperpage}{42}
\indexentry{IsLCCLoop@\texttt {IsLCCLoop}|hyperpage}{42}
\indexentry{IsLeftConjugacyClosedLoop@\texttt {IsLeftConjugacyClosedLoop}|hyperpage}{42}
\indexentry{IsRCCLoop@\texttt {IsRCCLoop}|hyperpage}{42}
\indexentry{IsRightConjugacyClosedLoop@\texttt {IsRightConjugacyClosedLoop}|hyperpage}{42}
\indexentry{IsCCLoop@\texttt {IsCCLoop}|hyperpage}{42}
\indexentry{IsConjugacyClosedLoop@\texttt {IsConjugacyClosedLoop}|hyperpage}{42}
\indexentry{IsOsbornLoop@\texttt {IsOsbornLoop}|hyperpage}{42}
\indexentry{Osborn loop|hyperpage}{43}
\indexentry{loop!Osborn|hyperpage}{43}
\indexentry{automorphic loop!left|hyperpage}{43}
\indexentry{loop!left automorphic|hyperpage}{43}
\indexentry{automorphic loop!middle|hyperpage}{43}
\indexentry{loop!middle automorphic|hyperpage}{43}
\indexentry{automorphic loop!right|hyperpage}{43}
\indexentry{loop!right automorphic|hyperpage}{43}
\indexentry{automorphic loop|hyperpage}{43}
\indexentry{loop!automorphic|hyperpage}{43}
\indexentry{IsLeftAutomorphicLoop@\texttt {IsLeftAutomorphicLoop}|hyperpage}{43}
\indexentry{IsLeftALoop@\texttt {IsLeftALoop}|hyperpage}{43}
\indexentry{IsMiddleAutomorphicLoop@\texttt {IsMiddleAutomorphicLoop}|hyperpage}{43}
\indexentry{IsMiddleALoop@\texttt {IsMiddleALoop}|hyperpage}{43}
\indexentry{IsRightAutomorphicLoop@\texttt {IsRightAutomorphicLoop}|hyperpage}{44}
\indexentry{IsRightALoop@\texttt {IsRightALoop}|hyperpage}{44}
\indexentry{IsAutomorphicLoop@\texttt {IsAutomorphicLoop}|hyperpage}{44}
\indexentry{IsALoop@\texttt {IsALoop}|hyperpage}{44}
\indexentry{IsCodeLoop@\texttt {IsCodeLoop}|hyperpage}{44}
\indexentry{code loop|hyperpage}{44}
\indexentry{loop!code|hyperpage}{44}
\indexentry{IsSteinerLoop@\texttt {IsSteinerLoop}|hyperpage}{44}
\indexentry{Steiner loop|hyperpage}{44}
\indexentry{loop!Steiner|hyperpage}{44}
\indexentry{IsLeftBruckLoop@\texttt {IsLeftBruckLoop}|hyperpage}{44}
\indexentry{IsLeftKLoop@\texttt {IsLeftKLoop}|hyperpage}{44}
\indexentry{Bruck loop!left|hyperpage}{44}
\indexentry{loop!left Bruck|hyperpage}{44}
\indexentry{K loop!left|hyperpage}{44}
\indexentry{loop!left K|hyperpage}{44}
\indexentry{IsRightBruckLoop@\texttt {IsRightBruckLoop}|hyperpage}{44}
\indexentry{IsRightKLoop@\texttt {IsRightKLoop}|hyperpage}{44}
\indexentry{Bruck loop!right|hyperpage}{44}
\indexentry{loop!right Bruck|hyperpage}{44}
\indexentry{K loop!right|hyperpage}{44}
\indexentry{loop!right K|hyperpage}{44}
\indexentry{AssociatedLeftBruckLoop@\texttt {AssociatedLeftBruckLoop}|hyperpage}{45}
\indexentry{AssociatedRightBruckLoop@\texttt {AssociatedRightBruckLoop}|hyperpage}{45}
\indexentry{loop!left Bol|hyperpage}{45}
\indexentry{Bol loop!left|hyperpage}{45}
\indexentry{Bruck loop!associated left|hyperpage}{45}
\indexentry{loop!associated left Bruck|hyperpage}{45}
\indexentry{IsExactGroupFactorization@\texttt {IsExactGroupFactorization}|hyperpage}{45}
\indexentry{exact group factorization|hyperpage}{45}
\indexentry{RightBolLoopByExactGroupFactorization@\texttt {Right}\discretionary {-}{}{}\texttt {Bol}\discretionary {-}{}{}\texttt {Loop}\discretionary {-}{}{}\texttt {By}\discretionary {-}{}{}\texttt {Exact}\discretionary {-}{}{}\texttt {Group}\discretionary {-}{}{}\texttt {Factorization}|hyperpage}{45}
\indexentry{modification!Moufang|hyperpage}{46}
\indexentry{LoopByCyclicModification@\texttt {LoopByCyclicModification}|hyperpage}{46}
\indexentry{modification!cyclic|hyperpage}{46}
\indexentry{LoopByDihedralModification@\texttt {LoopByDihedralModification}|hyperpage}{46}
\indexentry{modification!dihedral|hyperpage}{46}
\indexentry{LoopMG2@\texttt {LoopMG2}|hyperpage}{46}
\indexentry{Chein loop|hyperpage}{46}
\indexentry{loop!Chein|hyperpage}{46}
\indexentry{group with triality|hyperpage}{46}
\indexentry{TrialityPermGroup@\texttt {TrialityPermGroup}|hyperpage}{47}
\indexentry{TrialityPcGroup@\texttt {TrialityPcGroup}|hyperpage}{47}
\indexentry{AllLoopTablesInGroup@\texttt {AllLoopTablesInGroup}|hyperpage}{47}
\indexentry{AllProperLoopTablesInGroup@\texttt {AllProperLoopTablesInGroup}|hyperpage}{47}
\indexentry{OneLoopTableInGroup@\texttt {OneLoopTableInGroup}|hyperpage}{47}
\indexentry{OneProperLoopTableInGroup@\texttt {OneProperLoopTableInGroup}|hyperpage}{48}
\indexentry{AllLoopsWithMltGroup@\texttt {AllLoopsWithMltGroup}|hyperpage}{48}
\indexentry{OneLoopWithMltGroup@\texttt {OneLoopWithMltGroup}|hyperpage}{48}
\indexentry{LibraryLoop@\texttt {LibraryLoop}|hyperpage}{49}
\indexentry{MyLibraryLoop@\texttt {MyLibraryLoop}|hyperpage}{49}
\indexentry{DisplayLibraryInfo@\texttt {DisplayLibraryInfo}|hyperpage}{50}
\indexentry{LeftBolLoop@\texttt {LeftBolLoop}|hyperpage}{50}
\indexentry{RightBolLoop@\texttt {RightBolLoop}|hyperpage}{50}
\indexentry{MoufangLoop@\texttt {MoufangLoop}|hyperpage}{50}
\indexentry{octonion loop|hyperpage}{50}
\indexentry{loop!octonion|hyperpage}{50}
\indexentry{CodeLoop@\texttt {CodeLoop}|hyperpage}{51}
\indexentry{SteinerLoop@\texttt {SteinerLoop}|hyperpage}{51}
\indexentry{RCCLoop@\texttt {RCCLoop}|hyperpage}{52}
\indexentry{RightConjugacyClosedLoop@\texttt {RightConjugacyClosedLoop}|hyperpage}{52}
\indexentry{LCCLoop@\texttt {LCCLoop}|hyperpage}{52}
\indexentry{LeftConjugacyClosedLoop@\texttt {LeftConjugacyClosedLoop}|hyperpage}{52}
\indexentry{CCLoop@\texttt {CCLoop}|hyperpage}{52}
\indexentry{ConjugacyClosedLoop@\texttt {ConjugacyClosedLoop}|hyperpage}{52}
\indexentry{SmallLoop@\texttt {SmallLoop}|hyperpage}{53}
\indexentry{Paige loop|hyperpage}{53}
\indexentry{loop!Paige|hyperpage}{53}
\indexentry{PaigeLoop@\texttt {PaigeLoop}|hyperpage}{53}
\indexentry{NilpotentLoop@\texttt {NilpotentLoop}|hyperpage}{53}
\indexentry{AutomorphicLoop@\texttt {AutomorphicLoop}|hyperpage}{53}
\indexentry{sedenion loop|hyperpage}{54}
\indexentry{loop!sedenion|hyperpage}{54}
\indexentry{InterestingLoop@\texttt {InterestingLoop}|hyperpage}{54}
\indexentry{ItpSmallLoop@\texttt {ItpSmallLoop}|hyperpage}{54}

6
doc/loops.ilg Normal file
View file

@ -0,0 +1,6 @@
This is makeindex, version 2.15 [MiKTeX 2.9 64-bit] (kpathsea + Thai support).
Scanning input file loops.idx....done (427 entries accepted, 0 rejected).
Sorting entries......done (4056 comparisons).
Generating output file loops.ind....done (485 lines written, 0 warnings).
Output written in loops.ind.
Transcript written in loops.ilg.

485
doc/loops.ind Normal file
View file

@ -0,0 +1,485 @@
\begin{theindex}
\item \texttt {AllLoopsWithMltGroup}, \hyperpage{48}
\item \texttt {AllLoopTablesInGroup}, \hyperpage{47}
\item \texttt {AllProperLoopTablesInGroup}, \hyperpage{47}
\item \texttt {AllSubloops}, \hyperpage{28}
\item \texttt {AllSubquasigroups}, \hyperpage{27}
\item alternative loop, \hyperpage{39}
\subitem left, \hyperpage{39}
\subitem right, \hyperpage{39}
\item antiautomorphic inverse property, \hyperpage{37}
\item \texttt {AreEqualDiscriminators}, \hyperpage{35}
\item \texttt {AssociatedLeftBruckLoop}, \hyperpage{45}
\item \texttt {AssociatedRightBruckLoop}, \hyperpage{45}
\item \texttt {Associator}, \hyperpage{24}
\item associator, \hyperpage{9}
\item associator subloop, \hyperpage{9}
\item \texttt {AssociatorSubloop}, \hyperpage{31}
\item automorphic inverse property, \hyperpage{37}
\item automorphic loop, \hyperpage{43}
\subitem left, \hyperpage{43}
\subitem middle, \hyperpage{43}
\subitem right, \hyperpage{43}
\item \texttt {AutomorphicLoop}, \hyperpage{53}
\item \texttt {AutomorphismGroup}, \hyperpage{34}
\indexspace
\item Bol loop
\subitem left, \hyperpage{12}, \hyperpage{39}, \hyperpage{45}
\subitem right, \hyperpage{39}
\item Bruck loop
\subitem associated left, \hyperpage{45}
\subitem left, \hyperpage{44}
\subitem right, \hyperpage{44}
\indexspace
\item C loop, \hyperpage{39}
\item \texttt {CanonicalCayleyTable}, \hyperpage{15}
\item \texttt {CanonicalCopy}, \hyperpage{15}
\item Cayley table, \hyperpage{14}
\subitem canonical, \hyperpage{15}
\item \texttt {CayleyTable}, \hyperpage{22}
\item \texttt {CayleyTableByPerms}, \hyperpage{17}
\item \texttt {CCLoop}, \hyperpage{52}
\item \texttt {Center}, \hyperpage{31}
\item center, \hyperpage{9}
\item central series
\subitem lower, \hyperpage{33}
\subitem upper, \hyperpage{9}
\item Chein loop, \hyperpage{46}
\item cocycle, \hyperpage{18}
\item code loop, \hyperpage{44}
\item \texttt {CodeLoop}, \hyperpage{51}
\item \texttt {Commutant}, \hyperpage{31}
\item commutant, \hyperpage{9}
\item \texttt {Commutator}, \hyperpage{24}
\item commutator, \hyperpage{9}
\item conjugacy closed loop, \hyperpage{42}
\subitem left, \hyperpage{42}
\subitem right, \hyperpage{42}
\item \texttt {ConjugacyClosedLoop}, \hyperpage{52}
\item conjugation, \hyperpage{30}
\item coset, \hyperpage{28}
\indexspace
\item derived series, \hyperpage{9}
\item derived subloop, \hyperpage{9}
\item \texttt {DerivedLength}, \hyperpage{33}
\item \texttt {DerivedSubloop}, \hyperpage{33}
\item diassociative quasigroup, \hyperpage{37}
\item \texttt {DirectProduct}, \hyperpage{21}
\item \texttt {Discriminator}, \hyperpage{35}
\item \texttt {DisplayLibraryInfo}, \hyperpage{50}
\item distributive quasigroup, \hyperpage{38}
\subitem left, \hyperpage{38}
\subitem right, \hyperpage{38}
\item division
\subitem left, \hyperpage{8}
\subitem right, \hyperpage{8}
\indexspace
\item \texttt {Elements}, \hyperpage{22}
\item entropic quasigroup, \hyperpage{39}
\item exact group factorization, \hyperpage{45}
\item \texttt {Exponent}, \hyperpage{23}
\item exponent, \hyperpage{23}
\item extension, \hyperpage{18}
\subitem nuclear, \hyperpage{18}
\item extra loop, \hyperpage{39}
\indexspace
\item \texttt {FactorLoop}, \hyperpage{32}
\item flexible loop, \hyperpage{39}
\item folder
\subitem quasigroup, \hyperpage{18}
\item Frattini subloop, \hyperpage{33}
\item \texttt {FrattinifactorSize}, \hyperpage{33}
\item \texttt {FrattiniSubloop}, \hyperpage{33}
\indexspace
\item \texttt {GeneratorsOfLoop}, \hyperpage{24}
\item \texttt {GeneratorsOfQuasigroup}, \hyperpage{24}
\item \texttt {GeneratorsSmallest}, \hyperpage{25}
\item group, \hyperpage{8}
\item group with triality, \hyperpage{46}
\item groupoid, \hyperpage{8}
\indexspace
\item \texttt {HasAntiautomorphicInverseProperty}, \hyperpage{37}
\item \texttt {HasAutomorphicInverseProperty}, \hyperpage{37}
\item \texttt {HasInverseProperty}, \hyperpage{37}
\item \texttt {HasLeftInverseProperty}, \hyperpage{37}
\item \texttt {HasRightInverseProperty}, \hyperpage{37}
\item \texttt {HasTwosidedInverses}, \hyperpage{37}
\item \texttt {HasWeakInverseProperty}, \hyperpage{37}
\item homomorphism, \hyperpage{9}
\item homotopism, \hyperpage{10}
\indexspace
\item idempotent quasigroup, \hyperpage{38}
\item identity
\subitem element, \hyperpage{8}
\subitem of Bol-Moufang type, \hyperpage{39}
\item inner mapping
\subitem left, \hyperpage{29}
\subitem middle, \hyperpage{30}
\subitem right, \hyperpage{29}
\item inner mapping group, \hyperpage{9}
\subitem left, \hyperpage{9}
\subitem middle, \hyperpage{30}
\subitem right, \hyperpage{9}
\item \texttt {InnerMappingGroup}, \hyperpage{30}
\item \texttt {InterestingLoop}, \hyperpage{54}
\item \texttt {IntoGroup}, \hyperpage{20}
\item \texttt {IntoLoop}, \hyperpage{20}
\item \texttt {IntoQuasigroup}, \hyperpage{20}
\item \texttt {Inverse}, \hyperpage{24}
\item inverse, \hyperpage{24}
\subitem left, \hyperpage{24}, \hyperpage{37}
\subitem right, \hyperpage{24}, \hyperpage{37}
\subitem two-sided, \hyperpage{8}, \hyperpage{37}
\item inverse property, \hyperpage{37}
\subitem antiautomorphic, \hyperpage{37}
\subitem automorphic, \hyperpage{37}
\subitem left, \hyperpage{37}
\subitem right, \hyperpage{37}
\subitem weak, \hyperpage{37}
\item \texttt {IsALoop}, \hyperpage{44}
\item \texttt {IsAlternative}, \hyperpage{41}
\item \texttt {IsAssociative}, \hyperpage{36}
\item \texttt {IsAutomorphicLoop}, \hyperpage{44}
\item \texttt {IsCCLoop}, \hyperpage{42}
\item \texttt {IsCLoop}, \hyperpage{40}
\item \texttt {IsCodeLoop}, \hyperpage{44}
\item \texttt {IsCommutative}, \hyperpage{36}
\item \texttt {IsConjugacyClosedLoop}, \hyperpage{42}
\item \texttt {IsDiassociative}, \hyperpage{36}
\item \texttt {IsDistributive}, \hyperpage{38}
\item \texttt {IsEntropic}, \hyperpage{39}
\item \texttt {IsExactGroupFactorization}, \hyperpage{45}
\item \texttt {IsExtraLoop}, \hyperpage{40}
\item \texttt {IsFlexible}, \hyperpage{41}
\item \texttt {IsIdempotent}, \hyperpage{38}
\item \texttt {IsLCCLoop}, \hyperpage{42}
\item \texttt {IsLCLoop}, \hyperpage{40}
\item \texttt {IsLeftALoop}, \hyperpage{43}
\item \texttt {IsLeftAlternative}, \hyperpage{41}
\item \texttt {IsLeftAutomorphicLoop}, \hyperpage{43}
\item \texttt {IsLeftBolLoop}, \hyperpage{40}
\item \texttt {IsLeftBruckLoop}, \hyperpage{44}
\item \texttt {IsLeftConjugacyClosedLoop}, \hyperpage{42}
\item \texttt {IsLeftDistributive}, \hyperpage{38}
\item \texttt {IsLeftKLoop}, \hyperpage{44}
\item \texttt {IsLeftNuclearSquareLoop}, \hyperpage{40}
\item \texttt {IsLeftPowerAlternative}, \hyperpage{42}
\item IsLoop, \hyperpage{11}
\item \texttt {IsLoopCayleyTable}, \hyperpage{14}
\item IsLoopElement, \hyperpage{11}
\item \texttt {IsLoopTable}, \hyperpage{14}
\item \texttt {IsMedial}, \hyperpage{39}
\item \texttt {IsMiddleALoop}, \hyperpage{43}
\item \texttt {IsMiddleAutomorphicLoop}, \hyperpage{43}
\item \texttt {IsMiddleNuclearSquareLoop}, \hyperpage{40}
\item \texttt {IsMoufangLoop}, \hyperpage{40}
\item \texttt {IsNilpotent}, \hyperpage{32}
\item \texttt {IsNormal}, \hyperpage{31}
\item \texttt {IsNuclearSquareLoop}, \hyperpage{41}
\item \texttt {IsomorphicCopyByNormalSubloop}, \hyperpage{34}
\item \texttt {IsomorphicCopyByPerm}, \hyperpage{34}
\item isomorphism, \hyperpage{9}
\item \texttt {IsomorphismLoops}, \hyperpage{34}
\item \texttt {IsomorphismQuasigroups}, \hyperpage{33}
\item \texttt {IsOsbornLoop}, \hyperpage{42}
\item isotopism, \hyperpage{10}
\subitem principal, \hyperpage{10}
\item \texttt {IsotopismLoops}, \hyperpage{35}
\item \texttt {IsPowerAlternative}, \hyperpage{42}
\item \texttt {IsPowerAssociative}, \hyperpage{36}
\item IsQuasigroup, \hyperpage{11}
\item \texttt {IsQuasigroupCayleyTable}, \hyperpage{14}
\item IsQuasigroupElement, \hyperpage{11}
\item \texttt {IsQuasigroupTable}, \hyperpage{14}
\item \texttt {IsRCCLoop}, \hyperpage{42}
\item \texttt {IsRCLoop}, \hyperpage{40}
\item \texttt {IsRightALoop}, \hyperpage{44}
\item \texttt {IsRightAlternative}, \hyperpage{41}
\item \texttt {IsRightAutomorphicLoop}, \hyperpage{44}
\item \texttt {IsRightBolLoop}, \hyperpage{40}
\item \texttt {IsRightBruckLoop}, \hyperpage{44}
\item \texttt {IsRightConjugacyClosedLoop}, \hyperpage{42}
\item \texttt {IsRightDistributive}, \hyperpage{38}
\item \texttt {IsRightKLoop}, \hyperpage{44}
\item \texttt {IsRightNuclearSquareLoop}, \hyperpage{40}
\item \texttt {IsRightPowerAlternative}, \hyperpage{42}
\item \texttt {IsSemisymmetric}, \hyperpage{38}
\item \texttt {IsSimple}, \hyperpage{32}
\item \texttt {IsSolvable}, \hyperpage{33}
\item \texttt {IsSteinerLoop}, \hyperpage{44}
\item \texttt {IsSteinerQuasigroup}, \hyperpage{38}
\item \texttt {IsStronglyNilpotent}, \hyperpage{32}
\item \texttt {IsSubloop}, \hyperpage{27}
\item \texttt {IsSubquasigroup}, \hyperpage{27}
\item \texttt {IsTotallySymmetric}, \hyperpage{38}
\item \texttt {IsUnipotent}, \hyperpage{38}
\item \texttt {ItpSmallLoop}, \hyperpage{54}
\indexspace
\item K loop
\subitem left, \hyperpage{44}
\subitem right, \hyperpage{44}
\indexspace
\item latin square, \hyperpage{8}, \hyperpage{14}
\subitem random, \hyperpage{19}
\item LC loop, \hyperpage{39}
\item \texttt {LCCLoop}, \hyperpage{52}
\item \texttt {LeftBolLoop}, \hyperpage{50}
\item \texttt {LeftConjugacyClosedLoop}, \hyperpage{52}
\item \texttt {LeftDivision}, \hyperpage{23}
\item \texttt {LeftDivisionCayleyTable}, \hyperpage{23}
\item \texttt {LeftInnerMapping}, \hyperpage{30}
\item \texttt {LeftInnerMappingGroup}, \hyperpage{30}
\item \texttt {LeftInverse}, \hyperpage{24}
\item \texttt {LeftMultiplicationGroup}, \hyperpage{29}
\item \texttt {LeftNucleus}, \hyperpage{30}
\item \texttt {LeftSection}, \hyperpage{28}
\item \texttt {LeftTranslation}, \hyperpage{28}
\item \texttt {LibraryLoop}, \hyperpage{49}
\item loop, \hyperpage{8}
\subitem alternative, \hyperpage{39}
\subitem associated left Bruck, \hyperpage{45}
\subitem automorphic, \hyperpage{43}
\subitem C, \hyperpage{39}
\subitem Chein, \hyperpage{46}
\subitem code, \hyperpage{44}
\subitem conjugacy closed, \hyperpage{42}
\subitem extra, \hyperpage{39}
\subitem flexible, \hyperpage{39}
\subitem LC, \hyperpage{39}
\subitem left alternative, \hyperpage{39}
\subitem left automorphic, \hyperpage{43}
\subitem left Bol, \hyperpage{12}, \hyperpage{39}, \hyperpage{45}
\subitem left Bruck, \hyperpage{44}
\subitem left conjugacy closed, \hyperpage{42}
\subitem left K, \hyperpage{44}
\subitem left nuclear square, \hyperpage{39}
\subitem left power alternative, \hyperpage{42}
\subitem middle automorphic, \hyperpage{43}
\subitem middle nuclear square, \hyperpage{39}
\subitem Moufang, \hyperpage{39}
\subitem nilpotent, \hyperpage{9}, \hyperpage{19}
\subitem nuclear square, \hyperpage{39}
\subitem octonion, \hyperpage{50}
\subitem of Bol-Moufang type, \hyperpage{39}
\subitem Osborn, \hyperpage{43}
\subitem Paige, \hyperpage{53}
\subitem power alternative, \hyperpage{42}
\subitem power associative, \hyperpage{23}
\subitem RC, \hyperpage{39}
\subitem right alternative, \hyperpage{39}
\subitem right automorphic, \hyperpage{43}
\subitem right Bol, \hyperpage{39}
\subitem right Bruck, \hyperpage{44}
\subitem right conjugacy closed, \hyperpage{42}
\subitem right K, \hyperpage{44}
\subitem right nuclear square, \hyperpage{39}
\subitem right power alternative, \hyperpage{42}
\subitem sedenion, \hyperpage{54}
\subitem simple, \hyperpage{12}, \hyperpage{32}
\subitem solvable, \hyperpage{9}
\subitem Steiner, \hyperpage{44}
\subitem strongly nilpotent, \hyperpage{32}
\item loop isotope
\subitem principal, \hyperpage{10}
\item loop table, \hyperpage{14}
\item \texttt {LoopByCayleyTable}, \hyperpage{15}
\item \texttt {LoopByCyclicModification}, \hyperpage{46}
\item \texttt {LoopByDihedralModification}, \hyperpage{46}
\item \texttt {LoopByExtension}, \hyperpage{18}
\item \texttt {LoopByLeftSection}, \hyperpage{17}
\item \texttt {LoopByRightFolder}, \hyperpage{18}
\item \texttt {LoopByRightSection}, \hyperpage{17}
\item \texttt {LoopFromFile}, \hyperpage{17}
\item \texttt {LoopMG2}, \hyperpage{46}
\item \texttt {LoopsUpToIsomorphism}, \hyperpage{34}
\item \texttt {LoopsUpToIsotopism}, \hyperpage{35}
\item \texttt {LowerCentralSeries}, \hyperpage{33}
\indexspace
\item magma, \hyperpage{8}
\item medial quasigroup, \hyperpage{39}
\item \texttt {MiddleInnerMapping}, \hyperpage{30}
\item \texttt {MiddleInnerMappingGroup}, \hyperpage{30}
\item \texttt {MiddleNucleus}, \hyperpage{30}
\item modification
\subitem cyclic, \hyperpage{46}
\subitem dihedral, \hyperpage{46}
\subitem Moufang, \hyperpage{46}
\item Moufang loop, \hyperpage{39}
\item \texttt {MoufangLoop}, \hyperpage{50}
\item multiplication group, \hyperpage{9}
\subitem left, \hyperpage{9}
\subitem relative, \hyperpage{29}
\subitem relative left, \hyperpage{29}
\subitem relative right , \hyperpage{29}
\subitem right, \hyperpage{9}
\item multiplication table, \hyperpage{14}
\item \texttt {MultiplicationGroup}, \hyperpage{29}
\item \texttt {MyLibraryLoop}, \hyperpage{49}
\indexspace
\item \texttt {NaturalHomomorphismByNormalSubloop}, \hyperpage{32}
\item neutral element, \hyperpage{8}
\item nilpotence class, \hyperpage{9}
\item \texttt {NilpotencyClassOfLoop}, \hyperpage{32}
\item nilpotent loop, \hyperpage{9}
\subitem strongly, \hyperpage{32}
\item \texttt {NilpotentLoop}, \hyperpage{53}
\item normal closure, \hyperpage{31}
\item normal subloop, \hyperpage{31}
\item \texttt {NormalClosure}, \hyperpage{31}
\item \texttt {NormalizedQuasigroupTable}, \hyperpage{15}
\item \texttt {Nuc}, \hyperpage{31}
\item nuclear square loop, \hyperpage{39}
\subitem left, \hyperpage{39}
\subitem middle, \hyperpage{39}
\subitem right, \hyperpage{39}
\item \texttt {NuclearExtension}, \hyperpage{18}
\item nucleus, \hyperpage{9}
\subitem left, \hyperpage{9}
\subitem middle, \hyperpage{9}
\subitem right, \hyperpage{9}
\item \texttt {NucleusOfLoop}, \hyperpage{31}
\item \texttt {NucleusOfQuasigroup}, \hyperpage{31}
\indexspace
\item octonion loop, \hyperpage{50}
\item \texttt {One}, \hyperpage{22}
\item \texttt {OneLoopTableInGroup}, \hyperpage{47}
\item \texttt {OneLoopWithMltGroup}, \hyperpage{48}
\item \texttt {OneProperLoopTableInGroup}, \hyperpage{48}
\item \texttt {Opposite}, \hyperpage{21}
\item opposite quasigroup, \hyperpage{21}
\item \texttt {OppositeLoop}, \hyperpage{21}
\item \texttt {OppositeQuasigroup}, \hyperpage{21}
\item Osborn loop, \hyperpage{43}
\indexspace
\item Paige loop, \hyperpage{53}
\item \texttt {PaigeLoop}, \hyperpage{53}
\item \texttt {Parent}, \hyperpage{26}
\item \texttt {PosInParent}, \hyperpage{27}
\item \texttt {Position}, \hyperpage{26}
\item power alternative loop, \hyperpage{42}
\subitem left, \hyperpage{42}
\subitem right, \hyperpage{42}
\item power associative loop, \hyperpage{23}
\item power associative quasigroup, \hyperpage{36}
\item \texttt {PrincipalLoopIsotope}, \hyperpage{20}
\indexspace
\item quasigroup, \hyperpage{8}
\subitem diassociative, \hyperpage{37}
\subitem distributive, \hyperpage{38}
\subitem entropic, \hyperpage{39}
\subitem idempotent, \hyperpage{38}
\subitem left distributive, \hyperpage{38}
\subitem medial, \hyperpage{39}
\subitem opposite, \hyperpage{21}
\subitem power associative, \hyperpage{36}
\subitem right distributive, \hyperpage{38}
\subitem semisymmetric, \hyperpage{38}
\subitem Steiner, \hyperpage{38}
\subitem totally symmetric, \hyperpage{38}
\subitem unipotent, \hyperpage{38}
\item quasigroup table, \hyperpage{14}
\item \texttt {QuasigroupByCayleyTable}, \hyperpage{15}
\item \texttt {QuasigroupByLeftSection}, \hyperpage{17}
\item \texttt {QuasigroupByRightFolder}, \hyperpage{18}
\item \texttt {QuasigroupByRightSection}, \hyperpage{17}
\item \texttt {QuasigroupFromFile}, \hyperpage{17}
\item \texttt {QuasigroupsUpToIsomorphism}, \hyperpage{34}
\indexspace
\item \texttt {RandomLoop}, \hyperpage{19}
\item \texttt {RandomNilpotentLoop}, \hyperpage{19}
\item \texttt {RandomQuasigroup}, \hyperpage{19}
\item RC loop, \hyperpage{39}
\item \texttt {RCCLoop}, \hyperpage{52}
\item \texttt {RelativeLeftMultiplicationGroup}, \hyperpage{29}
\item \texttt {RelativeMultiplicationGroup}, \hyperpage{29}
\item \texttt {RelativeRightMultiplicationGroup}, \hyperpage{29}
\item \texttt {RightBolLoop}, \hyperpage{50}
\item \texttt {Right}\discretionary {-}{}{}\texttt {Bol}\discretionary {-}{}{}\texttt {Loop}\discretionary {-}{}{}\texttt {By}\discretionary {-}{}{}\texttt {Exact}\discretionary {-}{}{}\texttt {Group}\discretionary {-}{}{}\texttt {Factorization},
\hyperpage{45}
\item \texttt {RightConjugacyClosedLoop}, \hyperpage{52}
\item \texttt {RightCosets}, \hyperpage{28}
\item \texttt {RightDivision}, \hyperpage{23}
\item \texttt {RightDivisionCayleyTable}, \hyperpage{23}
\item \texttt {RightInnerMapping}, \hyperpage{30}
\item \texttt {RightInnerMappingGroup}, \hyperpage{30}
\item \texttt {RightInverse}, \hyperpage{24}
\item \texttt {RightMultiplicationGroup}, \hyperpage{29}
\item \texttt {RightNucleus}, \hyperpage{30}
\item \texttt {RightSection}, \hyperpage{28}
\item \texttt {RightTranslation}, \hyperpage{28}
\item \texttt {RightTransversal}, \hyperpage{28}
\indexspace
\item section
\subitem left, \hyperpage{8}
\subitem right, \hyperpage{8}
\item sedenion loop, \hyperpage{54}
\item semisymmetric quasigroup, \hyperpage{38}
\item \texttt {SetLoopElmName}, \hyperpage{13}
\item \texttt {SetQuasigroupElmName}, \hyperpage{13}
\item simple loop, \hyperpage{12}, \hyperpage{32}
\item \texttt {Size}, \hyperpage{22}
\item \texttt {SmallGeneratingSet}, \hyperpage{25}
\item \texttt {SmallLoop}, \hyperpage{53}
\item solvability class, \hyperpage{9}
\item solvable loop, \hyperpage{9}
\item Steiner loop, \hyperpage{44}
\item Steiner quasigroup, \hyperpage{38}
\item \texttt {SteinerLoop}, \hyperpage{51}
\item strongly nilpotent loop, \hyperpage{32}
\item \texttt {Subloop}, \hyperpage{27}
\item subloop, \hyperpage{9}
\subitem normal, \hyperpage{9}, \hyperpage{31}
\item \texttt {Subquasigroup}, \hyperpage{27}
\item subquasigroup, \hyperpage{9}
\indexspace
\item totally symmetric quasigroup, \hyperpage{38}
\item translation
\subitem left, \hyperpage{8}
\subitem right, \hyperpage{8}
\item transversal, \hyperpage{28}
\item \texttt {TrialityPcGroup}, \hyperpage{47}
\item \texttt {TrialityPermGroup}, \hyperpage{47}
\indexspace
\item unipotent quasigroup, \hyperpage{38}
\item \texttt {UpperCentralSeries}, \hyperpage{33}
\end{theindex}

856
doc/loops.log Normal file
View file

@ -0,0 +1,856 @@
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (MiKTeX 2.9 64-bit) (preloaded format=latex 2014.9.18) 27 OCT 2016 11:38
entering extended mode
**loops.tex
(C:\cygwin64\opt\gap4r7\pkg\loops\doc\loops.tex
LaTeX2e <2011/06/27>
Babel <v3.8m> and hyphenation patterns for english, afrikaans, ancientgreek, ar
abic, armenian, assamese, basque, bengali, bokmal, bulgarian, catalan, coptic,
croatian, czech, danish, dutch, esperanto, estonian, farsi, finnish, french, ga
lician, german, german-x-2013-05-26, greek, gujarati, hindi, hungarian, iceland
ic, indonesian, interlingua, irish, italian, kannada, kurmanji, latin, latvian,
lithuanian, malayalam, marathi, mongolian, mongolianlmc, monogreek, ngerman, n
german-x-2013-05-26, nynorsk, oriya, panjabi, pinyin, polish, portuguese, roman
ian, russian, sanskrit, serbian, slovak, slovenian, spanish, swedish, swissgerm
an, tamil, telugu, turkish, turkmen, ukenglish, ukrainian, uppersorbian, usengl
ishmax, welsh, loaded.
("C:\Program Files\MiKTeX 2.9\tex\latex\base\report.cls"
Document Class: report 2007/10/19 v1.4h Standard LaTeX document class
("C:\Program Files\MiKTeX 2.9\tex\latex\base\size11.clo"
File: size11.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
)
\c@part=\count79
\c@chapter=\count80
\c@section=\count81
\c@subsection=\count82
\c@subsubsection=\count83
\c@paragraph=\count84
\c@subparagraph=\count85
\c@figure=\count86
\c@table=\count87
\abovecaptionskip=\skip41
\belowcaptionskip=\skip42
\bibindent=\dimen102
)
("C:\Program Files\MiKTeX 2.9\tex\latex\a4wide\a4wide.sty"
Package: a4wide 1994/08/30
("C:\Program Files\MiKTeX 2.9\tex\latex\ntgclass\a4.sty"
Package: a4 2004/04/15 v1.2g A4 based page layout
))
("C:\Program Files\MiKTeX 2.9\tex\latex\amsfonts\amssymb.sty"
Package: amssymb 2013/01/14 v3.01 AMS font symbols
("C:\Program Files\MiKTeX 2.9\tex\latex\amsfonts\amsfonts.sty"
Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
\@emptytoks=\toks14
\symAMSa=\mathgroup4
\symAMSb=\mathgroup5
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
(Font) U/euf/m/n --> U/euf/b/n on input line 106.
))
("C:\Program Files\MiKTeX 2.9\tex\latex\base\inputenc.sty"
Package: inputenc 2008/03/30 v1.1d Input encoding file
\inpenc@prehook=\toks15
\inpenc@posthook=\toks16
("C:\Program Files\MiKTeX 2.9\tex\latex\base\latin1.def"
File: latin1.def 2008/03/30 v1.1d Input encoding file
))
("C:\Program Files\MiKTeX 2.9\tex\latex\base\makeidx.sty"
Package: makeidx 2000/03/29 v1.0m Standard LaTeX package
)
\@indexfile=\write3
Writing index file loops.idx
("C:\Program Files\MiKTeX 2.9\tex\latex\graphics\color.sty"
Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC)
("C:\Program Files\MiKTeX 2.9\tex\latex\00miktex\color.cfg"
File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
)
Package color Info: Driver file: dvips.def on input line 130.
("C:\Program Files\MiKTeX 2.9\tex\latex\graphics\dvips.def"
File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
)
("C:\Program Files\MiKTeX 2.9\tex\latex\graphics\dvipsnam.def"
File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
))
("C:\Program Files\MiKTeX 2.9\tex\latex\fancyvrb\fancyvrb.sty"
Package: fancyvrb 2008/02/07
Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix
<2008/02/07> (tvz) ("C:\Program Files\MiKTeX 2.9\tex\latex\graphics\keyval.sty"
Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
\KV@toks@=\toks17
)
\FV@CodeLineNo=\count88
\FV@InFile=\read1
\FV@TabBox=\box26
\c@FancyVerbLine=\count89
\FV@StepNumber=\count90
\FV@OutFile=\write4
) ("C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\mathptmx.sty"
Package: mathptmx 2005/04/12 PSNFSS-v9.2a Times w/ Math, improved (SPQR, WaS)
LaTeX Font Info: Redeclaring symbol font `operators' on input line 28.
LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
(Font) OT1/cmr/m/n --> OT1/ztmcm/m/n on input line 28.
LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
(Font) OT1/cmr/bx/n --> OT1/ztmcm/m/n on input line 28.
LaTeX Font Info: Redeclaring symbol font `letters' on input line 29.
LaTeX Font Info: Overwriting symbol font `letters' in version `normal'
(Font) OML/cmm/m/it --> OML/ztmcm/m/it on input line 29.
LaTeX Font Info: Overwriting symbol font `letters' in version `bold'
(Font) OML/cmm/b/it --> OML/ztmcm/m/it on input line 29.
LaTeX Font Info: Redeclaring symbol font `symbols' on input line 30.
LaTeX Font Info: Overwriting symbol font `symbols' in version `normal'
(Font) OMS/cmsy/m/n --> OMS/ztmcm/m/n on input line 30.
LaTeX Font Info: Overwriting symbol font `symbols' in version `bold'
(Font) OMS/cmsy/b/n --> OMS/ztmcm/m/n on input line 30.
LaTeX Font Info: Redeclaring symbol font `largesymbols' on input line 31.
LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal'
(Font) OMX/cmex/m/n --> OMX/ztmcm/m/n on input line 31.
LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold'
(Font) OMX/cmex/m/n --> OMX/ztmcm/m/n on input line 31.
\symbold=\mathgroup6
\symitalic=\mathgroup7
LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 34.
LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
(Font) OT1/cmr/bx/n --> OT1/ptm/bx/n on input line 34.
LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
(Font) OT1/cmr/bx/n --> OT1/ptm/bx/n on input line 34.
LaTeX Font Info: Redeclaring math alphabet \mathit on input line 35.
LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
(Font) OT1/cmr/m/it --> OT1/ptm/m/it on input line 35.
LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
(Font) OT1/cmr/bx/it --> OT1/ptm/m/it on input line 35.
LaTeX Info: Redefining \hbar on input line 50.
)
("C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\helvet.sty"
Package: helvet 2005/04/12 PSNFSS-v9.2a (WaS)
)
("C:\Program Files\MiKTeX 2.9\tex\latex\base\fontenc.sty"
Package: fontenc 2005/09/27 v1.99g Standard LaTeX package
("C:\Program Files\MiKTeX 2.9\tex\latex\base\t1enc.def"
File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file
LaTeX Font Info: Redeclaring font encoding T1 on input line 43.
))
("C:\Program Files\MiKTeX 2.9\tex\latex\base\textcomp.sty"
Package: textcomp 2005/09/27 v1.99g Standard LaTeX package
Package textcomp Info: Sub-encoding information:
(textcomp) 5 = only ISO-Adobe without \textcurrency
(textcomp) 4 = 5 + \texteuro
(textcomp) 3 = 4 + \textohm
(textcomp) 2 = 3 + \textestimated + \textcurrency
(textcomp) 1 = TS1 - \textcircled - \t
(textcomp) 0 = TS1 (full)
(textcomp) Font families with sub-encoding setting implement
(textcomp) only a restricted character set as indicated.
(textcomp) Family '?' is the default used for unknown fonts.
(textcomp) See the documentation for details.
Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 71.
("C:\Program Files\MiKTeX 2.9\tex\latex\base\ts1enc.def"
File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file
)
LaTeX Info: Redefining \oldstylenums on input line 266.
Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 281.
Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 282.
Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 283.
Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 284.
Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 285.
Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 286.
Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 287.
Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 288.
Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 289.
Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 290.
Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 291.
Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 292.
Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 293.
Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 294.
Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 295.
Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 296.
Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 297.
Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 298.
Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 299.
Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 300.
Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 301.
Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 302.
Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 303.
Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 304.
Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 305.
Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 306.
Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 307.
Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 308.
Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 309.
Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 310.
Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 311.
Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 312.
Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 313.
Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 314.
Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 315.
Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 316.
Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 317.
Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 318.
Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 319.
Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 320.
Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 321.
Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 322.
Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 323.
Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 324.
Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 325.
Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 326.
Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 327.
Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 328.
Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 329.
Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 330.
Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 331.
Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 332.
Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 333.
Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 334.
Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 335.
Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 336.
Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 337.
Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 338.
Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 339.
Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 340.
)
("C:\Program Files\MiKTeX 2.9\tex\latex\hyperref\hyperref.sty"
Package: hyperref 2012/11/06 v6.83m Hypertext links for LaTeX
("C:\Program Files\MiKTeX 2.9\tex\generic\oberdiek\hobsub-hyperref.sty"
Package: hobsub-hyperref 2012/04/25 v1.12 Bundle oberdiek, subset hyperref (HO)
("C:\Program Files\MiKTeX 2.9\tex\generic\oberdiek\hobsub-generic.sty"
Package: hobsub-generic 2012/04/25 v1.12 Bundle oberdiek, subset generic (HO)
Package: hobsub 2012/04/25 v1.12 Construct package bundles (HO)
Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO)
Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO)
Package ifluatex Info: LuaTeX not detected.
Package: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO)
Package ifvtex Info: VTeX not detected.
Package: intcalc 2007/09/27 v1.1 Expandable calculations with integers (HO)
Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO)
Package ifpdf Info: pdfTeX in PDF mode is not detected.
Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
Package etexcmds Info: Could not find \expanded.
(etexcmds) That can mean that you are not using pdfTeX 1.50 or
(etexcmds) that some package has redefined \expanded.
(etexcmds) In the latter case, load this package earlier.
Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO)
Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO)
Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO
)
Package pdftexcmds Info: LuaTeX not detected.
Package pdftexcmds Info: \pdf@primitive is available.
Package pdftexcmds Info: \pdf@ifprimitive is available.
Package pdftexcmds Info: \pdfdraftmode is ignored in DVI mode.
Package: pdfescape 2011/11/25 v1.13 Implements pdfTeX's escape features (HO)
Package: bigintcalc 2012/04/08 v1.3 Expandable calculations on big integers (HO
)
Package: bitset 2011/01/30 v1.1 Handle bit-vector datatype (HO)
Package: uniquecounter 2011/01/30 v1.2 Provide unlimited unique counter (HO)
)
Package hobsub Info: Skipping package `hobsub' (already loaded).
Package: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO)
Package: hopatch 2011/06/24 v1.1 Wrapper for package hooks (HO)
Package: xcolor-patch 2011/01/30 xcolor patch
Package: atveryend 2011/06/30 v1.8 Hooks at the very end of document (HO)
Package atveryend Info: \enddocument detected (standard20110627).
Package: atbegshi 2011/10/05 v1.16 At begin shipout hook (HO)
Package: refcount 2011/10/16 v3.4 Data extraction from label references (HO)
Package: hycolor 2011/01/30 v1.7 Color options for hyperref/bookmark (HO)
)
("C:\Program Files\MiKTeX 2.9\tex\generic\ifxetex\ifxetex.sty"
Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
)
("C:\Program Files\MiKTeX 2.9\tex\latex\oberdiek\auxhook.sty"
Package: auxhook 2011/03/04 v1.3 Hooks for auxiliary files (HO)
)
("C:\Program Files\MiKTeX 2.9\tex\latex\oberdiek\kvoptions.sty"
Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO)
)
\@linkdim=\dimen103
\Hy@linkcounter=\count91
\Hy@pagecounter=\count92
("C:\Program Files\MiKTeX 2.9\tex\latex\hyperref\pd1enc.def"
File: pd1enc.def 2012/11/06 v6.83m Hyperref: PDFDocEncoding definition (HO)
)
\Hy@SavedSpaceFactor=\count93
("C:\Program Files\MiKTeX 2.9\tex\latex\00miktex\hyperref.cfg"
File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
)
Package hyperref Warning: Unexpected value for option `pdftex'
(hyperref) is ignored on input line 4319.
! Package hyperref Error: Wrong driver option `pdftex',
(hyperref) because pdfTeX in PDF mode is not detected.
See the hyperref package documentation for explanation.
Type H <return> for immediate help.
...
l.4319 \ProcessKeyvalOptions{Hyp}
?
Package hyperref Info: Option `bookmarks' set `true' on input line 4319.
Package hyperref Warning: Option `a4paper' is no longer used.
Package hyperref Info: Option `colorlinks' set `true' on input line 4319.
Package hyperref Info: Option `breaklinks' set `true' on input line 4319.
Package hyperref Info: Hyper figures OFF on input line 4443.
Package hyperref Info: Link nesting OFF on input line 4448.
Package hyperref Info: Hyper index ON on input line 4451.
Package hyperref Info: Plain pages OFF on input line 4458.
Package hyperref Info: Backreferencing ON on input line 4461.
Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
Package hyperref Info: Bookmarks ON on input line 4688.
("C:\Program Files\MiKTeX 2.9\tex\latex\hyperref\backref.sty"
Package: backref 2012/07/25 v1.38 Bibliographical back referencing
("C:\Program Files\MiKTeX 2.9\tex\latex\oberdiek\rerunfilecheck.sty"
Package: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO)
Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
82.
))
\c@Hy@tempcnt=\count94
("C:\Program Files\MiKTeX 2.9\tex\latex\url\url.sty"
\Urlmuskip=\muskip10
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
)
LaTeX Info: Redefining \url on input line 5041.
\XeTeXLinkMargin=\dimen104
\Fld@menulength=\count95
\Field@Width=\dimen105
\Fld@charsize=\dimen106
Package hyperref Info: Hyper figures OFF on input line 6295.
Package hyperref Info: Link nesting OFF on input line 6300.
Package hyperref Info: Hyper index ON on input line 6303.
Package hyperref Info: backreferencing ON on input line 6308.
Package hyperref Info: Link coloring ON on input line 6313.
Package hyperref Info: Link coloring with OCG OFF on input line 6320.
Package hyperref Info: PDF/A mode OFF on input line 6325.
LaTeX Info: Redefining \ref on input line 6365.
LaTeX Info: Redefining \pageref on input line 6369.
\Hy@abspage=\count96
\c@Item=\count97
\c@Hfootnote=\count98
)
Package hyperref Message: Driver (default): hdvips.
("C:\Program Files\MiKTeX 2.9\tex\latex\hyperref\hdvips.def"
File: hdvips.def 2012/11/06 v6.83m Hyperref driver for dvips
("C:\Program Files\MiKTeX 2.9\tex\latex\hyperref\pdfmark.def"
File: pdfmark.def 2012/11/06 v6.83m Hyperref definitions for pdfmark specials
Package hyperref Warning: You have enabled option `breaklinks'.
(hyperref) But driver `hdvips.def' does not suppport this.
(hyperref) Expect trouble with the link areas of broken links.
\pdf@docset=\toks18
\pdf@box=\box27
\pdf@toks=\toks19
\pdf@defaulttoks=\toks20
\HyField@AnnotCount=\count99
\Fld@listcount=\count100
\c@bookmark@seq@number=\count101
\Hy@SectionHShift=\skip43
))
\pagenrlog=\write5
("C:\Program Files\MiKTeX 2.9\tex\latex\enumitem\enumitem.sty"
Package: enumitem 2011/09/28 v3.5.2 Customized lists
\labelindent=\skip44
\enit@outerparindent=\dimen107
\enit@toks=\toks21
\enit@inbox=\box28
\enitdp@description=\count102
)
(C:\cygwin64\opt\gap4r7\pkg\loops\doc\loops.aux
LaTeX Warning: Label `LeftDivision' multiply defined.
LaTeX Warning: Label `LeftDivision' multiply defined.
LaTeX Warning: Label `RightDivision' multiply defined.
LaTeX Warning: Label `RightDivision' multiply defined.
LaTeX Warning: Label `Sec:AutomorphicLoops' multiply defined.
)
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 87.
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 87.
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 87.
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 87.
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 87.
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 87.
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 87.
LaTeX Font Info: Try loading font information for TS1+cmr on input line 87.
("C:\Program Files\MiKTeX 2.9\tex\latex\base\ts1cmr.fd"
File: ts1cmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions
)
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 87.
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: Try loading font information for T1+ptm on input line 87.
("C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\t1ptm.fd"
File: t1ptm.fd 2001/06/04 font definitions for T1/ptm.
)
\big@size=\dimen108
\AtBeginShipoutBox=\box29
Package hyperref Info: Link coloring ON on input line 87.
("C:\Program Files\MiKTeX 2.9\tex\latex\hyperref\nameref.sty"
Package: nameref 2012/10/27 v2.43 Cross-referencing by name of section
("C:\Program Files\MiKTeX 2.9\tex\generic\oberdiek\gettitlestring.sty"
Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO)
)
\c@section@level=\count103
)
LaTeX Info: Redefining \ref on input line 87.
LaTeX Info: Redefining \pageref on input line 87.
LaTeX Info: Redefining \nameref on input line 87.
(C:\cygwin64\opt\gap4r7\pkg\loops\doc\loops.out)
(C:\cygwin64\opt\gap4r7\pkg\loops\doc\loops.out)
\@outlinefile=\write6
Package hyperref Warning: Rerun to get /PageLabels entry.
LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <50> not available
(Font) Font shape `T1/ptm/b/n' tried instead on input line 93.
LaTeX Font Info: Try loading font information for T1+phv on input line 93.
("C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\t1phv.fd"
File: t1phv.fd 2001/06/04 scalable font definitions for T1/phv.
)
LaTeX Font Info: Font shape `T1/phv/bx/n' in size <50> not available
(Font) Font shape `T1/phv/b/n' tried instead on input line 93.
LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <24.88> not available
(Font) Font shape `T1/ptm/b/n' tried instead on input line 98.
LaTeX Font Info: Font shape `T1/phv/bx/n' in size <24.88> not available
(Font) Font shape `T1/phv/b/n' tried instead on input line 98.
LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <14.4> not available
(Font) Font shape `T1/ptm/b/n' tried instead on input line 103.
Package hyperref Warning: Composite letter `\textasciicaron+e'
(hyperref) not defined in PD1 encoding,
(hyperref) removing `\textasciicaron' on input line 105.
LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <10> not available
(Font) Font shape `T1/ptm/b/n' tried instead on input line 110.
LaTeX Font Info: Try loading font information for T1+cmtt on input line 110.
("C:\Program Files\MiKTeX 2.9\tex\latex\base\t1cmtt.fd"
File: t1cmtt.fd 1999/05/25 v2.5h Standard LaTeX font definitions
)
Underfull \hbox (badness 10000) in paragraph at lines 108--119
[]
[1
]
LaTeX Font Info: Try loading font information for TS1+ptm on input line 125.
("C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\ts1ptm.fd"
File: ts1ptm.fd 2001/06/04 font definitions for TS1/ptm.
)
Underfull \hbox (badness 10000) in paragraph at lines 125--126
[]
[2] (C:\cygwin64\opt\gap4r7\pkg\loops\doc\loops.toc
LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <10.95> not available
(Font) Font shape `T1/ptm/b/n' tried instead on input line 1.
LaTeX Font Info: Try loading font information for OT1+ztmcm on input line 2.
("C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\ot1ztmcm.fd"
File: ot1ztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OT1/ztmcm.
)
LaTeX Font Info: Try loading font information for OML+ztmcm on input line 2.
("C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\omlztmcm.fd"
File: omlztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OML/ztmcm.
)
LaTeX Font Info: Try loading font information for OMS+ztmcm on input line 2.
("C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\omsztmcm.fd"
File: omsztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OMS/ztmcm.
)
LaTeX Font Info: Try loading font information for OMX+ztmcm on input line 2.
("C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\omxztmcm.fd"
File: omxztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OMX/ztmcm.
)
LaTeX Font Info: Try loading font information for OT1+ptm on input line 2.
("C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\ot1ptm.fd"
File: ot1ptm.fd 2001/06/04 font definitions for OT1/ptm.
)
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <10.95> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 2.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <8> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 2.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <6> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 2.
[3
] [4])
\tf@toc=\write7
[5]
Chapter 1.
LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <20.74> not available
(Font) Font shape `T1/ptm/b/n' tried instead on input line 134.
[6
] [7]
Chapter 2.
[8
] [9] [10]
Chapter 3.
[11
]
Underfull \hbox (badness 1264) in paragraph at lines 394--396
[][]\T1/ptm/m/n/10.95 In some spe-cial sit-u-a-tions, the func-tion \T1/cmtt/m/
n/10.95 IntoSomething([]) \T1/ptm/m/n/10.95 al-lows to con-vert [] into
[]
Underfull \hbox (badness 10000) in paragraph at lines 404--408
[]
Underfull \hbox (badness 10000) in paragraph at lines 410--413
[]
Underfull \hbox (badness 10000) in paragraph at lines 415--417
[]
Underfull \hbox (badness 10000) in paragraph at lines 419--423
[]
[12]
LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <12> not available
(Font) Font shape `T1/ptm/b/n' tried instead on input line 451.
Underfull \hbox (badness 10000) in paragraph at lines 454--460
[]
Underfull \hbox (badness 10000) in paragraph at lines 464--466
[]
Underfull \hbox (badness 10000) in paragraph at lines 469--471
[]
LaTeX Font Info: Font shape `T1/cmtt/bx/n' in size <10> not available
(Font) Font shape `T1/cmtt/m/n' tried instead on input line 476.
[13]
Chapter 4.
Underfull \hbox (badness 10000) in paragraph at lines 538--546
[]
[14
] [15]
Underfull \hbox (badness 10000) in paragraph at lines 669--671
[]
[16]
Underfull \hbox (badness 10000) in paragraph at lines 763--769
[]
[17]
Underfull \hbox (badness 10000) in paragraph at lines 813--815
[]
[18] [19]
Underfull \hbox (badness 10000) in paragraph at lines 945--947
[]
Underfull \hbox (badness 10000) in paragraph at lines 984--990
[]
Underfull \hbox (badness 2401) in paragraph at lines 1001--1007
[]\T1/ptm/b/n/10.95 Returns: \T1/ptm/m/n/10.95 If [] is a de-clared magma that
hap-pens to be a group, the cor-re-spond-
[]
[20] [21]
Chapter 5.
[22
]
Underfull \hbox (badness 10000) in paragraph at lines 1165--1173
[]
Underfull \hbox (badness 10000) in paragraph at lines 1175--1190
[]
[23] [24] [25]
Chapter 6.
Underfull \hbox (badness 10000) in paragraph at lines 1378--1383
[]
Underfull \hbox (badness 10000) in paragraph at lines 1401--1407
[]
[26
]
Underfull \hbox (badness 10000) in paragraph at lines 1446--1449
[]
[27]
Underfull \hbox (badness 10000) in paragraph at lines 1554--1562
[]
[28] [29]
Underfull \hbox (badness 1221) in paragraph at lines 1685--1685
[][]\T1/ptm/b/n/12 LeftInnerMappingGroup, Right-In-nerMap-ping-Group, Mid-dleIn
-nerMap-ping-
[]
Underfull \hbox (badness 10000) in paragraph at lines 1708--1713
[]
[30] [31] [32]
Underfull \hbox (badness 10000) in paragraph at lines 2068--2072
[]
[33]
Underfull \hbox (badness 10000) in paragraph at lines 2139--2144
[]
Underfull \hbox (badness 10000) in paragraph at lines 2150--2151
[]
Underfull \hbox (badness 10000) in paragraph at lines 2173--2178
[]
[34] [35]
Chapter 7.
[36
]
Underfull \hbox (badness 10000) in paragraph at lines 2419--2421
[]
[37] [38] [39] [40]
Underfull \hbox (badness 10000) in paragraph at lines 2769--2774
[]
Underfull \hbox (badness 10000) in paragraph at lines 2780--2782
[]
[41] [42] [43] [44]
Chapter 8.
[45
] [46]
Underfull \hbox (badness 10000) in paragraph at lines 3224--3227
[]
[47] [48]
Chapter 9.
Underfull \hbox (badness 10000) in paragraph at lines 3361--3362
[][]\T1/cmtt/m/n/10.95 LOOPS_my_library_data[2][k] \T1/ptm/m/n/10.95 is the num
-ber of loops of or-der
[]
Underfull \hbox (badness 10000) in paragraph at lines 3383--3386
[]
Underfull \hbox (badness 10000) in paragraph at lines 3397--3402
[]
[49
] [50] [51]
Underfull \hbox (badness 10000) in paragraph at lines 3588--3591
[]
[52] [53] [54]
Appendix A.
Underfull \hbox (badness 10000) in paragraph at lines 3788--3833
[]
[55
] [56]
Appendix B.
Underfull \hbox (badness 10000) in paragraph at lines 3842--3962
[]
Underfull \hbox (badness 10000) in paragraph at lines 3842--3962
\T1/cmtt/m/n/10.95 ( HasAntiautomorphicInverseProperty, HasAutomorphicInversePr
operty and
[]
Underfull \hbox (badness 10000) in paragraph at lines 3842--3962
\T1/cmtt/m/n/10.95 ( HasAutomorphicInverseProperty, HasAntiautomorphicInversePr
operty and
[]
Overfull \hbox (21.33267pt too wide) in paragraph at lines 3842--3962
\T1/cmtt/m/n/10.95 ( HasInverseProperty, HasLeftInverseProperty and HasAntiauto
morphicInverseProperty
[]
Overfull \hbox (26.99104pt too wide) in paragraph at lines 3842--3962
\T1/cmtt/m/n/10.95 ( HasInverseProperty, HasRightInverseProperty and HasAntiaut
omorphicInverseProperty
[]
Overfull \hbox (21.33267pt too wide) in paragraph at lines 3842--3962
\T1/cmtt/m/n/10.95 ( HasInverseProperty, HasWeakInverseProperty and HasAntiauto
morphicInverseProperty
[]
Overfull \hbox (38.30779pt too wide) in paragraph at lines 3842--3962
\T1/cmtt/m/n/10.95 ( IsLeftAutomorphicLoop, IsRightAutomorphicLoop and HasAntia
utomorphicInverseProperty
[]
Overfull \hbox (38.30779pt too wide) in paragraph at lines 3842--3962
\T1/cmtt/m/n/10.95 ( IsRightAutomorphicLoop, IsLeftAutomorphicLoop and HasAntia
utomorphicInverseProperty
[]
[57
] [58] (C:\cygwin64\opt\gap4r7\pkg\loops\doc\loops.bbl
(C:\cygwin64\opt\gap4r7\pkg\loops\doc\loops.brf)
\tf@brf=\write8
[59] [60
]) [61]
(C:\cygwin64\opt\gap4r7\pkg\loops\doc\loops.ind [62
] [63] [64] [65]
Underfull \hbox (badness 10000) in paragraph at lines 430--432
[][]\T1/cmtt/m/n/10.95 Right\T1/ptm/m/n/10.95 -\T1/cmtt/m/n/10.95 Bol\T1/ptm/m/
n/10.95 -\T1/cmtt/m/n/10.95 Loop\T1/ptm/m/n/10.95 -\T1/cmtt/m/n/10.95 By\T1/ptm
/m/n/10.95 -\T1/cmtt/m/n/10.95 Exact\T1/ptm/m/n/10.95 -\T1/cmtt/m/n/10.95 Group
\T1/ptm/m/n/10.95 -\T1/cmtt/m/n/10.95 Factorization\T1/ptm/m/n/10.95 ,
[]
[66])
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 3986.
Package atveryend Info: Empty hook `AfterLastShipout' on input line 3986.
(C:\cygwin64\opt\gap4r7\pkg\loops\doc\loops.aux)
Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 3986.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 3986.
Package rerunfilecheck Info: File `loops.out' has not changed.
(rerunfilecheck) Checksum: B35AC9998206B5E4DDDBB0BB03F0A272;5893.
Package rerunfilecheck Info: File `loops.brf' has not changed.
(rerunfilecheck) Checksum: C248D12B2C67B5CBC4D9D8FC93C1CB81;1554.
LaTeX Warning: There were multiply-defined labels.
Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 3986.
)
Here is how much of TeX's memory you used:
7134 strings out of 493922
107334 string characters out of 3147269
214990 words of memory out of 3000000
10330 multiletter control sequences out of 15000+200000
56657 words of font info for 68 fonts, out of 3000000 for 9000
841 hyphenation exceptions out of 8191
32i,7n,29p,918b,613s stack positions out of 5000i,500n,10000p,200000b,50000s
Output written on loops.dvi (66 pages, 548296 bytes).

83
doc/loops.out Normal file
View file

@ -0,0 +1,83 @@
\BOOKMARK [0][-]{chapter.1}{Introduction}{}% 1
\BOOKMARK [1][-]{section.1.1}{License}{chapter.1}% 2
\BOOKMARK [1][-]{section.1.2}{Installation}{chapter.1}% 3
\BOOKMARK [1][-]{section.1.3}{Documentation}{chapter.1}% 4
\BOOKMARK [1][-]{section.1.4}{Test Files}{chapter.1}% 5
\BOOKMARK [1][-]{section.1.5}{Memory Management}{chapter.1}% 6
\BOOKMARK [1][-]{section.1.6}{Feedback}{chapter.1}% 7
\BOOKMARK [1][-]{section.1.7}{Acknowledgment}{chapter.1}% 8
\BOOKMARK [0][-]{chapter.2}{Mathematical Background}{}% 9
\BOOKMARK [1][-]{section.2.1}{Quasigroups and Loops}{chapter.2}% 10
\BOOKMARK [1][-]{section.2.2}{Translations}{chapter.2}% 11
\BOOKMARK [1][-]{section.2.3}{Subquasigroups and Subloops}{chapter.2}% 12
\BOOKMARK [1][-]{section.2.4}{Nilpotence and Solvability}{chapter.2}% 13
\BOOKMARK [1][-]{section.2.5}{Associators and Commutators}{chapter.2}% 14
\BOOKMARK [1][-]{section.2.6}{Homomorphism and Homotopisms}{chapter.2}% 15
\BOOKMARK [0][-]{chapter.3}{How the Package Works}{}% 16
\BOOKMARK [1][-]{section.3.1}{Representing Quasigroups}{chapter.3}% 17
\BOOKMARK [1][-]{section.3.2}{Conversions between magmas, quasigroups, loops and groups}{chapter.3}% 18
\BOOKMARK [1][-]{section.3.3}{Calculating with Quasigroups}{chapter.3}% 19
\BOOKMARK [1][-]{section.3.4}{Naming, Viewing and Printing Quasigroups and their Elements}{chapter.3}% 20
\BOOKMARK [0][-]{chapter.4}{Creating Quasigroups and Loops}{}% 21
\BOOKMARK [1][-]{section.4.1}{About Cayley Tables}{chapter.4}% 22
\BOOKMARK [1][-]{section.4.2}{Testing Cayley Tables}{chapter.4}% 23
\BOOKMARK [1][-]{section.4.3}{Canonical and Normalized Cayley Tables}{chapter.4}% 24
\BOOKMARK [1][-]{section.4.4}{Creating Quasigroups and Loops From Cayley Tables}{chapter.4}% 25
\BOOKMARK [1][-]{section.4.5}{Creating Quasigroups and Loops from a File}{chapter.4}% 26
\BOOKMARK [1][-]{section.4.6}{Creating Quasigroups and Loops From Sections}{chapter.4}% 27
\BOOKMARK [1][-]{section.4.7}{Creating Quasigroups and Loops From Folders}{chapter.4}% 28
\BOOKMARK [1][-]{section.4.8}{Creating Quasigroups and Loops By Nuclear Extensions}{chapter.4}% 29
\BOOKMARK [1][-]{section.4.9}{Random Quasigroups and Loops}{chapter.4}% 30
\BOOKMARK [1][-]{section.4.10}{Conversions}{chapter.4}% 31
\BOOKMARK [1][-]{section.4.11}{Products of Quasigroups and Loops}{chapter.4}% 32
\BOOKMARK [1][-]{section.4.12}{Opposite Quasigroups and Loops}{chapter.4}% 33
\BOOKMARK [0][-]{chapter.5}{Basic Methods And Attributes}{}% 34
\BOOKMARK [1][-]{section.5.1}{Basic Attributes}{chapter.5}% 35
\BOOKMARK [1][-]{section.5.2}{Basic Arithmetic Operations}{chapter.5}% 36
\BOOKMARK [1][-]{section.5.3}{Powers and Inverses}{chapter.5}% 37
\BOOKMARK [1][-]{section.5.4}{Associators and Commutators}{chapter.5}% 38
\BOOKMARK [1][-]{section.5.5}{Generators}{chapter.5}% 39
\BOOKMARK [0][-]{chapter.6}{Methods Based on Permutation Groups}{}% 40
\BOOKMARK [1][-]{section.6.1}{Parent of a Quasigroup}{chapter.6}% 41
\BOOKMARK [1][-]{section.6.2}{Subquasigroups and Subloops}{chapter.6}% 42
\BOOKMARK [1][-]{section.6.3}{Translations and Sections}{chapter.6}% 43
\BOOKMARK [1][-]{section.6.4}{Multiplication Groups}{chapter.6}% 44
\BOOKMARK [1][-]{section.6.5}{Inner Mapping Groups}{chapter.6}% 45
\BOOKMARK [1][-]{section.6.6}{Nuclei, Commutant, Center, and Associator Subloop}{chapter.6}% 46
\BOOKMARK [1][-]{section.6.7}{Normal Subloops and Simple Loops}{chapter.6}% 47
\BOOKMARK [1][-]{section.6.8}{Factor Loops}{chapter.6}% 48
\BOOKMARK [1][-]{section.6.9}{Nilpotency and Central Series}{chapter.6}% 49
\BOOKMARK [1][-]{section.6.10}{Solvability, Derived Series and Frattini Subloop}{chapter.6}% 50
\BOOKMARK [1][-]{section.6.11}{Isomorphisms and Automorphisms}{chapter.6}% 51
\BOOKMARK [1][-]{section.6.12}{Isotopisms}{chapter.6}% 52
\BOOKMARK [0][-]{chapter.7}{Testing Properties of Quasigroups and Loops}{}% 53
\BOOKMARK [1][-]{section.7.1}{Associativity, Commutativity and Generalizations}{chapter.7}% 54
\BOOKMARK [1][-]{section.7.2}{Inverse Propeties}{chapter.7}% 55
\BOOKMARK [1][-]{section.7.3}{Some Properties of Quasigroups}{chapter.7}% 56
\BOOKMARK [1][-]{section.7.4}{Loops of Bol Moufang Type}{chapter.7}% 57
\BOOKMARK [1][-]{section.7.5}{Power Alternative Loops}{chapter.7}% 58
\BOOKMARK [1][-]{section.7.6}{Conjugacy Closed Loops and Related Properties}{chapter.7}% 59
\BOOKMARK [1][-]{section.7.7}{Automorphic Loops}{chapter.7}% 60
\BOOKMARK [1][-]{section.7.8}{Additonal Varieties of Loops}{chapter.7}% 61
\BOOKMARK [0][-]{chapter.8}{Specific Methods}{}% 62
\BOOKMARK [1][-]{section.8.1}{Core Methods for Bol Loops}{chapter.8}% 63
\BOOKMARK [1][-]{section.8.2}{Moufang Modifications}{chapter.8}% 64
\BOOKMARK [1][-]{section.8.3}{Triality for Moufang Loops}{chapter.8}% 65
\BOOKMARK [1][-]{section.8.4}{Realizing Groups as Multiplication Groups of Loops}{chapter.8}% 66
\BOOKMARK [0][-]{chapter.9}{Libraries of Loops}{}% 67
\BOOKMARK [1][-]{section.9.1}{A Typical Library}{chapter.9}% 68
\BOOKMARK [1][-]{section.9.2}{Left Bol Loops and Right Bol Loops}{chapter.9}% 69
\BOOKMARK [1][-]{section.9.3}{Moufang Loops}{chapter.9}% 70
\BOOKMARK [1][-]{section.9.4}{Code Loops}{chapter.9}% 71
\BOOKMARK [1][-]{section.9.5}{Steiner Loops}{chapter.9}% 72
\BOOKMARK [1][-]{section.9.6}{Conjugacy Closed Loops}{chapter.9}% 73
\BOOKMARK [1][-]{section.9.7}{Small Loops}{chapter.9}% 74
\BOOKMARK [1][-]{section.9.8}{Paige Loops}{chapter.9}% 75
\BOOKMARK [1][-]{section.9.9}{Nilpotent Loops}{chapter.9}% 76
\BOOKMARK [1][-]{section.9.10}{Automorphic Loops}{chapter.9}% 77
\BOOKMARK [1][-]{section.9.11}{Interesting Loops}{chapter.9}% 78
\BOOKMARK [1][-]{section.9.12}{Libraries of Loops Up To Isotopism}{chapter.9}% 79
\BOOKMARK [0][-]{appendix.A}{Files}{}% 80
\BOOKMARK [0][-]{appendix.B}{Filters}{}% 81
\BOOKMARK [0][-]{appendix*.3}{References}{}% 82
\BOOKMARK [0][-]{section*.4}{Index}{}% 83

246
doc/loops.pnr Normal file
View file

@ -0,0 +1,246 @@
PAGENRS := [
[ 0, 0, 0 ], 1,
[ 0, 0, 1 ], 2,
[ 0, 0, 2 ], 3,
[ 1, 0, 0 ], 6,
[ 1, 1, 0 ], 6,
[ 1, 2, 0 ], 6,
[ 1, 3, 0 ], 6,
[ 1, 4, 0 ], 7,
[ 1, 5, 0 ], 7,
[ 1, 6, 0 ], 7,
[ 1, 7, 0 ], 7,
[ 2, 0, 0 ], 8,
[ 2, 1, 0 ], 8,
[ 2, 2, 0 ], 8,
[ 2, 3, 0 ], 9,
[ 2, 4, 0 ], 9,
[ 2, 5, 0 ], 9,
[ 2, 6, 0 ], 9,
[ 3, 0, 0 ], 11,
[ 3, 1, 0 ], 11,
[ 3, 2, 0 ], 12,
[ 3, 3, 0 ], 12,
[ 3, 4, 0 ], 13,
[ 3, 4, 1 ], 13,
[ 4, 0, 0 ], 14,
[ 4, 1, 0 ], 14,
[ 4, 2, 0 ], 14,
[ 4, 2, 1 ], 14,
[ 4, 2, 2 ], 14,
[ 4, 3, 0 ], 15,
[ 4, 3, 1 ], 15,
[ 4, 3, 2 ], 15,
[ 4, 3, 3 ], 15,
[ 4, 4, 0 ], 15,
[ 4, 4, 1 ], 15,
[ 4, 5, 0 ], 16,
[ 4, 5, 1 ], 17,
[ 4, 6, 0 ], 17,
[ 4, 6, 1 ], 17,
[ 4, 6, 2 ], 17,
[ 4, 6, 3 ], 17,
[ 4, 7, 0 ], 18,
[ 4, 7, 1 ], 18,
[ 4, 8, 0 ], 18,
[ 4, 8, 1 ], 18,
[ 4, 8, 2 ], 18,
[ 4, 9, 0 ], 19,
[ 4, 9, 1 ], 19,
[ 4, 9, 2 ], 19,
[ 4, 10, 0 ], 20,
[ 4, 10, 1 ], 20,
[ 4, 10, 2 ], 20,
[ 4, 10, 3 ], 20,
[ 4, 10, 4 ], 20,
[ 4, 11, 0 ], 21,
[ 4, 11, 1 ], 21,
[ 4, 12, 0 ], 21,
[ 4, 12, 1 ], 21,
[ 5, 0, 0 ], 22,
[ 5, 1, 0 ], 22,
[ 5, 1, 1 ], 22,
[ 5, 1, 2 ], 22,
[ 5, 1, 3 ], 22,
[ 5, 1, 4 ], 22,
[ 5, 1, 5 ], 23,
[ 5, 2, 0 ], 23,
[ 5, 2, 1 ], 23,
[ 5, 2, 2 ], 23,
[ 5, 3, 0 ], 23,
[ 5, 3, 1 ], 24,
[ 5, 4, 0 ], 24,
[ 5, 4, 1 ], 24,
[ 5, 4, 2 ], 24,
[ 5, 5, 0 ], 24,
[ 5, 5, 1 ], 24,
[ 5, 5, 2 ], 25,
[ 5, 5, 3 ], 25,
[ 6, 0, 0 ], 26,
[ 6, 1, 0 ], 26,
[ 6, 1, 1 ], 26,
[ 6, 1, 2 ], 26,
[ 6, 1, 3 ], 27,
[ 6, 2, 0 ], 27,
[ 6, 2, 1 ], 27,
[ 6, 2, 2 ], 27,
[ 6, 2, 3 ], 27,
[ 6, 2, 4 ], 27,
[ 6, 2, 5 ], 28,
[ 6, 2, 6 ], 28,
[ 6, 2, 7 ], 28,
[ 6, 3, 0 ], 28,
[ 6, 3, 1 ], 28,
[ 6, 3, 2 ], 28,
[ 6, 4, 0 ], 29,
[ 6, 4, 1 ], 29,
[ 6, 4, 2 ], 29,
[ 6, 5, 0 ], 29,
[ 6, 5, 1 ], 30,
[ 6, 5, 2 ], 30,
[ 6, 5, 3 ], 30,
[ 6, 6, 0 ], 30,
[ 6, 6, 1 ], 30,
[ 6, 6, 2 ], 31,
[ 6, 6, 3 ], 31,
[ 6, 6, 4 ], 31,
[ 6, 6, 5 ], 31,
[ 6, 7, 0 ], 31,
[ 6, 7, 1 ], 31,
[ 6, 7, 2 ], 31,
[ 6, 7, 3 ], 32,
[ 6, 8, 0 ], 32,
[ 6, 8, 1 ], 32,
[ 6, 8, 2 ], 32,
[ 6, 9, 0 ], 32,
[ 6, 9, 1 ], 32,
[ 6, 9, 2 ], 32,
[ 6, 9, 3 ], 32,
[ 6, 9, 4 ], 33,
[ 6, 9, 5 ], 33,
[ 6, 10, 0 ], 33,
[ 6, 10, 1 ], 33,
[ 6, 10, 2 ], 33,
[ 6, 10, 3 ], 33,
[ 6, 10, 4 ], 33,
[ 6, 10, 5 ], 33,
[ 6, 11, 0 ], 33,
[ 6, 11, 1 ], 33,
[ 6, 11, 2 ], 34,
[ 6, 11, 3 ], 34,
[ 6, 11, 4 ], 34,
[ 6, 11, 5 ], 34,
[ 6, 11, 6 ], 34,
[ 6, 11, 7 ], 34,
[ 6, 11, 8 ], 35,
[ 6, 11, 9 ], 35,
[ 6, 12, 0 ], 35,
[ 6, 12, 1 ], 35,
[ 6, 12, 2 ], 35,
[ 7, 0, 0 ], 36,
[ 7, 1, 0 ], 36,
[ 7, 1, 1 ], 36,
[ 7, 1, 2 ], 36,
[ 7, 1, 3 ], 36,
[ 7, 1, 4 ], 36,
[ 7, 2, 0 ], 37,
[ 7, 2, 1 ], 37,
[ 7, 2, 2 ], 37,
[ 7, 2, 3 ], 37,
[ 7, 2, 4 ], 37,
[ 7, 2, 5 ], 37,
[ 7, 3, 0 ], 38,
[ 7, 3, 1 ], 38,
[ 7, 3, 2 ], 38,
[ 7, 3, 3 ], 38,
[ 7, 3, 4 ], 38,
[ 7, 3, 5 ], 38,
[ 7, 3, 6 ], 38,
[ 7, 3, 7 ], 39,
[ 7, 4, 0 ], 39,
[ 7, 4, 1 ], 40,
[ 7, 4, 2 ], 40,
[ 7, 4, 3 ], 40,
[ 7, 4, 4 ], 40,
[ 7, 4, 5 ], 40,
[ 7, 4, 6 ], 40,
[ 7, 4, 7 ], 40,
[ 7, 4, 8 ], 40,
[ 7, 4, 9 ], 40,
[ 7, 4, 10 ], 40,
[ 7, 4, 11 ], 41,
[ 7, 4, 12 ], 41,
[ 7, 4, 13 ], 41,
[ 7, 4, 14 ], 41,
[ 7, 4, 15 ], 41,
[ 7, 5, 0 ], 42,
[ 7, 5, 1 ], 42,
[ 7, 6, 0 ], 42,
[ 7, 6, 1 ], 42,
[ 7, 6, 2 ], 42,
[ 7, 6, 3 ], 42,
[ 7, 6, 4 ], 42,
[ 7, 7, 0 ], 43,
[ 7, 7, 1 ], 43,
[ 7, 7, 2 ], 43,
[ 7, 7, 3 ], 44,
[ 7, 7, 4 ], 44,
[ 7, 8, 0 ], 44,
[ 7, 8, 1 ], 44,
[ 7, 8, 2 ], 44,
[ 7, 8, 3 ], 44,
[ 7, 8, 4 ], 44,
[ 8, 0, 0 ], 45,
[ 8, 1, 0 ], 45,
[ 8, 1, 1 ], 45,
[ 8, 1, 2 ], 45,
[ 8, 1, 3 ], 45,
[ 8, 2, 0 ], 46,
[ 8, 2, 1 ], 46,
[ 8, 2, 2 ], 46,
[ 8, 2, 3 ], 46,
[ 8, 3, 0 ], 46,
[ 8, 3, 1 ], 47,
[ 8, 3, 2 ], 47,
[ 8, 4, 0 ], 47,
[ 8, 4, 1 ], 47,
[ 8, 4, 2 ], 47,
[ 8, 4, 3 ], 47,
[ 8, 4, 4 ], 48,
[ 8, 4, 5 ], 48,
[ 8, 4, 6 ], 48,
[ 9, 0, 0 ], 49,
[ 9, 1, 0 ], 49,
[ 9, 1, 1 ], 49,
[ 9, 1, 2 ], 49,
[ 9, 1, 3 ], 50,
[ 9, 2, 0 ], 50,
[ 9, 2, 1 ], 50,
[ 9, 2, 2 ], 50,
[ 9, 3, 0 ], 50,
[ 9, 3, 1 ], 50,
[ 9, 4, 0 ], 51,
[ 9, 4, 1 ], 51,
[ 9, 5, 0 ], 51,
[ 9, 5, 1 ], 51,
[ 9, 6, 0 ], 51,
[ 9, 6, 1 ], 52,
[ 9, 6, 2 ], 52,
[ 9, 6, 3 ], 52,
[ 9, 7, 0 ], 52,
[ 9, 7, 1 ], 53,
[ 9, 8, 0 ], 53,
[ 9, 8, 1 ], 53,
[ 9, 9, 0 ], 53,
[ 9, 9, 1 ], 53,
[ 9, 10, 0 ], 53,
[ 9, 10, 1 ], 53,
[ 9, 11, 0 ], 54,
[ 9, 11, 1 ], 54,
[ 9, 12, 0 ], 54,
[ 9, 12, 1 ], 54,
[ "A", 0, 0 ], 55,
[ "B", 0, 0 ], 57,
[ "Bib", 0, 0 ], 60,
[ "Ind", 0, 0 ], 62,
["End"], 67];

3930
doc/loops.tex Normal file

File diff suppressed because it is too large Load diff

241
doc/loops.toc Normal file
View file

@ -0,0 +1,241 @@
\contentsline {chapter}{\numberline {1}\leavevmode {\color {Chapter }Introduction}}{6}{chapter.1}
\contentsline {section}{\numberline {1.1}\leavevmode {\color {Chapter }License}}{6}{section.1.1}
\contentsline {section}{\numberline {1.2}\leavevmode {\color {Chapter }Installation}}{6}{section.1.2}
\contentsline {section}{\numberline {1.3}\leavevmode {\color {Chapter }Documentation}}{6}{section.1.3}
\contentsline {section}{\numberline {1.4}\leavevmode {\color {Chapter }Test Files}}{7}{section.1.4}
\contentsline {section}{\numberline {1.5}\leavevmode {\color {Chapter }Memory Management}}{7}{section.1.5}
\contentsline {section}{\numberline {1.6}\leavevmode {\color {Chapter }Feedback}}{7}{section.1.6}
\contentsline {section}{\numberline {1.7}\leavevmode {\color {Chapter }Acknowledgment}}{7}{section.1.7}
\contentsline {chapter}{\numberline {2}\leavevmode {\color {Chapter }Mathematical Background}}{8}{chapter.2}
\contentsline {section}{\numberline {2.1}\leavevmode {\color {Chapter }Quasigroups and Loops}}{8}{section.2.1}
\contentsline {section}{\numberline {2.2}\leavevmode {\color {Chapter }Translations}}{8}{section.2.2}
\contentsline {section}{\numberline {2.3}\leavevmode {\color {Chapter }Subquasigroups and Subloops}}{9}{section.2.3}
\contentsline {section}{\numberline {2.4}\leavevmode {\color {Chapter }Nilpotence and Solvability}}{9}{section.2.4}
\contentsline {section}{\numberline {2.5}\leavevmode {\color {Chapter }Associators and Commutators}}{9}{section.2.5}
\contentsline {section}{\numberline {2.6}\leavevmode {\color {Chapter }Homomorphism and Homotopisms}}{9}{section.2.6}
\contentsline {chapter}{\numberline {3}\leavevmode {\color {Chapter }How the Package Works}}{11}{chapter.3}
\contentsline {section}{\numberline {3.1}\leavevmode {\color {Chapter }Representing Quasigroups}}{11}{section.3.1}
\contentsline {section}{\numberline {3.2}\leavevmode {\color {Chapter }Conversions between magmas, quasigroups, loops and groups}}{12}{section.3.2}
\contentsline {section}{\numberline {3.3}\leavevmode {\color {Chapter }Calculating with Quasigroups}}{12}{section.3.3}
\contentsline {section}{\numberline {3.4}\leavevmode {\color {Chapter }Naming, Viewing and Printing Quasigroups and their Elements}}{13}{section.3.4}
\contentsline {subsection}{\numberline {3.4.1}\leavevmode {\color {Chapter }SetQuasigroupElmName and SetLoopElmName}}{13}{subsection.3.4.1}
\contentsline {chapter}{\numberline {4}\leavevmode {\color {Chapter }Creating Quasigroups and Loops}}{14}{chapter.4}
\contentsline {section}{\numberline {4.1}\leavevmode {\color {Chapter }About Cayley Tables}}{14}{section.4.1}
\contentsline {section}{\numberline {4.2}\leavevmode {\color {Chapter }Testing Cayley Tables}}{14}{section.4.2}
\contentsline {subsection}{\numberline {4.2.1}\leavevmode {\color {Chapter }IsQuasigroupTable and IsQuasigroupCayleyTable}}{14}{subsection.4.2.1}
\contentsline {subsection}{\numberline {4.2.2}\leavevmode {\color {Chapter }IsLoopTable and IsLoopCayleyTable}}{14}{subsection.4.2.2}
\contentsline {section}{\numberline {4.3}\leavevmode {\color {Chapter }Canonical and Normalized Cayley Tables}}{15}{section.4.3}
\contentsline {subsection}{\numberline {4.3.1}\leavevmode {\color {Chapter }CanonicalCayleyTable}}{15}{subsection.4.3.1}
\contentsline {subsection}{\numberline {4.3.2}\leavevmode {\color {Chapter }CanonicalCopy}}{15}{subsection.4.3.2}
\contentsline {subsection}{\numberline {4.3.3}\leavevmode {\color {Chapter }NormalizedQuasigroupTable}}{15}{subsection.4.3.3}
\contentsline {section}{\numberline {4.4}\leavevmode {\color {Chapter }Creating Quasigroups and Loops From Cayley Tables}}{15}{section.4.4}
\contentsline {subsection}{\numberline {4.4.1}\leavevmode {\color {Chapter }QuasigroupByCayleyTable and LoopByCayleyTable}}{15}{subsection.4.4.1}
\contentsline {section}{\numberline {4.5}\leavevmode {\color {Chapter }Creating Quasigroups and Loops from a File}}{16}{section.4.5}
\contentsline {subsection}{\numberline {4.5.1}\leavevmode {\color {Chapter }QuasigroupFromFile and LoopFromFile}}{17}{subsection.4.5.1}
\contentsline {section}{\numberline {4.6}\leavevmode {\color {Chapter }Creating Quasigroups and Loops From Sections}}{17}{section.4.6}
\contentsline {subsection}{\numberline {4.6.1}\leavevmode {\color {Chapter }CayleyTableByPerms}}{17}{subsection.4.6.1}
\contentsline {subsection}{\numberline {4.6.2}\leavevmode {\color {Chapter }QuasigroupByLeftSection and LoopByLeftSection}}{17}{subsection.4.6.2}
\contentsline {subsection}{\numberline {4.6.3}\leavevmode {\color {Chapter }QuasigroupByRightSection and LoopByRightSection}}{17}{subsection.4.6.3}
\contentsline {section}{\numberline {4.7}\leavevmode {\color {Chapter }Creating Quasigroups and Loops From Folders}}{18}{section.4.7}
\contentsline {subsection}{\numberline {4.7.1}\leavevmode {\color {Chapter }QuasigroupByRightFolder and LoopByRightFolder}}{18}{subsection.4.7.1}
\contentsline {section}{\numberline {4.8}\leavevmode {\color {Chapter }Creating Quasigroups and Loops By Nuclear Extensions}}{18}{section.4.8}
\contentsline {subsection}{\numberline {4.8.1}\leavevmode {\color {Chapter }NuclearExtension}}{18}{subsection.4.8.1}
\contentsline {subsection}{\numberline {4.8.2}\leavevmode {\color {Chapter }LoopByExtension}}{18}{subsection.4.8.2}
\contentsline {section}{\numberline {4.9}\leavevmode {\color {Chapter }Random Quasigroups and Loops}}{19}{section.4.9}
\contentsline {subsection}{\numberline {4.9.1}\leavevmode {\color {Chapter }RandomQuasigroup and RandomLoop}}{19}{subsection.4.9.1}
\contentsline {subsection}{\numberline {4.9.2}\leavevmode {\color {Chapter }RandomNilpotentLoop}}{19}{subsection.4.9.2}
\contentsline {section}{\numberline {4.10}\leavevmode {\color {Chapter }Conversions}}{20}{section.4.10}
\contentsline {subsection}{\numberline {4.10.1}\leavevmode {\color {Chapter }IntoQuasigroup}}{20}{subsection.4.10.1}
\contentsline {subsection}{\numberline {4.10.2}\leavevmode {\color {Chapter }PrincipalLoopIsotope}}{20}{subsection.4.10.2}
\contentsline {subsection}{\numberline {4.10.3}\leavevmode {\color {Chapter }IntoLoop}}{20}{subsection.4.10.3}
\contentsline {subsection}{\numberline {4.10.4}\leavevmode {\color {Chapter }IntoGroup}}{20}{subsection.4.10.4}
\contentsline {section}{\numberline {4.11}\leavevmode {\color {Chapter }Products of Quasigroups and Loops}}{21}{section.4.11}
\contentsline {subsection}{\numberline {4.11.1}\leavevmode {\color {Chapter }DirectProduct}}{21}{subsection.4.11.1}
\contentsline {section}{\numberline {4.12}\leavevmode {\color {Chapter }Opposite Quasigroups and Loops}}{21}{section.4.12}
\contentsline {subsection}{\numberline {4.12.1}\leavevmode {\color {Chapter }Opposite, OppositeQuasigroup and OppositeLoop}}{21}{subsection.4.12.1}
\contentsline {chapter}{\numberline {5}\leavevmode {\color {Chapter }Basic Methods And Attributes}}{22}{chapter.5}
\contentsline {section}{\numberline {5.1}\leavevmode {\color {Chapter }Basic Attributes}}{22}{section.5.1}
\contentsline {subsection}{\numberline {5.1.1}\leavevmode {\color {Chapter }Elements}}{22}{subsection.5.1.1}
\contentsline {subsection}{\numberline {5.1.2}\leavevmode {\color {Chapter }CayleyTable}}{22}{subsection.5.1.2}
\contentsline {subsection}{\numberline {5.1.3}\leavevmode {\color {Chapter }One}}{22}{subsection.5.1.3}
\contentsline {subsection}{\numberline {5.1.4}\leavevmode {\color {Chapter }Size}}{22}{subsection.5.1.4}
\contentsline {subsection}{\numberline {5.1.5}\leavevmode {\color {Chapter }Exponent}}{23}{subsection.5.1.5}
\contentsline {section}{\numberline {5.2}\leavevmode {\color {Chapter }Basic Arithmetic Operations}}{23}{section.5.2}
\contentsline {subsection}{\numberline {5.2.1}\leavevmode {\color {Chapter }LeftDivision and RightDivision}}{23}{subsection.5.2.1}
\contentsline {subsection}{\numberline {5.2.2}\leavevmode {\color {Chapter }LeftDivisionCayleyTable and RightDivisionCayleyTable}}{23}{subsection.5.2.2}
\contentsline {section}{\numberline {5.3}\leavevmode {\color {Chapter }Powers and Inverses}}{23}{section.5.3}
\contentsline {subsection}{\numberline {5.3.1}\leavevmode {\color {Chapter }LeftInverse, RightInverse and Inverse}}{24}{subsection.5.3.1}
\contentsline {section}{\numberline {5.4}\leavevmode {\color {Chapter }Associators and Commutators}}{24}{section.5.4}
\contentsline {subsection}{\numberline {5.4.1}\leavevmode {\color {Chapter }Associator}}{24}{subsection.5.4.1}
\contentsline {subsection}{\numberline {5.4.2}\leavevmode {\color {Chapter }Commutator}}{24}{subsection.5.4.2}
\contentsline {section}{\numberline {5.5}\leavevmode {\color {Chapter }Generators}}{24}{section.5.5}
\contentsline {subsection}{\numberline {5.5.1}\leavevmode {\color {Chapter }GeneratorsOfQuasigroup and GeneratorsOfLoop}}{24}{subsection.5.5.1}
\contentsline {subsection}{\numberline {5.5.2}\leavevmode {\color {Chapter }GeneratorsSmallest}}{25}{subsection.5.5.2}
\contentsline {subsection}{\numberline {5.5.3}\leavevmode {\color {Chapter }SmallGeneratingSet}}{25}{subsection.5.5.3}
\contentsline {chapter}{\numberline {6}\leavevmode {\color {Chapter }Methods Based on Permutation Groups}}{26}{chapter.6}
\contentsline {section}{\numberline {6.1}\leavevmode {\color {Chapter }Parent of a Quasigroup}}{26}{section.6.1}
\contentsline {subsection}{\numberline {6.1.1}\leavevmode {\color {Chapter }Parent}}{26}{subsection.6.1.1}
\contentsline {subsection}{\numberline {6.1.2}\leavevmode {\color {Chapter }Position}}{26}{subsection.6.1.2}
\contentsline {subsection}{\numberline {6.1.3}\leavevmode {\color {Chapter }PosInParent}}{27}{subsection.6.1.3}
\contentsline {section}{\numberline {6.2}\leavevmode {\color {Chapter }Subquasigroups and Subloops}}{27}{section.6.2}
\contentsline {subsection}{\numberline {6.2.1}\leavevmode {\color {Chapter }Subquasigroup}}{27}{subsection.6.2.1}
\contentsline {subsection}{\numberline {6.2.2}\leavevmode {\color {Chapter }Subloop}}{27}{subsection.6.2.2}
\contentsline {subsection}{\numberline {6.2.3}\leavevmode {\color {Chapter }IsSubquasigroup and IsSubloop}}{27}{subsection.6.2.3}
\contentsline {subsection}{\numberline {6.2.4}\leavevmode {\color {Chapter }AllSubquasigroups}}{27}{subsection.6.2.4}
\contentsline {subsection}{\numberline {6.2.5}\leavevmode {\color {Chapter }AllSubloops}}{28}{subsection.6.2.5}
\contentsline {subsection}{\numberline {6.2.6}\leavevmode {\color {Chapter }RightCosets}}{28}{subsection.6.2.6}
\contentsline {subsection}{\numberline {6.2.7}\leavevmode {\color {Chapter }RightTransversal}}{28}{subsection.6.2.7}
\contentsline {section}{\numberline {6.3}\leavevmode {\color {Chapter }Translations and Sections}}{28}{section.6.3}
\contentsline {subsection}{\numberline {6.3.1}\leavevmode {\color {Chapter }LeftTranslation and RightTranslation}}{28}{subsection.6.3.1}
\contentsline {subsection}{\numberline {6.3.2}\leavevmode {\color {Chapter }LeftSection and RightSection}}{28}{subsection.6.3.2}
\contentsline {section}{\numberline {6.4}\leavevmode {\color {Chapter }Multiplication Groups}}{29}{section.6.4}
\contentsline {subsection}{\numberline {6.4.1}\leavevmode {\color {Chapter }LeftMutliplicationGroup, RightMultiplicationGroup and MultiplicationGroup}}{29}{subsection.6.4.1}
\contentsline {subsection}{\numberline {6.4.2}\leavevmode {\color {Chapter }RelativeLeftMultiplicationGroup, RelativeRightMultiplicationGroup and RelativeMultiplicationGroup}}{29}{subsection.6.4.2}
\contentsline {section}{\numberline {6.5}\leavevmode {\color {Chapter }Inner Mapping Groups}}{29}{section.6.5}
\contentsline {subsection}{\numberline {6.5.1}\leavevmode {\color {Chapter }LeftInnerMapping, RightInnerMapping, MiddleInnerMapping}}{30}{subsection.6.5.1}
\contentsline {subsection}{\numberline {6.5.2}\leavevmode {\color {Chapter }LeftInnerMappingGroup, RightInnerMappingGroup, MiddleInnerMappingGroup}}{30}{subsection.6.5.2}
\contentsline {subsection}{\numberline {6.5.3}\leavevmode {\color {Chapter }InnerMappingGroup}}{30}{subsection.6.5.3}
\contentsline {section}{\numberline {6.6}\leavevmode {\color {Chapter }Nuclei, Commutant, Center, and Associator Subloop}}{30}{section.6.6}
\contentsline {subsection}{\numberline {6.6.1}\leavevmode {\color {Chapter }LeftNucles, MiddleNucleus, and RightNucleus}}{30}{subsection.6.6.1}
\contentsline {subsection}{\numberline {6.6.2}\leavevmode {\color {Chapter }Nuc, NucleusOfQuasigroup and NucleusOfLoop}}{31}{subsection.6.6.2}
\contentsline {subsection}{\numberline {6.6.3}\leavevmode {\color {Chapter }Commutant}}{31}{subsection.6.6.3}
\contentsline {subsection}{\numberline {6.6.4}\leavevmode {\color {Chapter }Center}}{31}{subsection.6.6.4}
\contentsline {subsection}{\numberline {6.6.5}\leavevmode {\color {Chapter }AssociatorSubloop}}{31}{subsection.6.6.5}
\contentsline {section}{\numberline {6.7}\leavevmode {\color {Chapter }Normal Subloops and Simple Loops}}{31}{section.6.7}
\contentsline {subsection}{\numberline {6.7.1}\leavevmode {\color {Chapter }IsNormal}}{31}{subsection.6.7.1}
\contentsline {subsection}{\numberline {6.7.2}\leavevmode {\color {Chapter }NormalClosure}}{31}{subsection.6.7.2}
\contentsline {subsection}{\numberline {6.7.3}\leavevmode {\color {Chapter }IsSimple}}{32}{subsection.6.7.3}
\contentsline {section}{\numberline {6.8}\leavevmode {\color {Chapter }Factor Loops}}{32}{section.6.8}
\contentsline {subsection}{\numberline {6.8.1}\leavevmode {\color {Chapter }FactorLoop}}{32}{subsection.6.8.1}
\contentsline {subsection}{\numberline {6.8.2}\leavevmode {\color {Chapter }NaturalHomomorphismByNormalSubloop}}{32}{subsection.6.8.2}
\contentsline {section}{\numberline {6.9}\leavevmode {\color {Chapter }Nilpotency and Central Series}}{32}{section.6.9}
\contentsline {subsection}{\numberline {6.9.1}\leavevmode {\color {Chapter }IsNilpotent}}{32}{subsection.6.9.1}
\contentsline {subsection}{\numberline {6.9.2}\leavevmode {\color {Chapter }NilpotencyClassOfLoop}}{32}{subsection.6.9.2}
\contentsline {subsection}{\numberline {6.9.3}\leavevmode {\color {Chapter }IsStronglyNilpotent}}{32}{subsection.6.9.3}
\contentsline {subsection}{\numberline {6.9.4}\leavevmode {\color {Chapter }UpperCentralSeries}}{33}{subsection.6.9.4}
\contentsline {subsection}{\numberline {6.9.5}\leavevmode {\color {Chapter }LowerCentralSeries}}{33}{subsection.6.9.5}
\contentsline {section}{\numberline {6.10}\leavevmode {\color {Chapter }Solvability, Derived Series and Frattini Subloop}}{33}{section.6.10}
\contentsline {subsection}{\numberline {6.10.1}\leavevmode {\color {Chapter }IsSolvable}}{33}{subsection.6.10.1}
\contentsline {subsection}{\numberline {6.10.2}\leavevmode {\color {Chapter }DerivedSubloop}}{33}{subsection.6.10.2}
\contentsline {subsection}{\numberline {6.10.3}\leavevmode {\color {Chapter }DerivedLength}}{33}{subsection.6.10.3}
\contentsline {subsection}{\numberline {6.10.4}\leavevmode {\color {Chapter }FrattiniSubloop and FrattinifactorSize}}{33}{subsection.6.10.4}
\contentsline {subsection}{\numberline {6.10.5}\leavevmode {\color {Chapter }FrattinifactorSize}}{33}{subsection.6.10.5}
\contentsline {section}{\numberline {6.11}\leavevmode {\color {Chapter }Isomorphisms and Automorphisms}}{33}{section.6.11}
\contentsline {subsection}{\numberline {6.11.1}\leavevmode {\color {Chapter }IsomorphismQuasigroups}}{33}{subsection.6.11.1}
\contentsline {subsection}{\numberline {6.11.2}\leavevmode {\color {Chapter }IsomorphismLoops}}{34}{subsection.6.11.2}
\contentsline {subsection}{\numberline {6.11.3}\leavevmode {\color {Chapter }QuasigroupsUpToIsomorphism}}{34}{subsection.6.11.3}
\contentsline {subsection}{\numberline {6.11.4}\leavevmode {\color {Chapter }LoopsUpToIsomorphism}}{34}{subsection.6.11.4}
\contentsline {subsection}{\numberline {6.11.5}\leavevmode {\color {Chapter }AutomorphismGroup}}{34}{subsection.6.11.5}
\contentsline {subsection}{\numberline {6.11.6}\leavevmode {\color {Chapter }IsomorphicCopyByPerm}}{34}{subsection.6.11.6}
\contentsline {subsection}{\numberline {6.11.7}\leavevmode {\color {Chapter }IsomorphicCopyByNormalSubloop}}{34}{subsection.6.11.7}
\contentsline {subsection}{\numberline {6.11.8}\leavevmode {\color {Chapter }Discriminator}}{35}{subsection.6.11.8}
\contentsline {subsection}{\numberline {6.11.9}\leavevmode {\color {Chapter }AreEqualDiscriminators}}{35}{subsection.6.11.9}
\contentsline {section}{\numberline {6.12}\leavevmode {\color {Chapter }Isotopisms}}{35}{section.6.12}
\contentsline {subsection}{\numberline {6.12.1}\leavevmode {\color {Chapter }IsotopismLoops}}{35}{subsection.6.12.1}
\contentsline {subsection}{\numberline {6.12.2}\leavevmode {\color {Chapter }LoopsUpToIsotopism}}{35}{subsection.6.12.2}
\contentsline {chapter}{\numberline {7}\leavevmode {\color {Chapter }Testing Properties of Quasigroups and Loops}}{36}{chapter.7}
\contentsline {section}{\numberline {7.1}\leavevmode {\color {Chapter }Associativity, Commutativity and Generalizations}}{36}{section.7.1}
\contentsline {subsection}{\numberline {7.1.1}\leavevmode {\color {Chapter }IsAssociative}}{36}{subsection.7.1.1}
\contentsline {subsection}{\numberline {7.1.2}\leavevmode {\color {Chapter }IsCommutative}}{36}{subsection.7.1.2}
\contentsline {subsection}{\numberline {7.1.3}\leavevmode {\color {Chapter }IsPowerAssociative}}{36}{subsection.7.1.3}
\contentsline {subsection}{\numberline {7.1.4}\leavevmode {\color {Chapter }IsDiassociative}}{36}{subsection.7.1.4}
\contentsline {section}{\numberline {7.2}\leavevmode {\color {Chapter }Inverse Propeties}}{37}{section.7.2}
\contentsline {subsection}{\numberline {7.2.1}\leavevmode {\color {Chapter }HasLeftInverseProperty, HasRightInverseProperty and HasInverseProperty}}{37}{subsection.7.2.1}
\contentsline {subsection}{\numberline {7.2.2}\leavevmode {\color {Chapter }HasTwosidedInverses}}{37}{subsection.7.2.2}
\contentsline {subsection}{\numberline {7.2.3}\leavevmode {\color {Chapter }HasWeakInverseProperty}}{37}{subsection.7.2.3}
\contentsline {subsection}{\numberline {7.2.4}\leavevmode {\color {Chapter }HasAutomorphicInverseProperty}}{37}{subsection.7.2.4}
\contentsline {subsection}{\numberline {7.2.5}\leavevmode {\color {Chapter }HasAntiautomorphicInverseProperty}}{37}{subsection.7.2.5}
\contentsline {section}{\numberline {7.3}\leavevmode {\color {Chapter }Some Properties of Quasigroups}}{38}{section.7.3}
\contentsline {subsection}{\numberline {7.3.1}\leavevmode {\color {Chapter }IsSemisymmetric}}{38}{subsection.7.3.1}
\contentsline {subsection}{\numberline {7.3.2}\leavevmode {\color {Chapter }IsTotallySymmetric}}{38}{subsection.7.3.2}
\contentsline {subsection}{\numberline {7.3.3}\leavevmode {\color {Chapter }IsIdempotent}}{38}{subsection.7.3.3}
\contentsline {subsection}{\numberline {7.3.4}\leavevmode {\color {Chapter }IsSteinerQuasigroup}}{38}{subsection.7.3.4}
\contentsline {subsection}{\numberline {7.3.5}\leavevmode {\color {Chapter }IsUnipotent}}{38}{subsection.7.3.5}
\contentsline {subsection}{\numberline {7.3.6}\leavevmode {\color {Chapter }IsLeftDistributive, IsRightDistributive, IsDistributive}}{38}{subsection.7.3.6}
\contentsline {subsection}{\numberline {7.3.7}\leavevmode {\color {Chapter }IsEntropic and IsMedial}}{39}{subsection.7.3.7}
\contentsline {section}{\numberline {7.4}\leavevmode {\color {Chapter }Loops of Bol Moufang Type}}{39}{section.7.4}
\contentsline {subsection}{\numberline {7.4.1}\leavevmode {\color {Chapter }IsExtraLoop}}{40}{subsection.7.4.1}
\contentsline {subsection}{\numberline {7.4.2}\leavevmode {\color {Chapter }IsMoufangLoop}}{40}{subsection.7.4.2}
\contentsline {subsection}{\numberline {7.4.3}\leavevmode {\color {Chapter }IsCLoop}}{40}{subsection.7.4.3}
\contentsline {subsection}{\numberline {7.4.4}\leavevmode {\color {Chapter }IsLeftBolLoop}}{40}{subsection.7.4.4}
\contentsline {subsection}{\numberline {7.4.5}\leavevmode {\color {Chapter }IsRightBolLoop}}{40}{subsection.7.4.5}
\contentsline {subsection}{\numberline {7.4.6}\leavevmode {\color {Chapter }IsLCLoop}}{40}{subsection.7.4.6}
\contentsline {subsection}{\numberline {7.4.7}\leavevmode {\color {Chapter }IsRCLoop}}{40}{subsection.7.4.7}
\contentsline {subsection}{\numberline {7.4.8}\leavevmode {\color {Chapter }IsLeftNuclearSquareLoop}}{40}{subsection.7.4.8}
\contentsline {subsection}{\numberline {7.4.9}\leavevmode {\color {Chapter }IsMiddleNuclearSquareLoop}}{40}{subsection.7.4.9}
\contentsline {subsection}{\numberline {7.4.10}\leavevmode {\color {Chapter }IsRightNuclearSquareLoop}}{40}{subsection.7.4.10}
\contentsline {subsection}{\numberline {7.4.11}\leavevmode {\color {Chapter }IsNuclearSquareLoop}}{41}{subsection.7.4.11}
\contentsline {subsection}{\numberline {7.4.12}\leavevmode {\color {Chapter }IsFlexible}}{41}{subsection.7.4.12}
\contentsline {subsection}{\numberline {7.4.13}\leavevmode {\color {Chapter }IsLeftAlternative}}{41}{subsection.7.4.13}
\contentsline {subsection}{\numberline {7.4.14}\leavevmode {\color {Chapter }IsRightAlternative}}{41}{subsection.7.4.14}
\contentsline {subsection}{\numberline {7.4.15}\leavevmode {\color {Chapter }IsAlternative}}{41}{subsection.7.4.15}
\contentsline {section}{\numberline {7.5}\leavevmode {\color {Chapter }Power Alternative Loops}}{42}{section.7.5}
\contentsline {subsection}{\numberline {7.5.1}\leavevmode {\color {Chapter }IsLeftPowerAlternative, IsRightPowerAlternative and IsPowerAlternative}}{42}{subsection.7.5.1}
\contentsline {section}{\numberline {7.6}\leavevmode {\color {Chapter }Conjugacy Closed Loops and Related Properties}}{42}{section.7.6}
\contentsline {subsection}{\numberline {7.6.1}\leavevmode {\color {Chapter }IsLCCLoop}}{42}{subsection.7.6.1}
\contentsline {subsection}{\numberline {7.6.2}\leavevmode {\color {Chapter }IsRCCLoop}}{42}{subsection.7.6.2}
\contentsline {subsection}{\numberline {7.6.3}\leavevmode {\color {Chapter }IsCCLoop}}{42}{subsection.7.6.3}
\contentsline {subsection}{\numberline {7.6.4}\leavevmode {\color {Chapter }IsOsbornLoop}}{42}{subsection.7.6.4}
\contentsline {section}{\numberline {7.7}\leavevmode {\color {Chapter }Automorphic Loops}}{43}{section.7.7}
\contentsline {subsection}{\numberline {7.7.1}\leavevmode {\color {Chapter }IsLeftAutomorphicLoop}}{43}{subsection.7.7.1}
\contentsline {subsection}{\numberline {7.7.2}\leavevmode {\color {Chapter }IsMiddleAutomorphicLoop}}{43}{subsection.7.7.2}
\contentsline {subsection}{\numberline {7.7.3}\leavevmode {\color {Chapter }IsRightAutomorphicLoop}}{44}{subsection.7.7.3}
\contentsline {subsection}{\numberline {7.7.4}\leavevmode {\color {Chapter }IsAutomorphicLoop}}{44}{subsection.7.7.4}
\contentsline {section}{\numberline {7.8}\leavevmode {\color {Chapter }Additonal Varieties of Loops}}{44}{section.7.8}
\contentsline {subsection}{\numberline {7.8.1}\leavevmode {\color {Chapter }IsCodeLoop}}{44}{subsection.7.8.1}
\contentsline {subsection}{\numberline {7.8.2}\leavevmode {\color {Chapter }IsSteinerLoop}}{44}{subsection.7.8.2}
\contentsline {subsection}{\numberline {7.8.3}\leavevmode {\color {Chapter }IsLeftBruckLoop and IsLeftKLoop}}{44}{subsection.7.8.3}
\contentsline {subsection}{\numberline {7.8.4}\leavevmode {\color {Chapter }IsRightBruckLoop and IsRightKLoop}}{44}{subsection.7.8.4}
\contentsline {chapter}{\numberline {8}\leavevmode {\color {Chapter }Specific Methods}}{45}{chapter.8}
\contentsline {section}{\numberline {8.1}\leavevmode {\color {Chapter }Core Methods for Bol Loops}}{45}{section.8.1}
\contentsline {subsection}{\numberline {8.1.1}\leavevmode {\color {Chapter }AssociatedLeftBruckLoop and AssociatedRightBruckLoop}}{45}{subsection.8.1.1}
\contentsline {subsection}{\numberline {8.1.2}\leavevmode {\color {Chapter }IsExactGroupFactorization}}{45}{subsection.8.1.2}
\contentsline {subsection}{\numberline {8.1.3}\leavevmode {\color {Chapter }RightBolLoopByExactGroupFactorization}}{45}{subsection.8.1.3}
\contentsline {section}{\numberline {8.2}\leavevmode {\color {Chapter }Moufang Modifications}}{46}{section.8.2}
\contentsline {subsection}{\numberline {8.2.1}\leavevmode {\color {Chapter }LoopByCyclicModification}}{46}{subsection.8.2.1}
\contentsline {subsection}{\numberline {8.2.2}\leavevmode {\color {Chapter }LoopByDihedralModification}}{46}{subsection.8.2.2}
\contentsline {subsection}{\numberline {8.2.3}\leavevmode {\color {Chapter }LoopMG2}}{46}{subsection.8.2.3}
\contentsline {section}{\numberline {8.3}\leavevmode {\color {Chapter }Triality for Moufang Loops}}{46}{section.8.3}
\contentsline {subsection}{\numberline {8.3.1}\leavevmode {\color {Chapter }TrialityPermGroup}}{47}{subsection.8.3.1}
\contentsline {subsection}{\numberline {8.3.2}\leavevmode {\color {Chapter }TrialityPcGroup}}{47}{subsection.8.3.2}
\contentsline {section}{\numberline {8.4}\leavevmode {\color {Chapter }Realizing Groups as Multiplication Groups of Loops}}{47}{section.8.4}
\contentsline {subsection}{\numberline {8.4.1}\leavevmode {\color {Chapter }AllLoopTablesInGroup}}{47}{subsection.8.4.1}
\contentsline {subsection}{\numberline {8.4.2}\leavevmode {\color {Chapter }AllProperLoopTablesInGroup}}{47}{subsection.8.4.2}
\contentsline {subsection}{\numberline {8.4.3}\leavevmode {\color {Chapter }OneLoopTableInGroup}}{47}{subsection.8.4.3}
\contentsline {subsection}{\numberline {8.4.4}\leavevmode {\color {Chapter }OneProperLoopTableInGroup}}{48}{subsection.8.4.4}
\contentsline {subsection}{\numberline {8.4.5}\leavevmode {\color {Chapter }AllLoopsWithMltGroup}}{48}{subsection.8.4.5}
\contentsline {subsection}{\numberline {8.4.6}\leavevmode {\color {Chapter }OneLoopWithMltGroup}}{48}{subsection.8.4.6}
\contentsline {chapter}{\numberline {9}\leavevmode {\color {Chapter }Libraries of Loops}}{49}{chapter.9}
\contentsline {section}{\numberline {9.1}\leavevmode {\color {Chapter }A Typical Library}}{49}{section.9.1}
\contentsline {subsection}{\numberline {9.1.1}\leavevmode {\color {Chapter }LibraryLoop}}{49}{subsection.9.1.1}
\contentsline {subsection}{\numberline {9.1.2}\leavevmode {\color {Chapter }MyLibraryLoop}}{49}{subsection.9.1.2}
\contentsline {subsection}{\numberline {9.1.3}\leavevmode {\color {Chapter }DisplayLibraryInfo}}{50}{subsection.9.1.3}
\contentsline {section}{\numberline {9.2}\leavevmode {\color {Chapter }Left Bol Loops and Right Bol Loops}}{50}{section.9.2}
\contentsline {subsection}{\numberline {9.2.1}\leavevmode {\color {Chapter }LeftBolLoop}}{50}{subsection.9.2.1}
\contentsline {subsection}{\numberline {9.2.2}\leavevmode {\color {Chapter }RightBolLoop}}{50}{subsection.9.2.2}
\contentsline {section}{\numberline {9.3}\leavevmode {\color {Chapter }Moufang Loops}}{50}{section.9.3}
\contentsline {subsection}{\numberline {9.3.1}\leavevmode {\color {Chapter }MoufangLoop}}{50}{subsection.9.3.1}
\contentsline {section}{\numberline {9.4}\leavevmode {\color {Chapter }Code Loops}}{51}{section.9.4}
\contentsline {subsection}{\numberline {9.4.1}\leavevmode {\color {Chapter }CodeLoop}}{51}{subsection.9.4.1}
\contentsline {section}{\numberline {9.5}\leavevmode {\color {Chapter }Steiner Loops}}{51}{section.9.5}
\contentsline {subsection}{\numberline {9.5.1}\leavevmode {\color {Chapter }SteinerLoop}}{51}{subsection.9.5.1}
\contentsline {section}{\numberline {9.6}\leavevmode {\color {Chapter }Conjugacy Closed Loops}}{51}{section.9.6}
\contentsline {subsection}{\numberline {9.6.1}\leavevmode {\color {Chapter }RCCLoop and RightConjugacyClosedLoop}}{52}{subsection.9.6.1}
\contentsline {subsection}{\numberline {9.6.2}\leavevmode {\color {Chapter }LCCLoop and LeftConjugacyClosedLoop}}{52}{subsection.9.6.2}
\contentsline {subsection}{\numberline {9.6.3}\leavevmode {\color {Chapter }CCLoop and ConjugacyClosedLoop}}{52}{subsection.9.6.3}
\contentsline {section}{\numberline {9.7}\leavevmode {\color {Chapter }Small Loops}}{52}{section.9.7}
\contentsline {subsection}{\numberline {9.7.1}\leavevmode {\color {Chapter }SmallLoop}}{53}{subsection.9.7.1}
\contentsline {section}{\numberline {9.8}\leavevmode {\color {Chapter }Paige Loops}}{53}{section.9.8}
\contentsline {subsection}{\numberline {9.8.1}\leavevmode {\color {Chapter }PaigeLoop}}{53}{subsection.9.8.1}
\contentsline {section}{\numberline {9.9}\leavevmode {\color {Chapter }Nilpotent Loops}}{53}{section.9.9}
\contentsline {subsection}{\numberline {9.9.1}\leavevmode {\color {Chapter }NilpotentLoop}}{53}{subsection.9.9.1}
\contentsline {section}{\numberline {9.10}\leavevmode {\color {Chapter }Automorphic Loops}}{53}{section.9.10}
\contentsline {subsection}{\numberline {9.10.1}\leavevmode {\color {Chapter }AutomorphicLoop}}{53}{subsection.9.10.1}
\contentsline {section}{\numberline {9.11}\leavevmode {\color {Chapter }Interesting Loops}}{54}{section.9.11}
\contentsline {subsection}{\numberline {9.11.1}\leavevmode {\color {Chapter }InterestingLoop}}{54}{subsection.9.11.1}
\contentsline {section}{\numberline {9.12}\leavevmode {\color {Chapter }Libraries of Loops Up To Isotopism}}{54}{section.9.12}
\contentsline {subsection}{\numberline {9.12.1}\leavevmode {\color {Chapter }ItpSmallLoop}}{54}{subsection.9.12.1}
\contentsline {chapter}{\numberline {A}\leavevmode {\color {Chapter }Files}}{55}{appendix.A}
\contentsline {chapter}{\numberline {B}\leavevmode {\color {Chapter }Filters}}{57}{appendix.B}
\contentsline {chapter}{References}{61}{appendix*.3}
\contentsline {chapter}{Index}{62}{section*.4}

2371
doc/loops.xml Normal file

File diff suppressed because it is too large Load diff

559
doc/loops_bib.xml Normal file
View file

@ -0,0 +1,559 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE file SYSTEM "bibxmlext.dtd">
<file>
<entry id="Artic"><phdthesis>
<author>
<name><first>Katharina</first><last>Artic</last></name>
</author>
<title>On conjugacy closed loops and conjugacy closed loop folders</title>
<school>RWTH Aachen University</school>
<year>2015</year>
</phdthesis></entry>
<entry id="Ar"><article>
<author>
<name><first>R.</first><last>Artzy</last></name>
</author>
<title>On automorphic-inverse properties in loops</title>
<journal>Proc. Amer. Math. Soc.</journal>
<year>1959</year>
<volume>10</volume>
<pages>588591</pages>
<issn>0002-9939</issn>
<mrnumber>0107674 (21 #6397)</mrnumber>
<mrclass>20.00</mrclass>
<mrreviewer>H. Minc</mrreviewer>
<other type="fjournal">Proceedings of the American Mathematical
Society</other>
</article></entry>
<entry id="BaGrVo"><article>
<author>
<name><first>Dylene Agda Souza</first><last>De Barros</last></name>
<name><first>Alexander</first><last>Grishkov</last></name>
<name><first>Petr</first><last>Vojtěchovský</last></name>
</author>
<title>Commutative automorphic loops of order <C><M>p^3</M></C></title>
<journal>J. Algebra Appl.</journal>
<year>2012</year>
<volume>11</volume>
<number>5</number>
<pages>1250100, 15</pages>
<issn>0219-4988</issn>
<mrnumber>2983192</mrnumber>
<mrclass>20N05 (20G40)</mrclass>
<mrreviewer>Ágota Figula</mrreviewer>
<url>http://dx.doi.org/10.1142/S0219498812501009</url>
<other type="doi">10.1142/S0219498812501009</other>
<other type="fjournal">Journal of Algebra and its Applications</other>
</article></entry>
<entry id="Br"><book>
<author>
<name><first>Richard Hubert</first><last>Bruck</last></name>
</author>
<title>A survey of binary systems</title>
<publisher>Springer Verlag</publisher>
<year>1958</year>
<series>Ergebnisse der Mathematik und ihrer Grenzgebiete. Neue Folge,
Heft 20. Reihe: Gruppentheorie</series>
<address>Berlin</address>
<mrnumber>0093552 (20 #76)</mrnumber>
<mrclass>20.00</mrclass>
<mrreviewer>L. J. Paige</mrreviewer>
<other type="pages">viii+185</other>
</book></entry>
<entry id="BrPa"><article>
<author>
<name><first>R. H.</first><last>Bruck</last></name>
<name><first>Lowell J.</first><last>Paige</last></name>
</author>
<title>Loops whose inner mappings are automorphisms</title>
<journal>Ann. of Math. (2)</journal>
<year>1956</year>
<volume>63</volume>
<pages>308323</pages>
<issn>0003-486X</issn>
<mrnumber>0076779</mrnumber>
<mrclass>20.0X</mrclass>
<mrreviewer>R. Moufang</mrreviewer>
<other type="fjournal">Annals of Mathematics. Second Series</other>
</article></entry>
<entry id="ChPfSm"><book>
<editor>
<name><first>O.</first><last>Chein</last></name>
<name><first>H. O.</first><last>Pflugfelder</last></name>
<name><first>J. D. H.</first><last>Smith</last></name>
</editor>
<title>Quasigroups and loops: theory and applications</title>
<publisher>Heldermann Verlag</publisher>
<year>1990</year>
<volume>8</volume>
<series>Sigma Series in Pure Mathematics</series>
<address>Berlin</address>
<isbn>3-88538-008-0</isbn>
<mrnumber>1125806 (93g:20133)</mrnumber>
<mrclass>20N05 (20-06)</mrclass>
<mrreviewer>D. A. Robinson</mrreviewer>
<other type="pages">xii+568</other>
</book></entry>
<entry id="CoRo"><book>
<author>
<name><first>Charles J.</first><last>Colbourn</last></name>
<name><first>Alexander</first><last>Rosa</last></name>
</author>
<title>Triple systems</title>
<publisher>The Clarendon Press Oxford University Press</publisher>
<year>1999</year>
<series>Oxford Mathematical Monographs</series>
<address>New York</address>
<isbn>0-19-853576-7</isbn>
<mrnumber>1843379 (2002h:05024)</mrnumber>
<mrclass>05B07 (05-02)</mrclass>
<mrreviewer>Elizabeth J. Billington</mrreviewer>
<other type="pages">xvi+560</other>
</book></entry>
<entry id="CsDr"><article>
<author>
<name><first>Piroska</first><last>Csörgő</last></name>
<name><first>Aleš</first><last>Drápal</last></name>
</author>
<title>Left conjugacy closed loops of nilpotency class two</title>
<journal>Results Math.</journal>
<year>2005</year>
<volume>47</volume>
<number>3-4</number>
<pages>242265</pages>
<issn>1422-6383</issn>
<mrnumber>2153496 (2006b:20095)</mrnumber>
<mrclass>20N05</mrclass>
<mrreviewer>Huberta Lausch</mrreviewer>
<other type="fjournal">Results in Mathematics. Resultate der
Mathematik</other>
</article></entry>
<entry id="DaVo"><article>
<author>
<name><first>Daniel</first><last>Daly</last></name>
<name><first>Petr</first><last>Vojtěchovský</last></name>
</author>
<title>Enumeration of nilpotent loops via cohomology</title>
<journal>J. Algebra</journal>
<year>2009</year>
<volume>322</volume>
<number>11</number>
<pages>40804098</pages>
<issn>0021-8693</issn>
<mrnumber>2556139 (2011e:20098)</mrnumber>
<mrclass>20N05 (20J99)</mrclass>
<mrreviewer>Yu. M. Movsisyan</mrreviewer>
<url>http://dx.doi.org/10.1016/j.jalgebra.2009.03.042</url>
<other type="coden">JALGA4</other>
<other type="doi">10.1016/j.jalgebra.2009.03.042</other>
<other type="fjournal">Journal of Algebra</other>
</article></entry>
<entry id="DrapalCD"><article>
<author>
<name><first>Aleš</first><last>Drápal</last></name>
</author>
<title>Cyclic and dihedral constructions of even order</title>
<journal>Comment. Math. Univ. Carolin.</journal>
<year>2003</year>
<volume>44</volume>
<number>4</number>
<pages>593614</pages>
<issn></issn>
<mrnumber>MR2062876 (2005d:20038)</mrnumber>
<mrclass>20D60 (05B15)</mrclass>
<mrreviewer>Thomas Michael Keller</mrreviewer>
<url></url>
<other type="coden"></other>
<other type="doi"></other>
<other type="fjournal">Commentationes Mathematicae Universitatis
Carolinae</other>
</article></entry>
<entry id="DrVo"><article>
<author>
<name><first>Aleš</first><last>Drápal</last></name>
<name><first>Petr</first><last>Vojtěchovský</last></name>
</author>
<title>Moufang loops that share associator and three quarters of
their multiplication tables</title>
<journal>Rocky Mountain J. Math.</journal>
<year>2006</year>
<volume>36</volume>
<number>2</number>
<pages>425455</pages>
<issn>0035-7596</issn>
<mrnumber>2234814 (2007d:20114)</mrnumber>
<mrclass>20N05 (05B15)</mrclass>
<mrreviewer>Orin Chein</mrreviewer>
<url>http://dx.doi.org/10.1216/rmjm/1181069461</url>
<other type="coden">RMJMAE</other>
<other type="doi">10.1216/rmjm/1181069461</other>
<other type="fjournal">The Rocky Mountain Journal of Mathematics</other>
</article></entry>
<entry id="Fe"><article>
<author>
<name><first>Ferenc</first><last>Fenyves</last></name>
</author>
<title>Extra loops. <C>II</C>. <C>O</C>n loops with identities of
<C>B</C>ol-<C>M</C>oufang type</title>
<journal>Publ. Math. Debrecen</journal>
<year>1969</year>
<volume>16</volume>
<pages>187192</pages>
<issn>0033-3883</issn>
<mrnumber>0262409 (41 #7017)</mrnumber>
<mrclass>20.95</mrclass>
<mrreviewer>D. A. Robinson</mrreviewer>
<other type="fjournal">Publicationes Mathematicae Debrecen</other>
</article></entry>
<entry id="Go"><book>
<author>
<name><first>Edgar G.</first><last>Goodaire</last></name>
<name><first>Sean</first><last>May</last></name>
<name><first>Maitreyi</first><last>Raman</last></name>
</author>
<title>The <C>M</C>oufang loops of order less than 64</title>
<publisher>Nova Science Publishers Inc.</publisher>
<year>1999</year>
<address>Commack, NY</address>
<isbn>1-56072-659-8</isbn>
<mrnumber>1689624 (2000a:20147)</mrnumber>
<mrclass>20N05</mrclass>
<other type="pages">xviii+287</other>
</book></entry>
<entry id="GrKiNa"><article>
<author>
<name><first>Alexander</first><last>Grishkov</last></name>
<name><first>Michael</first><last>Kinyon</last></name>
<name><first>Gábor P.</first><last>Nagy</last></name>
</author>
<title>Solvability of commutative automorphic loops</title>
<journal>Proc. Amer. Math. Soc.</journal>
<year>2014</year>
<volume>142</volume>
<number>9</number>
<pages>30293037</pages>
<issn>0002-9939</issn>
<mrnumber>3223359</mrnumber>
<mrclass>20N05 (17B99)</mrclass>
<mrreviewer>J. D. Phillips</mrreviewer>
<url>http://dx.doi.org/10.1090/S0002-9939-2014-12053-3</url>
<other type="doi">10.1090/S0002-9939-2014-12053-3</other>
<other type="fjournal">Proceedings of the American Mathematical
Society</other>
</article></entry>
<entry id="JaMa"><article>
<author>
<name><first>Mark T.</first><last>Jacobson</last></name>
<name><first>Peter</first><last>Matthews</last></name>
</author>
<title>Generating uniformly distributed random <C>L</C>atin squares</title>
<journal>J. Combin. Des.</journal>
<year>1996</year>
<volume>4</volume>
<number>6</number>
<pages>405437</pages>
<issn>1063-8539</issn>
<mrnumber>1410617 (98b:05021)</mrnumber>
<mrclass>05B15 (60J10)</mrclass>
<mrreviewer>Lars Døvling Andersen</mrreviewer>
<url>http://dx.doi.org/10.1002/(SICI)1520-6610(1996)4:6&lt;405::AID-JCD3>3.0.CO;2-J</url>
<other
type="doi">10.1002/(SICI)1520-6610(1996)4:6&lt;405::AID-JCD3>3.0.CO;2-J</other>
<other type="fjournal">Journal of Combinatorial Designs</other>
</article></entry>
<entry id="JeKiVo"><article>
<author>
<name><first>P{\v{r}}emysl</first><last>Jedlička</last></name>
<name><first>Michael</first><last>Kinyon</last></name>
<name><first>Petr</first><last>Vojtěchovský</last></name>
</author>
<title>Nilpotency in automorphic loops of prime power order</title>
<journal>J. Algebra</journal>
<year>2012</year>
<volume>350</volume>
<pages>6476</pages>
<issn>0021-8693</issn>
<mrnumber>2859875</mrnumber>
<mrclass>20N05</mrclass>
<mrreviewer>Mohammad Shahryari</mrreviewer>
<url>http://dx.doi.org/10.1016/j.jalgebra.2011.09.034</url>
<other type="coden">JALGA4</other>
<other type="doi">10.1016/j.jalgebra.2011.09.034</other>
<other type="fjournal">Journal of Algebra</other>
</article></entry>
<entry id="JoKiNaVo"><article>
<author>
<name><first>Kenneth W.</first><last>Johnson</last></name>
<name><first>Michael K.</first><last>Kinyon</last></name>
<name><first>Gábor P.</first><last>Nagy</last></name>
<name><first>Petr</first><last>Vojtěchovský</last></name>
</author>
<title>Searching for small simple automorphic loops</title>
<journal>LMS J. Comput. Math.</journal>
<year>2011</year>
<volume>14</volume>
<pages>200213</pages>
<issn>1461-1570</issn>
<mrnumber>2831230</mrnumber>
<mrclass>20N05 (20B15 20B40)</mrclass>
<mrreviewer>Tuval S. Foguel</mrreviewer>
<url>http://dx.doi.org/10.1112/S1461157010000173</url>
<other type="doi">10.1112/S1461157010000173</other>
<other type="fjournal">LMS Journal of Computation and Mathematics</other>
</article></entry>
<entry id="KiKuPh"><article>
<author>
<name><first>Michael K.</first><last>Kinyon</last></name>
<name><first>Kenneth</first><last>Kunen</last></name>
<name><first>J. D.</first><last>Phillips</last></name>
</author>
<title>Every diassociative <C><M>A</M></C>-loop is <C>M</C>oufang</title>
<journal>Proc. Amer. Math. Soc.</journal>
<year>2002</year>
<volume>130</volume>
<number>3</number>
<pages>619624</pages>
<issn>0002-9939</issn>
<mrnumber>1866009 (2002k:20124)</mrnumber>
<mrclass>20N05 (68T15)</mrclass>
<mrreviewer>Orin Chein</mrreviewer>
<url>http://dx.doi.org/10.1090/S0002-9939-01-06090-7</url>
<other type="coden">PAMYAR</other>
<other type="doi">10.1090/S0002-9939-01-06090-7</other>
<other type="fjournal">Proceedings of the American Mathematical
Society</other>
</article></entry>
<entry id="KiKuPhVo"><article>
<author>
<name><first>Michael K.</first><last>Kinyon</last></name>
<name><first>Kenneth</first><last>Kunen</last></name>
<name><first>J. D.</first><last>Phillips</last></name>
<name><first>Petr</first><last>Vojtěchovský</last></name>
</author>
<title>The structure of automorphic loops</title>
<journal>Trans. Amer. Math. Soc.</journal>
<year>2016</year>
<volume>368</volume>
<number>12</number>
<pages>89018927</pages>
<issn>0002-9947</issn>
<mrnumber>3551593</mrnumber>
<mrclass>20N05</mrclass>
<url>http://dx.doi.org/10.1090/tran/6622</url>
<other type="coden">TAMTAM</other>
<other type="doi">10.1090/tran/6622</other>
<other type="fjournal">Transactions of the American Mathematical
Society</other>
</article></entry>
<entry id="KiNaVo2015"><article>
<author>
<name><first>Michael K.</first><last>Kinyon</last></name>
<name><first>Gábor P.</first><last>Nagy</last></name>
<name><first>Petr</first><last>Vojtěchovský</last></name>
</author>
<title>Bol loops and Bruck loops of order <M>pq</M></title>
<journal></journal>
<year>2015</year>
<note>preprint</note>
</article></entry>
<entry id="Kun"><article>
<author>
<name><first>Kenneth</first><last>Kunen</last></name>
</author>
<title>The structure of conjugacy closed loops</title>
<journal>Trans. Amer. Math. Soc.</journal>
<year>2000</year>
<volume>352</volume>
<number>6</number>
<pages>28892911</pages>
<issn>0002-9947</issn>
<mrnumber>1615991 (2000j:20132)</mrnumber>
<mrclass>20N05 (03C05)</mrclass>
<mrreviewer>Edgar G. Goodaire</mrreviewer>
<url>http://dx.doi.org/10.1090/S0002-9947-00-02350-3</url>
<other type="coden">TAMTAM</other>
<other type="doi">10.1090/S0002-9947-00-02350-3</other>
<other type="fjournal">Transactions of the American Mathematical
Society</other>
</article></entry>
<entry id="Li"><article>
<author>
<name><first>Martin W.</first><last>Liebeck</last></name>
</author>
<title>The classification of finite simple <C>M</C>oufang loops</title>
<journal>Math. Proc. Cambridge Philos. Soc.</journal>
<year>1987</year>
<volume>102</volume>
<number>1</number>
<pages>3347</pages>
<issn>0305-0041</issn>
<mrnumber>886433 (88g:20146)</mrnumber>
<mrclass>20N05</mrclass>
<mrreviewer>Karl H. Robinson</mrreviewer>
<url>http://dx.doi.org/10.1017/S0305004100067025</url>
<other type="coden">MPCPCO</other>
<other type="doi">10.1017/S0305004100067025</other>
<other type="fjournal">Mathematical Proceedings of the Cambridge
Philosophical
Society</other>
</article></entry>
<entry id="Mo"><unpublished>
<author>
<name><first>G. Eric</first><last>Moorhouse</last></name>
</author>
<title>Bol loops of small order</title>
<note>http://www.uwyo.edu/moorhouse/pub/bol/</note>
</unpublished></entry>
<entry id="Na"><article>
<author>
<name><first>Gábor P.</first><last>Nagy</last></name>
</author>
<title>A class of simple proper <C>B</C>ol loops</title>
<journal>Manuscripta Math.</journal>
<year>2008</year>
<volume>127</volume>
<number>1</number>
<pages>8188</pages>
<issn>0025-2611</issn>
<mrnumber>2429915 (2009g:20149)</mrnumber>
<mrclass>20N05</mrclass>
<mrreviewer>Ramiro Carrillo-Catalán</mrreviewer>
<url>http://dx.doi.org/10.1007/s00229-008-0188-5</url>
<other type="coden">MSMHB2</other>
<other type="doi">10.1007/s00229-008-0188-5</other>
<other type="fjournal">Manuscripta Mathematica</other>
</article></entry>
<entry id="NaVo2003"><article>
<author>
<name><first>Gábor P.</first><last>Nagy</last></name>
<name><first>Petr</first><last>Vojtěchovský</last></name>
</author>
<title>Octonions, simple <C>M</C>oufang loops and triality</title>
<journal>Quasigroups Related Systems</journal>
<year>2003</year>
<volume>10</volume>
<pages>6594</pages>
<issn>1561-2848</issn>
<mrnumber>1998692 (2004f:20118)</mrnumber>
<mrclass>20N05 (17A75)</mrclass>
<mrreviewer>Orin Chein</mrreviewer>
<other type="fjournal">Quasigroups and Related Systems</other>
</article></entry>
<entry id="NaVo2007"><article>
<author>
<name><first>Gábor P.</first><last>Nagy</last></name>
<name><first>Petr</first><last>Vojtěchovský</last></name>
</author>
<title>The <C>M</C>oufang loops of order 64 and 81</title>
<journal>J. Symbolic Comput.</journal>
<year>2007</year>
<volume>42</volume>
<number>9</number>
<pages>871883</pages>
<issn>0747-7171</issn>
<mrnumber>2355056 (2009d:20155)</mrnumber>
<mrclass>20N05 (20D15)</mrclass>
<mrreviewer>Chris A. Rowley</mrreviewer>
<url>http://dx.doi.org/10.1016/j.jsc.2007.06.004</url>
<other type="doi">10.1016/j.jsc.2007.06.004</other>
<other type="fjournal">Journal of Symbolic Computation</other>
</article></entry>
<entry id="Pf"><book>
<author>
<name><first>Hala O.</first><last>Pflugfelder</last></name>
</author>
<title>Quasigroups and loops: introduction</title>
<publisher>Heldermann Verlag</publisher>
<year>1990</year>
<volume>7</volume>
<series>Sigma Series in Pure Mathematics</series>
<address>Berlin</address>
<isbn>3-88538-007-2</isbn>
<mrnumber>1125767 (93g:20132)</mrnumber>
<mrclass>20N05 (20-01)</mrclass>
<mrreviewer>D. A. Robinson</mrreviewer>
<other type="pages">viii+147</other>
</book></entry>
<entry id="PhiVoj"><article>
<author>
<name><first>J. D.</first><last>Phillips</last></name>
<name><first>Petr</first><last>Vojtěchovský</last></name>
</author>
<title>The varieties of loops of <C>B</C>ol-<C>M</C>oufang type</title>
<journal>Algebra Universalis</journal>
<year>2005</year>
<volume>54</volume>
<number>3</number>
<pages>259271</pages>
<issn>0002-5240</issn>
<mrnumber>2219409 (2007b:20147)</mrnumber>
<mrclass>20N05</mrclass>
<mrreviewer>A. Schleiermacher</mrreviewer>
<url>http://dx.doi.org/10.1007/s00012-005-1941-1</url>
<other type="coden">AGUVA3</other>
<other type="doi">10.1007/s00012-005-1941-1</other>
<other type="fjournal">Algebra Universalis</other>
</article></entry>
<entry id="SlZe2011"><article>
<author>
<name><first>M.</first><last>Slattery</last></name>
<name><first>A.</first><last>Zenisek</last></name>
</author>
<title>Moufang loops of order 243</title>
<journal>Commentationes Mathematicae Universitatis Carolinae</journal>
<year>2012</year>
<volume>53</volume>
<number>3</number>
<pages>423428</pages>
</article></entry>
<entry id="Vo"><article>
<author>
<name><first>Petr</first><last>Vojtěchovský</last></name>
</author>
<title>Toward the classification of <C>M</C>oufang loops of order 64</title>
<journal>European J. Combin.</journal>
<year>2006</year>
<volume>27</volume>
<number>3</number>
<pages>444460</pages>
<issn>0195-6698</issn>
<mrnumber>2206479 (2006k:20136)</mrnumber>
<mrclass>20N05</mrclass>
<mrreviewer>Orin Chein</mrreviewer>
<url>http://dx.doi.org/10.1016/j.ejc.2004.10.003</url>
<other type="doi">10.1016/j.ejc.2004.10.003</other>
<other type="fjournal">European Journal of Combinatorics</other>
</article></entry>
<entry id="VoQRS"><article>
<author>
<name><first>Petr</first><last>Vojtěchovský</last></name>
</author>
<title>Three lectures on automorphic loops</title>
<journal>Quasigroups Related Systems</journal>
<year>2015</year>
<volume>23</volume>
<number>1</number>
<pages>129163</pages>
<issn>1561-2848</issn>
<mrnumber>3353114</mrnumber>
<mrclass>20N05</mrclass>
<mrreviewer>Ágota Figula</mrreviewer>
<other type="fjournal">Quasigroups and Related Systems</other>
</article></entry>
<entry id="Wi"><article>
<author>
<name><first>Robert L.</first><last>Wilson Jr. </last></name>
</author>
<title>Quasidirect products of quasigroups</title>
<journal>Comm. Algebra</journal>
<year>1975</year>
<volume>3</volume>
<number>9</number>
<pages>835850</pages>
<issn>0092-7872</issn>
<mrnumber>0376937 (51 #13112)</mrnumber>
<mrclass>20N05</mrclass>
<mrreviewer>D. A. Robinson</mrreviewer>
<other type="fjournal">Communications in Algebra</other>
</article></entry>
</file>

496
doc/loops_bib.xml.bib Normal file
View file

@ -0,0 +1,496 @@
@phdthesis{ Artic,
author = {Artic, K.},
title = {On conjugacy closed loops and conjugacy closed loop
folders},
school = {RWTH Aachen University},
year = {2015},
printedkey = {Art15}
}
@article{ Ar,
author = {Artzy, R.},
title = {On automorphic-inverse properties in loops},
journal = {Proc. Amer. Math. Soc.},
volume = {10},
year = {1959},
pages = {588{\textendash}591},
fjournal = {Proceedings of the American Mathematical Society},
issn = {0002-9939},
mrclass = {20.00},
mrnumber = {0107674 (21 \#6397)},
mrreviewer = {H. Minc},
printedkey = {Art59}
}
@article{ BaGrVo,
author = {De Barros, D. A. S. and Grishkov, A. and Vojt{\v
e}chovsk{\a'y}, P.},
title = {Commutative automorphic loops of order {$p^3$}},
journal = {J. Algebra Appl.},
volume = {11},
number = {5},
year = {2012},
pages = {1250100, 15},
fjournal = {Journal of Algebra and its Applications},
issn = {0219-4988},
mrclass = {20N05 (20G40)},
mrnumber = {2983192},
mrreviewer = {{\a'A}gota Figula},
url = {http://dx.doi.org/10.1142/S0219498812501009},
doi = {10.1142/S0219498812501009},
printedkey = {BGV12}
}
@book{ Br,
author = {Bruck, R. H.},
title = {A survey of binary systems},
publisher = {Springer Verlag},
series = {Ergebnisse der Mathematik und ihrer Grenzgebiete. Neue
Folge, Heft 20. Reihe: Gruppentheorie},
address = {Berlin},
year = {1958},
pages = {viii+185},
mrclass = {20.00},
mrnumber = {0093552 (20 \#76)},
mrreviewer = {L. J. Paige},
printedkey = {Bru58}
}
@article{ BrPa,
author = {Bruck, R. H. and Paige, L. J.},
title = {Loops whose inner mappings are automorphisms},
journal = {Ann. of Math. (2)},
volume = {63},
year = {1956},
pages = {308{\textendash}323},
fjournal = {Annals of Mathematics. Second Series},
issn = {0003-486X},
mrclass = {20.0X},
mrnumber = {0076779},
mrreviewer = {R. Moufang},
printedkey = {BP56}
}
@book{ ChPfSm,
editor = {Chein, O. and Pflugfelder, H. O. and Smith, J. D. H.},
title = {Quasigroups and loops: theory and applications},
publisher = {Heldermann Verlag},
series = {Sigma Series in Pure Mathematics},
volume = {8},
address = {Berlin},
year = {1990},
pages = {xii+568},
isbn = {3-88538-008-0},
mrclass = {20N05 (20-06)},
mrnumber = {1125806 (93g:20133)},
mrreviewer = {D. A. Robinson},
printedkey = {CPS90}
}
@book{ CoRo,
author = {Colbourn, C. J. and Rosa, A.},
title = {Triple systems},
publisher = {The Clarendon Press Oxford University Press},
series = {Oxford Mathematical Monographs},
address = {New York},
year = {1999},
pages = {xvi+560},
isbn = {0-19-853576-7},
mrclass = {05B07 (05-02)},
mrnumber = {1843379 (2002h:05024)},
mrreviewer = {Elizabeth J. Billington},
printedkey = {CR99}
}
@article{ CsDr,
author = {Cs{\"o}rg{\H o}, P. and Dr{\a'a}pal, A.},
title = {Left conjugacy closed loops of nilpotency class two},
journal = {Results Math.},
volume = {47},
number = {3-4},
year = {2005},
pages = {242{\textendash}265},
fjournal = {Results in Mathematics. Resultate der Mathematik},
issn = {1422-6383},
mrclass = {20N05},
mrnumber = {2153496 (2006b:20095)},
mrreviewer = {Huberta Lausch},
printedkey = {CD05}
}
@article{ DaVo,
author = {Daly, D. and Vojt{\v e}chovsk{\a'y}, P.},
title = {Enumeration of nilpotent loops via cohomology},
journal = {J. Algebra},
volume = {322},
number = {11},
year = {2009},
pages = {4080{\textendash}4098},
coden = {JALGA4},
fjournal = {Journal of Algebra},
issn = {0021-8693},
mrclass = {20N05 (20J99)},
mrnumber = {2556139 (2011e:20098)},
mrreviewer = {Yu. M. Movsisyan},
url = {http://dx.doi.org/10.1016/j.jalgebra.2009.03.042},
doi = {10.1016/j.jalgebra.2009.03.042},
printedkey = {DV09}
}
@article{ DrapalCD,
author = {Dr{\a'a}pal, A.},
title = {Cyclic and dihedral constructions of even order},
journal = {Comment. Math. Univ. Carolin.},
volume = {44},
number = {4},
year = {2003},
pages = {593{\textendash}614},
coden = {},
fjournal = {Commentationes Mathematicae Universitatis Carolinae},
issn = {},
mrclass = {20D60 (05B15)},
mrnumber = {MR2062876 (2005d:20038)},
mrreviewer = {Thomas Michael Keller},
url = {},
doi = {},
printedkey = {Dr{\a'a}03}
}
@article{ DrVo,
author = {Dr{\a'a}pal, A. and Vojt{\v e}chovsk{\a'y}, P.},
title = {Moufang loops that share associator and three quarters
of their multiplication tables},
journal = {Rocky Mountain J. Math.},
volume = {36},
number = {2},
year = {2006},
pages = {425{\textendash}455},
coden = {RMJMAE},
fjournal = {The Rocky Mountain Journal of Mathematics},
issn = {0035-7596},
mrclass = {20N05 (05B15)},
mrnumber = {2234814 (2007d:20114)},
mrreviewer = {Orin Chein},
url = {http://dx.doi.org/10.1216/rmjm/1181069461},
doi = {10.1216/rmjm/1181069461},
printedkey = {DV06}
}
@article{ Fe,
author = {Fenyves, F.},
title = {Extra loops. {II}. {O}n loops with identities of
{B}ol-{M}oufang type},
journal = {Publ. Math. Debrecen},
volume = {16},
year = {1969},
pages = {187{\textendash}192},
fjournal = {Publicationes Mathematicae Debrecen},
issn = {0033-3883},
mrclass = {20.95},
mrnumber = {0262409 (41 \#7017)},
mrreviewer = {D. A. Robinson},
printedkey = {Fen69}
}
@book{ Go,
author = {Goodaire, E. G. and May, S. and Raman, M.},
title = {The {M}oufang loops of order less than 64},
publisher = {Nova Science Publishers Inc.},
address = {Commack, NY},
year = {1999},
pages = {xviii+287},
isbn = {1-56072-659-8},
mrclass = {20N05},
mrnumber = {1689624 (2000a:20147)},
printedkey = {GMR99}
}
@article{ GrKiNa,
author = {Grishkov, A. and Kinyon, M. and Nagy, G. P.},
title = {Solvability of commutative automorphic loops},
journal = {Proc. Amer. Math. Soc.},
volume = {142},
number = {9},
year = {2014},
pages = {3029{\textendash}3037},
fjournal = {Proceedings of the American Mathematical Society},
issn = {0002-9939},
mrclass = {20N05 (17B99)},
mrnumber = {3223359},
mrreviewer = {J. D. Phillips},
url = {http://dx.doi.org/10.1090/S0002-9939-2014-12053-3},
doi = {10.1090/S0002-9939-2014-12053-3},
printedkey = {GKN14}
}
@article{ JaMa,
author = {Jacobson, M. T. and Matthews, P.},
title = {Generating uniformly distributed random {L}atin
squares},
journal = {J. Combin. Des.},
volume = {4},
number = {6},
year = {1996},
pages = {405{\textendash}437},
fjournal = {Journal of Combinatorial Designs},
issn = {1063-8539},
mrclass = {05B15 (60J10)},
mrnumber = {1410617 (98b:05021)},
mrreviewer = {Lars D{\o}vling Andersen},
url = {http://dx.doi.org/10.1002/(SICI)1520-6610(1996)4:6{\textless}405::AID-JCD3{\textgreater}3.0.CO;2-J},
doi = {10.1002/(SICI)1520-6610(1996)4:6{\textless}405::AID-JCD3{\textgreater}3.0.CO;2-J},
printedkey = {JM96}
}
@article{ JeKiVo,
author = {Jedli{\v c}ka, P. and Kinyon, M. and Vojt{\v
e}chovsk{\a'y}, P.},
title = {Nilpotency in automorphic loops of prime power order},
journal = {J. Algebra},
volume = {350},
year = {2012},
pages = {64{\textendash}76},
coden = {JALGA4},
fjournal = {Journal of Algebra},
issn = {0021-8693},
mrclass = {20N05},
mrnumber = {2859875},
mrreviewer = {Mohammad Shahryari},
url = {http://dx.doi.org/10.1016/j.jalgebra.2011.09.034},
doi = {10.1016/j.jalgebra.2011.09.034},
printedkey = {JKV12}
}
@article{ JoKiNaVo,
author = {Johnson, K. W. and Kinyon, M. K. and Nagy, G. P. and
Vojt{\v e}chovsk{\a'y}, P.},
title = {Searching for small simple automorphic loops},
journal = {LMS J. Comput. Math.},
volume = {14},
year = {2011},
pages = {200{\textendash}213},
fjournal = {LMS Journal of Computation and Mathematics},
issn = {1461-1570},
mrclass = {20N05 (20B15 20B40)},
mrnumber = {2831230},
mrreviewer = {Tuval S. Foguel},
url = {http://dx.doi.org/10.1112/S1461157010000173},
doi = {10.1112/S1461157010000173},
printedkey = {JKNV11}
}
@article{ KiKuPh,
author = {Kinyon, M. K. and Kunen, K. and Phillips, J. D.},
title = {Every diassociative {$A$}-loop is {M}oufang},
journal = {Proc. Amer. Math. Soc.},
volume = {130},
number = {3},
year = {2002},
pages = {619{\textendash}624},
coden = {PAMYAR},
fjournal = {Proceedings of the American Mathematical Society},
issn = {0002-9939},
mrclass = {20N05 (68T15)},
mrnumber = {1866009 (2002k:20124)},
mrreviewer = {Orin Chein},
url = {http://dx.doi.org/10.1090/S0002-9939-01-06090-7},
doi = {10.1090/S0002-9939-01-06090-7},
printedkey = {KKP02}
}
@article{ KiKuPhVo,
author = {Kinyon, M. K. and Kunen, K. and Phillips, J. D. and
Vojt{\v e}chovsk{\a'y}, P.},
title = {The structure of automorphic loops},
journal = {Trans. Amer. Math. Soc.},
volume = {368},
number = {12},
year = {2016},
pages = {8901{\textendash}8927},
coden = {TAMTAM},
fjournal = {Transactions of the American Mathematical Society},
issn = {0002-9947},
mrclass = {20N05},
mrnumber = {3551593},
url = {http://dx.doi.org/10.1090/tran/6622},
doi = {10.1090/tran/6622},
printedkey = {KKPV16}
}
@article{ KiNaVo2015,
author = {Kinyon, M. K. and Nagy, G. P. and Vojt{\v
e}chovsk{\a'y}, P.},
title = {Bol loops and Bruck loops of order $pq$},
journal = {},
year = {2015},
note = {preprint},
printedkey = {KNV15}
}
@article{ Kun,
author = {Kunen, K.},
title = {The structure of conjugacy closed loops},
journal = {Trans. Amer. Math. Soc.},
volume = {352},
number = {6},
year = {2000},
pages = {2889{\textendash}2911},
coden = {TAMTAM},
fjournal = {Transactions of the American Mathematical Society},
issn = {0002-9947},
mrclass = {20N05 (03C05)},
mrnumber = {1615991 (2000j:20132)},
mrreviewer = {Edgar G. Goodaire},
url = {http://dx.doi.org/10.1090/S0002-9947-00-02350-3},
doi = {10.1090/S0002-9947-00-02350-3},
printedkey = {Kun00}
}
@article{ Li,
author = {Liebeck, M. W.},
title = {The classification of finite simple {M}oufang loops},
journal = {Math. Proc. Cambridge Philos. Soc.},
volume = {102},
number = {1},
year = {1987},
pages = {33{\textendash}47},
coden = {MPCPCO},
fjournal = {Mathematical Proceedings of the Cambridge
Philosophical Society},
issn = {0305-0041},
mrclass = {20N05},
mrnumber = {886433 (88g:20146)},
mrreviewer = {Karl H. Robinson},
url = {http://dx.doi.org/10.1017/S0305004100067025},
doi = {10.1017/S0305004100067025},
printedkey = {Lie87}
}
@unpublished{ Mo,
author = {Moorhouse, G. E.},
title = {Bol loops of small order},
note = {http://www.uwyo.edu/moorhouse/pub/bol/},
printedkey = {Moo}
}
@article{ Na,
author = {Nagy, G. P.},
title = {A class of simple proper {B}ol loops},
journal = {Manuscripta Math.},
volume = {127},
number = {1},
year = {2008},
pages = {81{\textendash}88},
coden = {MSMHB2},
fjournal = {Manuscripta Mathematica},
issn = {0025-2611},
mrclass = {20N05},
mrnumber = {2429915 (2009g:20149)},
mrreviewer = {Ramiro Carrillo-Catal{\a'a}n},
url = {http://dx.doi.org/10.1007/s00229-008-0188-5},
doi = {10.1007/s00229-008-0188-5},
printedkey = {Nag08}
}
@article{ NaVo2003,
author = {Nagy, G. P. and Vojt{\v e}chovsk{\a'y}, P.},
title = {Octonions, simple {M}oufang loops and triality},
journal = {Quasigroups Related Systems},
volume = {10},
year = {2003},
pages = {65{\textendash}94},
fjournal = {Quasigroups and Related Systems},
issn = {1561-2848},
mrclass = {20N05 (17A75)},
mrnumber = {1998692 (2004f:20118)},
mrreviewer = {Orin Chein},
printedkey = {NV03}
}
@article{ NaVo2007,
author = {Nagy, G. P. and Vojt{\v e}chovsk{\a'y}, P.},
title = {The {M}oufang loops of order 64 and 81},
journal = {J. Symbolic Comput.},
volume = {42},
number = {9},
year = {2007},
pages = {871{\textendash}883},
fjournal = {Journal of Symbolic Computation},
issn = {0747-7171},
mrclass = {20N05 (20D15)},
mrnumber = {2355056 (2009d:20155)},
mrreviewer = {Chris A. Rowley},
url = {http://dx.doi.org/10.1016/j.jsc.2007.06.004},
doi = {10.1016/j.jsc.2007.06.004},
printedkey = {NV07}
}
@book{ Pf,
author = {Pflugfelder, H. O.},
title = {Quasigroups and loops: introduction},
publisher = {Heldermann Verlag},
series = {Sigma Series in Pure Mathematics},
volume = {7},
address = {Berlin},
year = {1990},
pages = {viii+147},
isbn = {3-88538-007-2},
mrclass = {20N05 (20-01)},
mrnumber = {1125767 (93g:20132)},
mrreviewer = {D. A. Robinson},
printedkey = {Pfl90}
}
@article{ PhiVoj,
author = {Phillips, J. D. and Vojt{\v e}chovsk{\a'y}, P.},
title = {The varieties of loops of {B}ol-{M}oufang type},
journal = {Algebra Universalis},
volume = {54},
number = {3},
year = {2005},
pages = {259{\textendash}271},
coden = {AGUVA3},
fjournal = {Algebra Universalis},
issn = {0002-5240},
mrclass = {20N05},
mrnumber = {2219409 (2007b:20147)},
mrreviewer = {A. Schleiermacher},
url = {http://dx.doi.org/10.1007/s00012-005-1941-1},
doi = {10.1007/s00012-005-1941-1},
printedkey = {PV05}
}
@article{ SlZe2011,
author = {Slattery, M. and Zenisek, A.},
title = {Moufang loops of order 243},
journal = {Commentationes Mathematicae Universitatis Carolinae},
volume = {53},
number = {3},
year = {2012},
pages = {423{\textendash}428},
printedkey = {SZ12}
}
@article{ Vo,
author = {Vojt{\v e}chovsk{\a'y}, P.},
title = {Toward the classification of {M}oufang loops of order
64},
journal = {European J. Combin.},
volume = {27},
number = {3},
year = {2006},
pages = {444{\textendash}460},
fjournal = {European Journal of Combinatorics},
issn = {0195-6698},
mrclass = {20N05},
mrnumber = {2206479 (2006k:20136)},
mrreviewer = {Orin Chein},
url = {http://dx.doi.org/10.1016/j.ejc.2004.10.003},
doi = {10.1016/j.ejc.2004.10.003},
printedkey = {Voj06}
}
@article{ VoQRS,
author = {Vojt{\v e}chovsk{\a'y}, P.},
title = {Three lectures on automorphic loops},
journal = {Quasigroups Related Systems},
volume = {23},
number = {1},
year = {2015},
pages = {129{\textendash}163},
fjournal = {Quasigroups and Related Systems},
issn = {1561-2848},
mrclass = {20N05},
mrnumber = {3353114},
mrreviewer = {{\a'A}gota Figula},
printedkey = {Voj15}
}
@article{ Wi,
author = {Wilson Jr., R. L.},
title = {Quasidirect products of quasigroups},
journal = {Comm. Algebra},
volume = {3},
number = {9},
year = {1975},
pages = {835{\textendash}850},
fjournal = {Communications in Algebra},
issn = {0092-7872},
mrclass = {20N05},
mrnumber = {0376937 (51 \#13112)},
mrreviewer = {D. A. Robinson},
printedkey = {WJ75}
}

482
doc/manual.css Normal file
View file

@ -0,0 +1,482 @@
/* manual.css Frank Lübeck */
/* This is the default CSS style sheet for GAPDoc HTML manuals. */
/* basic settings, fonts, sizes, colors, ... */
body {
position: relative;
background: #ffffff;
color: #000000;
width: 70%;
margin: 0pt;
padding: 15pt;
font-family: Helvetica,Verdana,Arial,sans-serif;
text-align: justify;
}
/* no side toc on title page, bib and index */
body.chap0 {
width: 95%;
}
body.chapBib {
width: 95%;
}
body.chapInd {
width: 95%;
}
h1 { font-size: 200%; }
h2 { font-size: 160%; }
h3 { font-size: 160%; }
h4 { font-size: 130%; }
h5 { font-size: 100%; }
p.foot {
font-size: 60%;
font-style: normal;
}
a:link {
color: #00008e;
text-decoration: none;
}
a:visited {
color: #00008e;
text-decoration: none;
}
a:active {
color: #000000;
text-decoration: none;
}
a:hover {
background: #eeeeee;
}
pre {
font-family: "Courier New",Courier,monospace;
font-size: 100%;
color:#111111;
}
tt,code {
font-family: "Courier New",Courier,monospace;
font-size: 110%;
color: #000000; }
var {
}
/* general alignment classes */
.pcenter {
text-align: center;
}
.pleft {
text-align: left;
}
.pright {
text-align: right;
}
/* layout for the definitions of functions, variables, ... */
div.func {
background: #e0e0e0;
margin: 0pt 0pt;
}
/* general and special table settings */
table {
border-collapse: collapse;
margin-left: auto;
margin-right: auto;
}
td, th {
border-style: none;
}
table.func {
padding: 0pt 1ex;
margin-left: 1ex;
margin-right: 1ex;
background: transparent;
/* line-height: 1.1; */
width: 100%;
}
table.func td.tdright {
padding-right: 2ex;
}
/* Example elements (for old converted manuals, now in div+pre */
table.example {
background: #efefef;
border-style: none;
border-width: 0pt;
padding: 0px;
width: 100%
}
table.example td {
border-style: none;
border-width: 0pt;
padding: 0ex 1ex;
}
/* becomes ... */
div.example {
background: #efefef;
padding: 0ex 1ex;
/* overflow-x: auto; */
overflow: auto;
}
/* Links to chapters in all files at top and bottom. */
/* If there are too many chapters then use 'display: none' here. */
div.chlinktop {
background: #dddddd;
border-style: solid;
border-width: thin;
margin: 2px;
text-align: center;
}
div.chlinktop a {
margin: 3px;
}
div.chlinktop a:hover {
background: #ffffff;
}
div.chlinkbot {
background: #dddddd;
border-style: solid;
border-width: thin;
margin: 2px;
text-align: center;
/* width: 100%; */
}
div.chlinkbot a {
margin: 3px;
}
span.chlink1 {
}
/* and this is for the "Top", "Prev", "Next" links */
div.chlinkprevnexttop {
background: #dddddd;
border-style: solid;
border-width: thin;
text-align: center;
margin: 2px;
}
div.chlinkprevnexttop a:hover {
background: #ffffff;
}
div.chlinkprevnextbot {
background: #dddddd;
border-style: solid;
border-width: thin;
text-align: center;
margin: 2px;
}
div.chlinkprevnextbot a:hover {
background: #ffffff;
}
/* table of contents, initially don't display subsections */
div.ContSSBlock {
display: none;
}
div.ContSSBlock br {
display: none;
}
/* format in separate lines */
span.tocline {
display: block;
width: 100%;
}
div.ContSSBlock a {
display: block;
}
/* this is for the main table of contents */
div.ContChap {
}
div.ContChap div.ContSect:hover div.ContSSBlock {
display: block;
position: absolute;
background: #eeeeee;
border-style: solid;
border-width: 1px 4px 4px 1px;
border-color: #666666;
padding-left: 0.5ex;
color: #000000;
left: 20%;
width: 40%;
z-index: 10000;
}
div.ContSSBlock a:hover {
background: #ffffff;
}
/* and here for the side menu of contents in the chapter files */
div.ChapSects {
}
div.ChapSects a:hover {
background: #eeeeee;
}
div.ChapSects a:hover {
display: block;
width: 100%;
background: #eeeeee;
color: #000000;
}
div.ChapSects div.ContSect:hover div.ContSSBlock {
display: block;
position: fixed;
background: #eeeeee;
border-style: solid;
border-width: 1px 2px 2px 1px;
border-color: #666666;
padding-left: 0ex;
padding-right: 0.5ex;
color: #000000;
left: 54%;
width: 25%;
z-index: 10000;
}
div.ChapSects div.ContSect:hover div.ContSSBlock a {
display: block;
margin-left: 3px;
}
div.ChapSects div.ContSect:hover div.ContSSBlock a:hover {
display: block;
background: #ffffff;
}
div.ContSect {
text-align: left;
margin-left: 1em;
}
div.ChapSects {
position: fixed;
left: 75%;
font-size: 90%;
overflow: auto;
top: 10px;
bottom: 0px;
}
/* Table elements */
table.GAPDocTable {
border-collapse: collapse;
border-style: none;
border-color: black;
}
table.GAPDocTable td, table.GAPDocTable th {
padding: 3pt;
border-width: thin;
border-style: solid;
border-color: #555555;
}
caption.GAPDocTable {
caption-side: bottom;
width: 70%;
margin-top: 1em;
margin-left: auto;
margin-right: auto;
}
td.tdleft {
text-align: left;
}
table.GAPDocTablenoborder {
border-collapse: collapse;
border-style: none;
border-color: black;
}
table.GAPDocTablenoborder td, table.GAPDocTable th {
padding: 3pt;
border-width: 0pt;
border-style: solid;
border-color: #555555;
}
caption.GAPDocTablenoborder {
caption-side: bottom;
width: 70%;
margin-top: 1em;
margin-left: auto;
margin-right: auto;
}
td.tdleft {
text-align: left;
}
td.tdright {
text-align: right;
}
td.tdcenter {
text-align: center;
}
/* Colors and fonts can be overwritten for some types of elements. */
/* Verb elements */
pre.normal {
color: #000000;
}
/* Func-like elements and Ref to Func-like */
code.func {
color: #000000;
}
/* K elements */
code.keyw {
color: #770000;
}
/* F elements */
code.file {
color: #8e4510;
}
/* C elements */
code.code {
}
/* Item elements */
code.i {
}
/* Button elements */
strong.button {
}
/* Headings */
span.Heading {
}
/* Arg elements */
var.Arg {
color: #006600;
}
/* Example elements, is in tables, see above */
div.Example {
}
/* Package elements */
strong.pkg {
}
/* URL-like elements */
span.URL {
}
/* Mark elements */
strong.Mark {
}
/* Ref elements */
b.Ref {
}
span.Ref {
}
/* this contains the contents page */
div.contents {
}
/* this contains the index page */
div.index {
}
/* ignore some text for non-css layout */
span.nocss {
display: none;
}
/* colors for ColorPrompt like examples */
span.GAPprompt {
color: #000097;
font-weight: normal;
}
span.GAPbrkprompt {
color: #970000;
font-weight: normal;
}
span.GAPinput {
color: #970000;
}
/* Bib entries */
p.BibEntry {
}
span.BibKey {
color: #005522;
}
span.BibKeyLink {
}
b.BibAuthor {
}
i.BibTitle {
}
i.BibBookTitle {
}
span.BibEditor {
}
span.BibJournal {
}
span.BibType {
}
span.BibPublisher {
}
span.BibSchool {
}
span.BibEdition {
}
span.BibVolume {
}
span.BibSeries {
}
span.BibNumber {
}
span.BibPages {
}
span.BibOrganization {
}
span.BibAddress {
}
span.BibYear {
}
span.BibPublisher {
}
span.BibNote {
}
span.BibHowpublished {
}

BIN
doc/manual.dvi Normal file

Binary file not shown.

112
doc/manual.js Normal file
View file

@ -0,0 +1,112 @@
/* manual.js Frank Lübeck */
/* This file contains a few javascript functions which allow to switch
between display styles for GAPDoc HTML manuals.
If javascript is switched off in a browser or this file in not available
in a manual directory, this is no problem. Users just cannot switch
between several styles and don't see the corresponding button.
A style with name mystyle can be added by providing two files (or only
one of them).
mystyle.js: Additional javascript code for the style, it is
read in the HTML pages after this current file.
The additional code may adjust the preprocessing function
jscontent() with is called onload of a file. This
is done by appending functions to jscontentfuncs
(jscontentfuncs.push(newfunc);).
Make sure, that your style is still usable without
javascript.
mystyle.css: CSS configuration, read after manual.css (so it can
just reconfigure a few details, or overwrite everything).
Then adjust chooser.html such that users can switch on and off mystyle.
A user can change the preferred style permanently by using the [Style]
link and choosing one. Or one can append '?GAPDocStyle=mystyle' to the URL
when loading any file of the manual (so the style can be configured in
the GAP user preferences).
*/
/* generic helper function */
function deleteCookie(nam) {
document.cookie = nam+"=;Path=/;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}
/* read a value from a "nam1=val1;nam2=val2;..." string (e.g., the search
part of an URL or a cookie */
function valueString(str,nam) {
var cs = str.split(";");
for (var i=0; i < cs.length; i++) {
var pos = cs[i].search(nam+"=");
if (pos > -1) {
pos = cs[i].indexOf("=");
return cs[i].slice(pos+1);
}
}
return 0;
}
/* when a non-default style is chosen via URL or a cookie, then
the cookie is reset and the styles .js and .css files are read */
function overwriteStyle() {
/* style in URL? */
var style = valueString(window.location.search, "GAPDocStyle");
/* otherwise check cookie */
if (style == 0)
style = valueString(document.cookie, "GAPDocStyle");
if (style == 0)
return;
if (style == "default")
deleteCookie("GAPDocStyle");
else {
/* ok, we set the cookie for path "/" */
var path = "/";
/* or better like this ???
var here = window.location.pathname.split("/");
for (var i=0; i+3 < here.length; i++)
path = path+"/"+here[i];
*/
document.cookie = "GAPDocStyle="+style+";Path="+path;
/* split into names of style files */
var stlist = style.split(",");
/* read style's css and js files */
for (var i=0; i < stlist.length; i++) {
document.writeln('<link rel="stylesheet" type="text/css" href="'+
stlist[i]+'.css" />');
document.writeln('<script src="'+stlist[i]+
'.js" type="text/javascript"></script>');
}
}
}
/* this adds a "[Style]" link next to the MathJax switcher */
function addStyleLink() {
var line = document.getElementById("mathjaxlink");
var el = document.createElement("a");
var oncl = document.createAttribute("href");
var back = window.location.protocol+"//"
if (window.location.protocol == "http:") {
back = back+window.location.host;
if (window.location.port != "") {
back = back+":"+window.location.port;
}
}
back = back+window.location.pathname;
oncl.nodeValue = "chooser.html?BACK="+back;
el.setAttributeNode(oncl);
var cont = document.createTextNode(" [Style]");
el.appendChild(cont);
line.appendChild(el);
}
var jscontentfuncs = new Array();
jscontentfuncs.push(addStyleLink);
/* the default jscontent() only adds the [Style] link to the page */
function jscontent () {
for (var i=0; i < jscontentfuncs.length; i++)
jscontentfuncs[i]();
}

14271
doc/manual.pdf Normal file

File diff suppressed because it is too large Load diff

18631
doc/manual.ps Normal file

File diff suppressed because it is too large Load diff

1227
doc/manual.six Normal file

File diff suppressed because it is too large Load diff

13
doc/nocolorprompt.css Normal file
View file

@ -0,0 +1,13 @@
/* colors for ColorPrompt like examples */
span.GAPprompt {
color: #000000;
font-weight: normal;
}
span.GAPbrkprompt {
color: #000000;
font-weight: normal;
}
span.GAPinput {
color: #000000;
}

6
doc/ragged.css Normal file
View file

@ -0,0 +1,6 @@
/* times.css Frank Lübeck */
/* Change default CSS to use Times font. */
body {
text-align: left;
}

60
doc/rainbow.js Normal file
View file

@ -0,0 +1,60 @@
function randchar(str) {
var i = Math.floor(Math.random() * str.length);
while (i == str.length)
i = Math.floor(Math.random() * str.length);
return str[i];
}
hexdigits = "0123456789abcdef";
function randlight() {
return randchar("cdef")+randchar(hexdigits)+
randchar("cdef")+randchar(hexdigits)+
randchar("cdef")+randchar(hexdigits)
}
function randdark() {
return randchar("012345789")+randchar(hexdigits)+
randchar("012345789")+randchar(hexdigits)+
randchar("102345789")+randchar(hexdigits)
}
document.write('<style type="text/css">\n<!--\n');
document.write('body {\n color: #'+randdark()+';\n background: #'+
randlight()+';\n}\n');
document.write('a:link {\n color: #'+randdark()+';\n}\n');
document.write('a:visited {\n color: #'+randdark()+';\n}\n');
document.write('a:active {\n color: #'+randdark()+';\n}\n');
document.write('a:hover {\n background-color: #'+randlight()+';\n}\n');
document.write('pre {\n color: #'+randdark()+';\n}\n');
document.write('tt {\n color: #'+randdark()+';\n}\n');
document.write('code {\n color: #'+randdark()+';\n}\n');
document.write('var {\n color: #'+randdark()+';\n}\n');
document.write('div.func {\n background-color: #'+randlight()+';\n}\n');
document.write('div.example {\n background-color: #'+randlight()+';\n}\n');
document.write('div.chlinktop {\n background-color: #'+randlight()+';\n}\n');
document.write('div.chlinkbot {\n background-color: #'+randlight()+';\n}\n');
document.write('pre.normal {\n color: #'+randdark()+';\n}\n');
document.write('code.func {\n color: #'+randdark()+';\n}\n');
document.write('code.keyw {\n color: #'+randdark()+';\n}\n');
document.write('code.file {\n color: #'+randdark()+';\n}\n');
document.write('code.code {\n color: #'+randdark()+';\n}\n');
document.write('code.i {\n color: #'+randdark()+';\n}\n');
document.write('strong.button {\n color: #'+randdark()+';\n}\n');
document.write('span.Heading {\n color: #'+randdark()+';\n}\n');
document.write('var.Arg {\n color: #'+randdark()+';\n}\n');
document.write('strong.pkg {\n color: #'+randdark()+';\n}\n');
document.write('strong.Mark {\n color: #'+randdark()+';\n}\n');
document.write('b.Ref {\n color: #'+randdark()+';\n}\n');
document.write('span.Ref {\n color: #'+randdark()+';\n}\n');
document.write('span.GAPprompt {\n color: #'+randdark()+';\n}\n');
document.write('span.GAPbrkprompt {\n color: #'+randdark()+';\n}\n');
document.write('span.GAPinput {\n color: #'+randdark()+';\n}\n');
document.write('b.Bib_author {\n color: #'+randdark()+';\n}\n');
document.write('span.Bib_key {\n color: #'+randdark()+';\n}\n');
document.write('i.Bib_title {\n color: #'+randdark()+';\n}\n');
document.write('-->\n</style>\n');

6
doc/times.css Normal file
View file

@ -0,0 +1,6 @@
/* times.css Frank Lübeck */
/* Change default CSS to use Times font. */
body {
font-family: Times,Times New Roman,serif;
}

42
doc/toggless.css Normal file
View file

@ -0,0 +1,42 @@
/* toggless.css Frank Lübeck */
/* Using javascript we change all div.ContSect to div.ContSectOpen or
div.ContSectClosed. This way the config for div.ContSect in manual.css
is no longer relevant. Here we add the CSS for the new elements. */
/* This layout is based on an idea by Burkhard Höfling. */
div.ContSectClosed {
text-align: left;
margin-left: 1em;
}
div.ContSectOpen {
text-align: left;
margin-left: 1em;
}
div.ContSectOpen div.ContSSBlock {
display: block;
text-align: left;
margin-left: 1em;
}
div.ContSectOpen div.ContSSBlock a {
display: block;
width: 100%;
margin-left: 1em;
}
span.tocline a:hover {
display: inline;
background: #eeeeee;
}
span.ContSS a:hover {
display: inline;
background: #eeeeee;
}
span.toctoggle {
font-size: 80%;
display: inline-block;
width: 1.2em;
}
span.toctoggle:hover {
background-color: #aaaaaa;
}

65
doc/toggless.js Normal file
View file

@ -0,0 +1,65 @@
/* toggless.js Frank Lübeck */
/* this file contains two functions:
mergeSideTOCHooks: this changes div.ContSect elements to the class
ContSectClosed and includes a hook to toggle between
ContSectClosed and ContSectOpen.
openclosetoc: this function does the toggling, the rest is done by
CSS
*/
closedTOCMarker = "▶ ";
openTOCMarker = "▼ ";
noTOCMarker = " ";
/* merge hooks into side toc for opening/closing subsections
with openclosetoc */
function mergeSideTOCHooks() {
var hlist = document.getElementsByTagName("div");
for (var i = 0; i < hlist.length; i++) {
if (hlist[i].className == "ContSect") {
var chlds = hlist[i].childNodes;
var el = document.createElement("span");
var oncl = document.createAttribute("class");
oncl.nodeValue = "toctoggle";
el.setAttributeNode(oncl);
var cont;
if (chlds.length > 2) {
var oncl = document.createAttribute("onclick");
oncl.nodeValue = "openclosetoc(event)";
el.setAttributeNode(oncl);
cont = document.createTextNode(closedTOCMarker);
} else {
cont = document.createTextNode(noTOCMarker);
}
el.appendChild(cont);
hlist[i].firstChild.insertBefore(el, hlist[i].firstChild.firstChild);
hlist[i].className = "ContSectClosed";
}
}
}
function openclosetoc (event) {
/* first two steps to make it work in most browsers */
var evt=window.event || event;
if (!evt.target)
evt.target=evt.srcElement;
var markClosed = document.createTextNode(closedTOCMarker);
var markOpen = document.createTextNode(openTOCMarker);
var par = evt.target.parentNode.parentNode;
if (par.className == "ContSectOpen") {
par.className = "ContSectClosed";
evt.target.replaceChild(markClosed, evt.target.firstChild);
}
else if (par.className == "ContSectClosed") {
par.className = "ContSectOpen";
evt.target.replaceChild(markOpen, evt.target.firstChild);
}
}
/* adjust jscontent which is called onload */
jscontentfuncs.push(mergeSideTOCHooks);