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
There is no standard definition of affine right quasigroup. Here are some of the arithmetic forms of affine right quasigroups recognized by RQ:
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>
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>
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>
Note:
gap> G := CyclicGroup(5);; f := Elements( AutomorphismGroup( G ) )[2];
[ f1 ] -> [ f1^2 ]
gap> AffineQuandle( G, f );
<latin quandle of size 5>
gap> DihedralQuandle( n );
gap> CoreOfRightBolLoop( Q );
gap> ConjugationQuandle( G, m )
Theorem: (Joyce, Galkin)
Every homogeneous quandle is of the form
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>
Theorem: (Blackburn)
The triple
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>
r(n): 1 2 6 19 74 353 2080 16023 159526 2093244 36265070 836395102 25794670618
gap> SmallRack( 10, 123456 );
q(n): 1 1 3 7 22 73 298 1581 11079 102771 1275419 21101335 469250886
gap> SmallQuandle( 11, 999999 );
There are various displacement groups associated with (right) quasigroups, for instance:
Theorem: A quasigroup
gap> IsIsotopicToGroup( Q );;
gap> IsIsotopicToAbelianGroup( Q );;