[Up] [Previous] [Next] [Index]

# 6 Testing properties of quasigroups and loops

### Sections

1. Associativity, commutativity and generalizations
2. Inverse properties
3. Some properties of quasigroups
4. Loops of Bol-Moufang type
5. Power alternative loops
6. Conjugacy closed loops and related properties
7. Additional varieties of loops

The reader should be aware that although loops are quasigroups, it is often the case in the literature that a property named P 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`.

## 6.1 Associativity, commutativity and generalizations

The following properties test if a quasigroup Q is associative and commutative:

- `IsAssociative(` Q`) P`
- `IsCommutative(` Q`) P`

  A loop L is said to be power-associativeindexpower-associative loop (resp. diassociativeindexdiassociative loop) if every monogenic subloop of L (resp. every 2-generated subloop of L) is a group.

- `IsPowerAssociative(` L`) P`
- `IsDiassociative(` L`) P`

  ## 6.2 Inverse properties

  A loop L has the left inverse property if xλ(xy)=y for every x, y ∈ L, where xλ is the left inverse of x. Dually, L has the right inverse property if (yx)xρ=y for every x, y ∈ L, where xρ is the right inverse of x. If L has both the left and right inverse properties, it has the inverse property . We say that L has two-sided inverses if xλ=xρ for every x ∈ L.

- `HasLeftInverseProperty(` L`) P`
- `HasRightInverseProperty(` L`) P`
- `HasInverseProperty(` L`) P`
- `HasTwosidedInverses(` L`) P`

  A loop has the weak inverse property if (xy)λ x = yλ. Equivalently, a loop has the weak inverse property if x(yx)ρ = yρ.

- `HasWeakInverseProperty(` L`) P`

  According to Ar, a loop L has the automorphic inverse property

  if (xy)λ = xλ yλ, or, equivalently, (xy)ρ = xρ yρ. (In particular, when L has two-sided inverses and the automorphic inverse property, it satisfies (xy)−1=x−1y−1.) Similarly, L has the antiautomorphic inverse property if (xy)λ=yλ xλ, or, equivalently, (xy)ρ = yρ xρ.

- `HasAutomorphicInverseProperty(` L`) P`
- `HasAntiautomorphicInverseProperty(` L`) P`

  The following implications among inverse properties hold and are implemented in LOOPS:

  - Inverse property implies left and right inverse properties, two-sided inverses, weak inverse property, and antiautomorphic inverse property.
  - Antiautomorphic inverse property loops have two-sided inverses.
  - If a loop has any two of the left inverse property, right inverse property, weak inverse property or antiautomorphic inverse property, it also has the inverse property.

  ## 6.3 Some properties of quasigroups

  A quasigroup Q is semisymmetricindexsemisymmetric quasigroup if (xy)x=y for every x, y ∈ Q. Equivalently, Q is semisymmetric if x(yx)=y for every x, y ∈ Q. A semisymmetric commutative quasigroup is known as totally symmetricindextotally symmetric quasigroup. Totally symmetric quasigroups are precisely quasigroups satisfying xy=x\y = x/y.

- `IsSemisymmetric(` Q`) P`
- `IsTotallySymmetric(` Q`) P`

  A quasigroup Q is idempotentindexidempotent quasigroup if x2=x for every x ∈ Q. Idempotent totally symmetric quasigroups are known as Steiner quasigroupsindexSteiner quasigroup. A quasigroup Q is unipotentindexunipotent quasigroup if x2=y2 for every x, y ∈ Q.

- `IsIdempotent(` Q`) P`
- `IsSteinerQuasigroup(` Q`) P`
- `IsUnipotent(` Q`) P`

  A quasigroup is left distributiveindexleft distributive quasigroup if it satisfies x(yz)=(xy)(xz). Similarly, it is right distributiveindexright distributive quasigroup if it satisfies (xy)z=(xz)(yz). A distributive quasigroup is a quasigroup that is both left and right distributive. A quasigroup is called entropicindexentropic quasigroup or medialindexmedial quasigroup if it satisfies (xy)(zw)=(xz)(yw).

- `IsLeftDistributive(` Q`) P`
- `IsRightDistributive(` Q`) P`
- `IsDistributive(` Q`) P`
- `IsEntropic(` Q`) P`
- `IsMedial(` Q`) P`

  In order to be compatible with GAP's terminology, we also support the synonyms

- `IsLDistributive(` Q`) P`
- `IsRDistributive(` Q`) P`

  for `IsLeftDistributive` and `IsRightDistributive`. respectively.

  ## 6.4 Loops of Bol-Moufang type

  Following Fe and PV, a variety of loops is said to be of Bol-Moufang typeindexloops 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,
  - the variables occur in the same order on both sides.
  It is proved in PV 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 loops , defined 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(yz))x, 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 and middle nuclear square,
  - RC-loops , defined by x((yz)z) = (xy)(zz), always right alternative, right and middle nuclear square,
  - Moufang loops , defined by (xy)(zx) = (x(yz))x, always flexible, left 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 are defined in several ways, by equivalent identities of Bol-Moufang type.

  There are several varieties related to loops of Bol-Moufang type. A loop is said to be alternativeindexalternative loop if it is both left and right alternative, and nuclear squareindexnuclear square loop if it is left, middle and right nuclear square.

  Here are the corresponding LOOPS commands (argument L indicates that the property applies only to loops, argument Q indicates that the property applies also to quasigroups):

- `IsExtraLoop(` L`) P`
- `IsMoufangLoop(` L`) P`
- `IsCLoop(` L`) P`
- `IsLeftBolLoop(` L`) P`
- `IsRightBolLoop(` L`) P`
- `IsLCLoop(` L`) P`
- `IsRCLoop(` L`) P`
- `IsLeftNuclearSquareLoop(` L`) P`
- `IsMiddleNuclearSquareLoop(` L`) P`
- `IsRightNuclearSquareLoop(` L`) P`
- `IsNuclearSquareLoop(` L`) P`
- `IsFlexible(` Q`) P`
- `IsLeftAlternative(` Q`) P`
- `IsRightAlternative(` Q`) P`
- `IsAlternative(` Q`) P`

  While listing the varieties of loops of Bol-Moufang type, we have also listed all inclusions among them. These inclusions are built into LOOPS.

  The following trivial example shows some of the implications and the naming conventions of LOOPS at work:

      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.

  ## 6.5 Power alternative loops

  A loop is left power alternativeindexleft power alternative loop if it is power associative and xn(xm y) = xn+my for every x, y and all integers n, m. Similarly, a loop is right power alternativeindexright power alternative loop if it is power associative and (xyn)ym = xyn+m for all x, y and all integers n, m. A loop that is both left and right power alternative is said to be power alternativeindexpower alternative loop.

  Left power alternative loops are left alternative and have the left inverse property. Left Bol loops and LC-loops are left power alternative.

- `IsLeftPowerAlternative(` L`) P`
- `IsRightPowerAlternative(` L`) P`
- `IsPowerAlternative(` L`) P`

  ## 6.6 Conjugacy closed loops and related properties

  noindentA loop is left (resp. right) conjugacy closedindexleft conjugacy closed loopindexright conjugacy closed loop if its left (resp. right) translations are closed under composition. A loop that is both left and right conjugacy closed is called conjugacy closedindexconjugacy closed loop. It is common to refer to these loops as LCC-, RCC-, CC-loops, respectively.

- `IsLCCLoop(` L`) P`
- `IsRCCLoop(` L`) P`
- `IsCCLoop(` L`) P`

  The equivalence LCC + RCC = CC is built into LOOPS.

  A loop is OsbornindexOsborn loop if it satisfies x(yz· x)=(xλ\y)(zx), where xλ is the left inverse of x. Both Moufang loops and CC-loops are Osborn.

- `IsOsbornLoop(` L`) P`

  ## 6.7 Additional varieties of loops

  A left (resp. right) Bol loop with the automorphic inverse property is known as left (resp. right) Bruck loopindexleft Bruck loopindexright Bruck loop. Bruck loops are also known as K-loopsindexK-loop.

- `IsLeftBruckLoop(` L`) P`
- `IsLeftKLoop(` L`) P`
- `IsRightBruckLoop(` L`) P`
- `IsRightKLoop(` L`) P`

  Steiner loop is an inverse property loop of exponent 2.

- `IsSteinerLoop(` L`) P`

  [Up] [Previous] [Next] [Index]