> < ^ Date: Wed, 11 Oct 2000 18:50:27 +0200 (MET DST)
^ From: Juergen Klueners <klueners@iwr.uni-heidelberg.de >
< ^ Subject: Re: Frobenius

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;


> < [top]