loops/doc/chap5.txt

174 lines
8.7 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

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

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

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.