[loops] 7 Testing properties of quasigroups and loops

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

# 7 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`.

## 7.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 associative (resp. diassociative) if every monogenic subloop of L (resp. every 2-generated subloop of L) is a group.

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

  ## 7.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.

  ## 7.3 Some properties of quasigroups

  A quasigroup Q is semisymmetric 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 symmetric. Totally symmetric quasigroups are precisely quasigroups satisfying xy=x\y = x/y.

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

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

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

  A quasigroup is left distributive if it satisfies x(yz)=(xy)(xz). Similarly, it is right distributive if it satisfies (xy)z=(xz)(yz). A distributive quasigroup is a quasigroup that is both left and right distributive. A quasigroup is called entropic or medial 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.

  ## 7.4 Loops of Bol-Moufang type

  Following Fe and PhVo, 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,
  - the variables occur in the same order on both sides.
  It is proved in PhVo 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(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 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 alternative if it is both left and right alternative, and nuclear square 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.

  ## 7.5 Power alternative loops

  A loop is left power alternative 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 alternative 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 alternative.

  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`

  ## 7.6 Conjugacy closed loops and related properties

  noindentA loop is left (resp. right) conjugacy closed if its left (resp. right) translations are closed under conjugation. A loop that is both left and right conjugacy closed is called conjugacy closed. 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 Osborn 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`

  ## 7.7 Additional varieties of loops

  An (even) code loop is a Moufang 2-loop with Frattini subloop of order 1 or 2. Code loops are extra and conjugacy closed.

- `IsCodeLoop(` L`) P`

  Steiner loop is an inverse property loop of exponent 2. Steiner loops are commutative.

- `IsSteinerLoop(` L`) P`

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

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

  A loop whose all left (resp. middle, right) inner mappings are automorphisms is called a left (resp. middle, right) automorphic loop. A loop whose every inner mapping is an automorphism is known as an automorphic loop. Diassociative automorphic loops are Moufang by KiKuPh. See the built-in filters for additional properties of automorphic loops.

- `IsLeftAutomorphicLoop(` L`) P`
- `IsMiddleAutomorphicLoop(` L`) P`
- `IsRightAutomorphicLoop(` L`) P`
- `IsAutomorphicLoop(` L`) P`

  Automorphic loops have historically been called A-loops. We therefore support the synonyms

- `IsLeftALoop(` L`) P`
- `IsMiddleALoop(` L`) P`
- `IsRightALoop(` L`) P`
- `IsALoop(` L`) P`

  Be careful not to confuse `IsALoop` and `IsLoop`.

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