[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.

Let me add two remarks.

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
   admit a class fusion.

     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



More information about the Forum mailing list