# [GAP Forum] simple groups

Thomas Breuer thomas.breuer at math.rwth-aachen.de
Fri Oct 17 09:27:08 BST 2008

```Dear GAP Forum,

Alex Trofimuk had asked how one can compute the p-ranks of the Sylow p
subgroups in some sporadic simple groups,
and meanwhile Jack Schmidt, Joe Bohanon, and John McKay have answered
this question and have given useful hints such as
- reducing the problem to subgroups containing a Sylow p subgroup P
for the interesting p,
- factoring by normal subgroups contained in the Frattini subgroup of P, and
- switching to more suitable representations when computing explicitly
with groups.

1. Jack sketched that in the case of the Sylow 2 subgroup of the Lyons
group Ly, one can instead consider a maximal subgroup of odd index in Ly,
and one possibility is a group called 2.A11 in the Atlas of Finite Groups
(p. 174).
In principle, Jack is right that this notation can be used for both the
double cover of A11 and the direct product of A11 with a cyclic group of
order two, according to the conventions on p. xx of the Atlas.
However, most likely the Atlas would write a direct product as 2 x A11,
and indeed Ly does not have a subgroup isomorphic with A11.
An easy way to show this in GAP is to check whether the character tables

gap> t:= CharacterTable( "Ly" );;
gap> s:= CharacterTable( "A11" );;
gap> PossibleClassFusions( s, t );
[  ]

2. One could alternatively use character tables instead of groups for the
computations.
Suppose that we are interested in the p-rank of a Sylow p subgroup P
of a group G, and that we know the character table of a subgroup H of G
such that P is normal in H.
Then the p-rank of P can be computed from the character table of H
(using the irreducible characters and the p-th power map of H),
for example with the following GAP function.

RankOfNormalSylowPSubgroupFromCharacterTable:= function( tbl, p )
local Psize, classes, Pclasses, Pprimeclasses, Frat;

# Determine the classes that form the normal Sylow p subgroup P
# of the whole group H.
Psize:= First( Collected( Factors( Size( tbl ) ) ), x -> x[1] = p );
if Psize = fail then
return 0;
elif Psize[2] = 1 then
return 1;
fi;
Psize:= Psize[1]^Psize[2];
classes:= SizesConjugacyClasses( tbl );
Pclasses:= First( ClassPositionsOfNormalSubgroups( tbl ),
x -> Sum( classes{ x } ) = Psize );
if Pclasses = fail then
# The Sylow p subgroup is not normal.
return fail;
fi;

# Determine the H-classes that form the derived subgroup P' of P.
# By Clifford's theorem, this set of classes is the intersection of
# kernels of all those irreducible characters of H
# whose degrees are coprime to p.
Pprimeclasses:= Intersection( List( Filtered( Irr( tbl ),
x -> x[1] mod p <> 0 ),
ClassPositionsOfKernel ) );

# The Frattini subgroup Frat(P) of P is the normal closure (in P)
# of P' and the p-th powers of elements in P.
# Since Frat(P) is normal in H,
# we can compute the H-classes that form the normal closure w.r.t. H.
Frat:= ClassPositionsOfNormalClosure( tbl,
Union( Pprimeclasses, PowerMap( tbl, p ){ Pclasses } ) );

# The p-rank is the dimension of P / Frat(P).
return LogInt( Sum( classes{ Pclasses } ) / Sum( classes{ Frat } ), p );
end;

The point is that several character tables of Sylow normalizers of
sporadic simple groups are available in GAP's library of character tables.
With the current GAP, one gets for example the following.

gap> for name in AllCharacterTableNames( IsSporadicSimple, true ) do
>      t:= CharacterTable( name );
>      n:= CharacterTable( Concatenation( name, "N2" ) );
>      if n = fail then
>        Print( name, ": fail\n" );
>      else
>        Print( name, ": ",
>          RankOfNormalSylowPSubgroupFromCharacterTable( n, 2 ), "\n" );
>      fi;
>    od;
B: fail
Co1: fail
Co2: 5
Co3: 4
F3+: fail
Fi22: fail
Fi23: fail
HN: fail
HS: 3
He: 4
J1: 3
J2: 3
J3: 3
J4: fail
Ly: 3
M: fail
M11: 2
M12: 3
M22: 3
M23: 3
M24: 4
McL: 3
ON: 3
Ru: 3
Suz: 4
Th: 4

All the best,
Thomas

```