Computer science professor, self-taught abstract algebraist. Beginner with GAP and SAGE.

Can someone show me the quickest way to, when given the description of a subgroup of S6, obtain its presentation in terms of permutations?

I've found this as a resource that lists all S6 subgroups: http://schmidt.nuigalway.ie/subgroups/s6.pdf

and read the various group Wikis. Also read this: Subgroups of $S_6$

Currently messing around with GAP and SAGE. Not yet convinced either of them will do what I want.

Basically, I am looking for the smallest permutation subgroup of S6 that has a certain property. Getting them in the right form isn't hard for subgroups of small order, but it gets tougher as they get larger. At the moment, I look at (say) the subgroups of order 18, of which if I understand the literature correctly there are two up to isomorphism. I find their presentation, and then have to try various things to get the elements as members of S6. For example, if I'm understanding things correctly, after a lot of work I was able to represent S3 x Z3 as (a,b,c) of order 6, (d,e,f) of order 3, a^2 = b^c = c^2, a^4=b^4=c^4, a=(1 2)(3 4 5), b=(1 6)(3 4 5), c=(2 6)(3 4 5), d=(1 2 6)(3 4 5), e=(1 6 2)(3 4 5), f=(1 2 3). At least, I hope that's what I did :-).

This is hit-or-miss, there's got to be a better way. As a bonus, I want to choose representations where every number appears at least once in at least one of the elements if such a representation can be found. For example, the obvious representation of S5 wouldn't suffice, since that set of permutations would never permute 6.

Grateful for any pointers, things to read, commands in GAP or SAGE, etc. Relative newcomer to group theory, apologies if I'm missing something well-known in the field. Thank you!


  • 3
    $\begingroup$ Welcome to Math.SE! Please use MathJax. For some basic information about writing math at this site see e.g. basic help on mathjax notation, mathjax tutorial and quick reference, main meta site math tutorial and equation editing how-to. $\endgroup$ – GNUSupporter 8964民主女神 地下教會 Apr 17 at 15:17
  • 1
    $\begingroup$ Isn't it simpler to view $S_3 \times \Bbb Z_3 \subseteq S_6$ as generated by $(1~2), (1~3)$, and $(4~5~6)$? $\endgroup$ – Robert Shore Apr 17 at 15:48
  • $\begingroup$ Are you sure about there being only two isomorphism classes of subgroups of order 18? I think there are three. $\endgroup$ – ancientmathematician Apr 17 at 16:18
  • $\begingroup$ There is no one presentation of a group; in fact, due to Tietze transformations, there are infinitely many. You could try altering the application of TzGoGo(P) for each P given by the low index subgroup search whose command name escapes me. $\endgroup$ – Shaun Apr 17 at 16:22
  • 1
    $\begingroup$ I think you want to use representation rather than presentation (which has a particular technical meaning). $\endgroup$ – ahulpke Apr 17 at 18:02

Here we use Sage, but Sage calls GAP for all these computations so one might prefer to work directly in GAP.

Define the symmetric group on 6 elements:

sage: S = SymmetricGroup(6)
sage: S
Symmetric group of order 6! as a permutation group

Give the symmetric group on 6 elements a shorter name:

sage: S.rename('S_6')
sage: S

Build the list of its subgroups:

sage: GG = S.subgroups()

How many subgroups:

sage: len(GG)

Some subgroups:

sage: GG[0]
Subgroup generated by [()] of (S_6)
sage: GG[1]
Subgroup generated by [(5,6)] of (S_6)
sage: GG[1200]
Subgroup generated by [(1,2,4), (1,5)(2,3)(4,6)] of (S_6)

Sort them by order:

sage: from collections import defaultdict
sage: subgroups_of_order = defaultdict(list)
sage: for G in GG:
....:     subgroups_of_order[G.order()].append(G)

Count by order:

sage: from six import iteritems
sage: how_many_of_order = dict((n, len(L))
....:     for n, L in iteritems(subgroups_of_order))
sage: how_many_of_order
{1: 1,
 2: 75,
 3: 40,
 4: 255,
 5: 36,
 6: 280,
 8: 255,
 9: 10,
 10: 36,
 12: 150,
 16: 45,
 18: 50,
 20: 36,
 24: 90,
 36: 30,
 48: 30,
 60: 12,
 72: 10,
 120: 12,
 360: 1,
 720: 1}

Explore subgroups of order 18:

sage: how_many_of_order[18]
sage: subgroups_of_order[18]
[Subgroup generated by [(2,3)(5,6), (1,3,2), (1,3,2)(4,5,6)] of (S_6),
 Subgroup generated by [(1,6,5), (1,6)(3,4), (1,6,5)(2,3,4)] of (S_6),
 Subgroup generated by [(2,6,5), (2,6)(3,4), (1,3,4)(2,6,5)] of (S_6),
 Subgroup generated by [(3,6,5), (2,4), (1,2,4)(3,6,5)] of (S_6),
 Subgroup generated by [(2,3), (1,5,4), (1,5,4)(2,3,6)] of (S_6),
 Subgroup generated by [(2,5,4), (1,3), (1,3,6)(2,5,4)] of (S_6)]

Pick one and list it:

sage: G = subgroups_of_order[18][2]
sage: G
Subgroup generated by [(2,6,5), (2,6)(3,4), (1,3,4)(2,6,5)] of (S_6)
sage: G.list()

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.