OFFSET
1,3
COMMENTS
See the Wikipedia link for "Medial" for definitions. This article also contains the Bruck-Toyoda theorem which characterizes medial quasigroups in terms of abelian groups.
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.
Wikipedia, Medial
MAPLE
a:=proc(n)
if n = 1 then
return 1;
else
return MAGMA:-Enumerate(n, 'medial', 'quasigroup');
end if;
end proc;
PROG
(GAP) # gives the number of medial quasigroups over SmallGroup(n, k)
LoadPackage("loops");
MQ := 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];
if f*g=g*f then count := count + 1; fi;
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;
# David Stanovsky, Nov 12 2015
CROSSREFS
KEYWORD
nonn,hard,mult
AUTHOR
W. Edwin Clark, May 30 2013
EXTENSIONS
a(9)-a(63) from David Stanovsky, Nov 12 2015
STATUS
approved