| 1 | initial version |
The method calls GAP's ConjugacyClassesSubgroups to get the conjugacy classes and then GAP's Representative to get a representative of each. This does not have the property you want. For example SymmetricGroup(4).conjugacy_classes_subgroups() includes both $K=\langle (1,3)(2,4)\rangle$ and $L=\langle (3,4), (1,2)(3,4) \rangle$ where a conjugate of $K$ is a subgroup of $L$ but $K$ is not a subgroup of $L$.
See symmetric group: get back conjugacy class from its generators if you want the actual conjugacy classes as GAP objects; you will be able to call the methods Representative() and AsList() on them, and on each subgroup you can also call IsSubgroup(H).
I am not a group theorist but your algorithm seems fine to me.
| 2 | No.2 Revision |
The method calls GAP's ConjugacyClassesSubgroups to get the conjugacy classes and then GAP's Representative to get a representative of each. This does not have the property you want. For example SymmetricGroup(4).conjugacy_classes_subgroups() includes both $K=\langle (1,3)(2,4)\rangle$ and $L=\langle (3,4), (1,2)(3,4) \rangle$ where a conjugate of $K$ is a subgroup of $L$ but $K$ is not a subgroup of $L$.
See symmetric group: get back conjugacy class from its generators if you want the actual conjugacy classes as GAP objects; you will be able to call the methods Representative() and AsList() on them, and on each subgroup you can also call IsSubgroup(H).
I am not a group theorist but your algorithm seems fine to me.
Edit: Maybe I don't have to tell you this but, caveat: being conjugate in a subgroup is a stronger requirement than being conjugate in the full group (because there are fewer elements to conjugate by).
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.