![]() | 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=⟨(1,3)(2,4)⟩ and L=⟨(3,4),(1,2)(3,4)⟩ 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=⟨(1,3)(2,4)⟩ and L=⟨(3,4),(1,2)(3,4)⟩ 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).