7
$\begingroup$

I have a permutation group $G$, a subgroup of $S_{81}$, defined by a set of 6 specific permutations.

This permutation group has order 2592, and 54 Conjugacy Classes.

I can obtain a class representative for each with $ConjugacyClasses(G)$, but I would also like to get a complete list of the members for each class.

I confess to not having any background in group theory, so am having trouble getting this info from the GAP documentation, so would appreciate some guidance here.

$\endgroup$
6
  • 1
    $\begingroup$ As gap-system.org/Manuals/doc/ref/chap39.html#X7B2F207F7F85F5B8 says, AsList works for a conjugacy class, and for a group of order 2592, you should not have problems calling AsList(c) for a class c. $\endgroup$ Jan 13, 2018 at 22:03
  • $\begingroup$ Sorry Alex, I'm having problems. I can't seem to get from the list of conjugacy classes (representatives) for $G$ to listing any individual class! Can you provide an example? $\endgroup$
    – Jim White
    Jan 14, 2018 at 1:18
  • $\begingroup$ Ok, I found that $L := ConjugacyClasses(G); Display(L[4]);$ seems to work! $\endgroup$
    – Jim White
    Jan 14, 2018 at 3:04
  • $\begingroup$ It seems that $L$ here is a set of "class objects" which can't be accessed as normal lists. cf Chapter 72 of Gap Manual. $\endgroup$
    – Jim White
    Jan 14, 2018 at 4:08
  • $\begingroup$ By the time I realised that $Display(L[k])$ in fact produced the same output for each $k$, you had kindly answered with a clear example below, thank you very much! $\endgroup$
    – Jim White
    Jan 15, 2018 at 13:39

1 Answer 1

11
$\begingroup$

Let's create some group as an example:

gap> G:=Group((1,9,6,7,5)(2,10,3,8,4), (1,10,7,8)(2,9,4,6));
Group([ (1,9,6,7,5)(2,10,3,8,4), (1,10,7,8)(2,9,4,6) ])

It has 8 conjugacy classes of elements:

gap> cc:=ConjugacyClasses(G);
[ ()^G, (3,4,9,7)(5,8,6,10)^G, (3,5,9,6)(4,10,7,8)^G, (3,9)(4,7)(5,6)(8,10)^G,
  (2,3,9)(4,10,5)(6,8,7)^G, (1,2)(3,4,5,10,9,7,6,8)^G, 
  (1,2)(3,7,5,8,9,4,6,10)^G, (1,2,3,7,6)(4,8,5,9,10)^G ]
gap> Length(cc);
8

Let's take the 2nd of them:

gap> c:=cc[2];
(3,4,9,7)(5,8,6,10)^G

It contains 180 elements:

gap> Size(c);
180

and you can test membership of group elements in the conjugacy class as follows:

gap> (3,7,9,4)(5,10,6,8) in c;
true
gap> (3,7,6,8) in c;
false

Conjugacy class is not internally represented as a list of its elements - that would be very inefficient (for example, for algorithms that need only representatives of conjugacy classes). But if you need to get a list if all elements of the class, you can get them as follows:

gap> AsList(c);
[ (3,4,9,7)(5,8,6,10), (3,7,9,4)(5,10,6,8), (2,6,9,10)(4,7,8,5), 
  (2,10,9,6)(4,5,8,7), (2,10,7,5)(3,6,8,9), (2,5,7,10)(3,9,8,6), 
  (2,3,6,7)(4,9,10,8), (2,7,6,3)(4,8,10,9), (2,9,5,4)(3,8,10,7), 
  ...
  (1,9,6,10)(3,7,4,8), (1,10,6,9)(3,8,4,7), (1,3,4,10)(5,6,8,9), 
  (1,10,4,3)(5,9,8,6), (3,8,9,10)(4,5,7,6), (3,10,9,8)(4,6,7,5) ]

This may be very memory inefficient for large groups, but you can also iterate over its elements as follows:

gap> for x in c do
> Print(x,"\n");
> od;
( 3, 4, 9, 7)( 5, 8, 6,10)
( 3, 7, 9, 4)( 5,10, 6, 8)
...
( 3, 8, 9,10)( 4, 5, 7, 6)
( 3,10, 9, 8)( 4, 6, 7, 5)

without constructing the whole list, and also use enumerator which will give you a list-like behaviour:

gap> enum:=Enumerator(c);
<enumerator of (3,4,9,7)(5,8,6,10)^G>
gap> enum[2];
(3,7,9,4)(5,10,6,8)
gap> Position( enum, (3,7,9,4)(5,10,6,8) );
2
gap> Position( enum, (3,7,6,8) );
fail

also without constructing the whole list.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .