OFFSET
1,3
COMMENTS
A quasigroup (G,*) is called central if it admits an affine representation over an abelian group (G,+), that is, if x*y = f(x)+g(y)+c where f,g are automorphisms of (G,+) and c in G.
LINKS
David Stanovsky, Table of n, a(n) for n = 1..63
David Stanovský and Petr Vojtechovský, Central and medial quasigroups of small order, arxiv preprint arXiv:1511.03534 [math.GR], 2015.
PROG
(GAP) # gives the number of central quasigroups over SmallGroup(n, k)
LoadPackage("loops");
CQ := function( n, k )
local G, ct, elms, inv, A, f_reps, count, f, Cf, O, g_reps, g, Cfg, W, unused, c, Wc;
G := SmallGroup( n, k );
G := IntoLoop( G );
ct := CayleyTable( G );
elms := Elements( G );
inv := List( List( [1..n], i -> elms[i]^(-1) ), x -> x![1] );
A := AutomorphismGroup( G );
f_reps := List( ConjugacyClasses( A ), Representative );
count := 0;
for f in f_reps do
Cf := Centralizer( A, f );
O := OrbitsDomain( Cf, A );
g_reps := List( O, x -> x[1] );
for g in g_reps do
Cfg := Intersection( Cf, Centralizer( A, g ) );
W := Set( [1..n], w -> ct[w][ inv[ ct[w^f][w^g] ] ] );
unused := [1..n];
while not IsEmpty( unused ) do
c := unused[1];
count := count + 1;
if Size(W) = Length(unused) then
unused := [];
else
Wc := Set( W, w -> ct[w][c] );
Wc := Union( Orbits( Cfg, Wc ) );
unused := Difference( unused, Wc );
fi;
od;
od;
od;
return count;
end;
CROSSREFS
KEYWORD
nonn,hard,mult
AUTHOR
David Stanovsky, Nov 12 2015
STATUS
approved