> < ^ Date: Fri, 09 Feb 1996 18:44:33 +1553
> < ^ From: Alexander Hulpke <hulpke@math.colostate.edu >
^ Subject: Re: Question on ConjugacyClassesSubgroups

Dear GAP-Forum,

Michael Cherkassoff asked:

I need to do some computations of the conjugacy classes
of certain subgroups in PSL(n,q). (Actually, q=3 would be
enough to look at). I am only interested in Z2+Z2 subgroups.
When I tried to use ConjugacyClassesSubgroups for this
purpose gap can't even handle PSL(5,3):

gap> gg:=ProjectiveSpecialLinearGroup(5,3);;
gap> cc:=ConjugacyClassesSubgroups(gg);;
gap: sorry, cannot extend the workspace, maybe use option '-a <memory>'?

(This was after about half an hour of calculation).

That's no wonder. The order of PSL(5,3) is of magnitude 10^12. Usually
the subgroup lattice computation (which is called from
ConjugacyClassesSubgroups) works only reasonably for groups of size up
to 10^4-10^5. Of course you can find representatives of all subgroups
isomorphic V4 in the 2-Sylow subgroup, but I guess you'll find a lot
of them. Fusing them under operation of the whole group is likely to
be very tedious.

So I suggest the following approach:

Every V4 is generated by two elements of order two. We can conjugate
the group so that the first of these is a class representative. The
second only has to be determined up to conjugacy with the centralizer
of the first. I give an example run:

Create the group (BTW: This is not a GAP library command but a separate
function I sent you some time ago)

gap> g:=ProjectiveSpecialLinearGroup(5,3);
ProjectiveSpecialLinearGroup(5,3)
gap> Size(g);
237783237120

Compute all classes of elements of Order 2. We could use 'ConjugacyClasses'
and 'Filtered'. However there is an internal function that does less work:
For order 2, rational classes are the same as conjugacy classes.

gap> cl:=RationalClassesPElements(g,2);;

We don't want those of 2-power order

gap> cl:=Filtered(cl,i->Order(g,i.representative)=2);;
gap> Length(cl);
2

there are only two classes to consider. As V4 has 3 nontrivial
elements, each V4 contains at least two elements of one of these
classes. So every V4 is generated by two elements of class 1 or two
elements of class 2.

The classes differ in size and the cycle structure of their elements

gap> List(cl,Size);
[ 9801, 882090 ]
gap> List(cl,i->CycleStructurePerm(i.representative));
[ [ 40 ], [ 52 ] ]

We can always conjugate a V4, so that the first generator is one of
the two representatives. Then we can still conjugate the second
generator with the centralizer of the first.

So we just need to consider representatives of centralizer orbits on
the classes. These of course correspond to double cosets:

gap> dc:=DoubleCosets(g,cl[1].centralizer,cl[1].centralizer);;

The corresponding class elements are obtained by conjugacy

gap> r:=List(dc,i->cl[1].representative^i.representative);;

There are 8 reps to consider, but only 2 commute with the first generator.

gap> Length(r);
8
gap> r:=Filtered(r,i->Comm(i,cl[1].representative)=g.identity);;
gap> Length(r);
2

construct the groups

gap> v4:=List(r,i->Subgroup(g,[cl[1].representative,i]));;

and observe that of course <x,x> is only of order 2.

gap> List(v4,Size);
[ 2, 4 ]

so drop it

gap> v4:=v4{[2]};;
gap> List(v4,Size);
[ 4 ]

Now do the same for the second class

gap> dc:=DoubleCosets(g,cl[2].centralizer,cl[2].centralizer);;
gap> r:=List(dc,i->cl[2].representative^i.representative);;
gap> Length(r);
47
gap> r:=Filtered(r,i->Comm(i,cl[2].representative)=g.identity);;
gap> Length(r);
3
gap> v4new:=List(r,i->Subgroup(g,[cl[2].representative,i]));;
gap> List(v4new,Size);
[ 2, 4, 4 ]
gap> v4new:=v4new{[2,3]};;

We only classified generationg sets up to conjugacy. In principle, the
two groups could be conjugated. However a test for the cycle stucture
of their elements shows, that this is not true. (We don't need to
consider the groups generated by class 1/1, as they contain at most
one element of the second class).

gap> List(v4new,i->List(Elements(i),CycleStructurePerm));
[ [ [  ], [ 52 ], [ 52 ], [ 52 ] ], [ [  ], [ 40 ], [ 52 ], [ 52 ] ] ]

So we have (I hope I did no mistyping) 3 classes given by their
representatives

gap> v4:=Concatenation(v4,v4new);;

If you get more than 2 classes with elements of order two, you'll need
to use slightly more elaborate arguments, based on ordering the
classes, than we could use here to avoid duplicates. Otherwise, the
process stays the same.

this and higher dimensional cases. (For example, I'm
pretty sure that there are only 4 different conjugacy classes
of Z2+Z2 in PSL(5,q)).

I will send you the generators of g and v4 by separate mail to
save you recomputation, but I guess the majority of the forum
readers is not interested in them. As you've seen I got only 3
representatives. Are you sure there are always 4 different
classes? In fact I also tried the other approach mentioned and
computed the subgroup lattice of the 2-Sylow-subgroup. This group
has 12 classes of subgroups of type V4, three of them are of cy-
cle structure type [40,40,52], five of type [40,52,52] and four
of type [52,52,52]. All groups of the same cycle structure type
fuse under the action of PSL_5(3), leaving just three classes of
subgroups of PSL_5(3) of type V4 (this computation however is
much slower in GAP 3.4 than the approach suggested above). So I'm
pretty sure there are only 3 classes.

Hope this helps,

Alexander Hulpke


> < [top]