# do we have any special algorithms or software to find all 2-sylow subgroups of a group?

I am working on a project that involves 2-sylow subgroups of groups,one thing that I need to do is to find all 2-sylow subgroups of a group and check that it is cyclic or not,

now my question is that do we have any special algorithms or software which do this.or do we have somthing like this in maple for example?

because I am not familiar with computer programming ,it will be great if you guide me about this.thanks.

You can do this with GAP. See, for example, this chapter from the GAP tutorial which has examples of calling SylowSubgroup.

For example,

gap> G:=SymmetricGroup(6);
Sym( [ 1 .. 6 ] )
gap> Size(G);
720
gap> Set(Factors(last));
[ 2, 3, 5 ]
gap> H2:=SylowSubgroup(G,2);
Group([ (1,2), (3,4), (1,3)(2,4), (5,6) ])
gap> H3:=SylowSubgroup(G,3);
Group([ (1,2,3), (4,5,6) ])
gap> H5:=SylowSubgroup(G,5);
Group([ (1,2,3,4,5) ])
gap> IsCyclic(H3);
false
gap> IsCyclic(H5);
true


You may start to use GAP in the interactive mode like shown above (see First Session in GAP), and then learn the GAP programming language if you need to automate tasks and implement more algorithms.

Also, GAP includes many data libaries such as e.g. Small Groups library (see also here) which is very useful if you are interested in systematic checking of groups of small orders.

Update: if the Sylow $p$-subgroup is not normal and you're interested in its conjugates, you may obtain them as follows:

gap> IsNormal(G,H3);
false
gap> cs:=ConjugateSubgroups(G,H3);
[ Group([ (1,2,3), (4,5,6) ]), Group([ (1,2,4), (3,5,6) ]), Group([ (1,2,5),
(3,4,6) ]), Group([ (1,2,6), (3,4,5) ]), Group([ (1,3,4), (2,5,6) ]),
Group([ (1,3,5), (2,4,6) ]), Group([ (1,3,6), (2,4,5) ]), Group([ (1,4,5),
(2,3,6) ]), Group([ (1,4,6), (2,3,5) ]), Group([ (1,5,6), (2,3,4) ]) ]


In this particular case, the first group in this list is H3 itself (but this is not guaranteed in general):

gap> Position(cs,H3);
1


Clearly, all subgroups in the conjugacy class of H3 are isomorphic:

gap> IsomorphismGroups(cs[1],cs[2]);
[ (1,2,3), (4,5,6) ] -> [ (1,2,4), (3,5,6) ]

• thanks a lot,it was very useful for me. – kpax Feb 24 '15 at 13:49