Hello,
I have written some functions to detect Frobenius groups. Perhaps using
Complementclasses is not optimal, but this function should work...
Best wishes,
Juergen Klueners
==========================================================================
PermutationGroupIsFrobenius:=function(g)
#Tests, if the given permutation group is a Frobenius group in its given
#permutation representation..
local g1, n;
if not IsTransitive(g) then return false;fi; n:=NrMovedPoints(g); g1:=Stabilizer(g,1); if Set(List([2..n],j->Size(Intersection(g1,Stabilizer(g,j)))=1))=[true] then return true; fi; return false; end;
IsHall:=function(G,N)
if Gcd(Size(G)/Size(N),Size(N)) = 1 then return true;fi; return false; end;
IsFrobenius:=function(g)
#Tests, if the (abstract) group is a Frobenius group
local N, a, H, U;
N:=NormalSubgroups(g);
N:=Filtered(N,x->IsNilpotent(x));
N:=Filtered(N,x->Size(x)>1);
N:=Filtered(N,x->IsHall(g,x));
for a in N do
H:=Complementclasses(g,a)[1];
U:=Operation(g,RightCosets(g,H),OnRight);
if PermutationGroupIsFrobenius(U) then
return true; #U is the right permutation group
fi;
od;
return false;
end;