1 minute read

How can we quickly get all Sylow subgroups of a given group?

To compute Sylow subgroups we have the function SylowSubgroup, but this function returns only one Sylow subgroup. How can we quickly get them all? Here is an answer:

> S3 := Sym(3);
> P := SylowSubgroup(S3,2);
> { P^x : x in S3 };
{
    Permutation group acting on a set of cardinality 3
    Order = 2
        (1, 3),
    Permutation group acting on a set of cardinality 3
    Order = 2
        (1, 2),
    Permutation group acting on a set of cardinality 3
    Order = 2
        (2, 3)
} 

Possibly faster: conjugate the Sylow subgroup computed by each element of a (right) transversal of the Sylow. Here is the code:

> t := Transversal(S3,P);
> { P^x : x in t };
{
    Permutation group acting on a set of cardinality 3
    Order = 2
        (1, 3),
    Permutation group acting on a set of cardinality 3
    Order = 2
        (1, 2),
    Permutation group acting on a set of cardinality 3
    Order = 2
        (2, 3)
}    

Alternatively, we can also use the function Conjugates.

> Conjugates(S3,P);
{
    Permutation group acting on a set of cardinality 3
    Order = 2
        (1, 3),
    Permutation group acting on a set of cardinality 3
    Order = 2
        (1, 2),
    Permutation group acting on a set of cardinality 3
    Order = 2
        (2, 3)
}