> < ^ 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]