Chapter 6: Racks and quandles

There is general support for one-sided quasigroups in RightQuasigroups. Given GAP conventions (acting on the right), it makes more sense to work with right quasigroups than with left quasigroups.

Racks and quandles are instances of right quasigroups.

  • Classes of racks and quandles
  • Affine right quasigroups
  • Joyce-Blackburn representation and enumeration
  • Displacement groups

Racks and quandles

  • A groupoid is a rack if all right translations are automorphisms of .
  • An idempotent rack is a quandle.
  • A rack is connected if acts transitively on .
  • A rack is homogeneous if acts transitively on .
  • A rack is latin if also all left translations are bijections. Note: A latin rack is a quandle since , now cancel on the left.
  • A rack is faithful if is injective.

Permutational racks

  • permutational rack: for some .
gap> PermutationalRack( 10, (3,4,5) );
<rack of size 10>
gap> Q := PermutationalRack( 100000, (1,100000), ConstructorStyle( false, true ) );
<rack of size 100000>
gap> Q[1]*Q[2];
r100000

Affine right quasigroups

There is no standard definition of affine right quasigroup. Here are some of the arithmetic forms of affine right quasigroups recognized by RQ:

  • for four integers such that and , with multiplication

  • , where F is a field, f is a nonzero element of F and g, c are elements of F, with multiplication

  • , where is an abelian group, is an automorphism of , is an endomorphism of , and , with multiplication

  • , where is a loop, is an automorphisms of , is an endomorphisms of and , with multiplication

Affine right quasigroups (constructors)

  • modulo
gap> IsAffineRightQuasigroupArithmeticForm( 10, 3, 5, 1 ); # (3*x+5*y+1) mod 10
true
gap> Q := AffineRightQuasigroup( 10, 3, 5, 1 );
<right quasigroup of size 10>
  • on a loop
gap> G := AutomorphicLoop( 10, 1 );; # inner mappings are automorphisms
gap> f := AsRightQuasigroupMapping( G, LeftInnerMapping( G, G.2, G.3 ) );;
gap> g := f*f;; u := G.1;; v := G.2;;
gap> IsAffineQuasigroupArithmeticForm( G, u, f, v, g ); # (u*x^f)*(v*y^g)
true
gap> Q := AffineQuasigroup( G, u, f, v, g ); 
<quasigroup of size 10>

Affine racks and quandles

  • over a finite field
gap> F := GF(9);; f := 2*Z(9);; g := Z(9)+One(F);; c := Zero(F);;
gap> AffineRack( F, f, g, c ); 
<latin quandle of size 9>
  • on a cyclic group

Note: is a quandle iff and

gap> G := CyclicGroup(5);; f := Elements( AutomorphismGroup( G ) )[2];
[ f1 ] -> [ f1^2 ]
gap> AffineQuandle( G, f );
<latin quandle of size 5>

More constructors

  • dihedral quandle:
gap> DihedralQuandle( n );
  • core of a group or right Bol loop:
gap> CoreOfRightBolLoop( Q );
  • conjugation quandle:
gap> ConjugationQuandle( G, m )

All homogeneous quandles

Theorem: (Joyce, Galkin)
Every homogeneous quandle is of the form with multiplication
, where is a group, , such that for all .

gap> G := SymmetricGroup( 4 );; H := Subgroup( G, [(1,2)] );;
gap> f := Filtered( AutomorphismGroup( G ), g -> (1,2)^g = (1,2) )[3];
^(3,4)
gap> Q := GalkinQuandle( G, H, f );
<quandle of size 12>

All racks and quandles: Joyce-Blackburn representation

Theorem: (Blackburn)
The triple is a rack (resp. quandle) envelope if

  • is a permutation group,
  • is a set of orbit representatives of ,
  • is a collection of elements of such that (resp. ) for every , and .
    There is a one-to-one correspondence between rack (resp. quandle) envelopes and racks (resp. quandles).

One quandle envelope

gap> env :=[ Group([ (1,3,2)(7,8) ]),
  [ 1, 4, 5, 6, 7, 9, 10 ], 
  [ (), (), (1,2,3), (1,3,2)(7,8), (1,2,3), (1,3,2)(7,8), (1,3,2)(7,8) ]
];
gap> Q := QuandleByQuandleEnvelope( env );
<quandle of size 10>

Racks and quandles up to isomorphism

r(n): 1 2 6 19 74 353 2080 16023 159526 2093244 36265070 836395102 25794670618

  • small racks up to order 10 are in the library
gap> SmallRack( 10, 123456 );

q(n): 1 1 3 7 22 73 298 1581 11079 102771 1275419 21101335 469250886

  • small quandles up to order 11 are in the library
gap> SmallQuandle( 11, 999999 );

Displacement groups

There are various displacement groups associated with (right) quasigroups, for instance:

Theorem: A quasigroup is isotopic to a group iff acts regularly on , in which case is isotopic to .

gap> IsIsotopicToGroup( Q );;
gap> IsIsotopicToAbelianGroup( Q );;