GAP:Finding an automorphism class of subgroups

This article discusses techniques, given a group $$G$$ in GAP, for finding an automorphism class of subgroups, as a list. The different techniques focus on different starting data and specifications.

There are two broad types of initial specifications:


 * No subgroup of $$G$$ in that automorphism class, but a collection of conditions that uniquely determine the automorphism class is given.
 * One subgroup of $$G$$ in that automorphism class is already given explicitly.

We first discuss where no subgroup of $$G$$ in that automorphism class is given, but sufficient conditions are given.

Filtering over all subgroups using isomorphism class of subgroups
One possibility is that all the subgroups isomorphic to the subgroups in that automorphism class are also in that automorphic class, i.e., the subgroups are isomorph-automorphic subgroups. In this case, we abstractly construct a group $$K$$ isomorphic to the subgroups in that isomorphism class, and then we can use the IsomorphicSubgroups function to find all isomorphisms from $$K$$ to subgroups of $$G$$. Next, we can use the List and Image functions to find the list of actual subgroups.

gap> I := IsomorphicSubgroups(G,K);; gap> L := List(I,Image);;

$$I$$ is the list of injective homomorphisms from $$K$$ to $$G$$. $$L$$ is the list of images of these embeddings, which is the desired automorphism class.

Filtering over all subgroups using conditions
Sometimes, IsomorphicSubgroups is unwieldy. Instead, it is easier to test, for a given subgroup, whether it satisfies the condition for being in the isomorphism class. In this case, we can use a combination of Subgroups and Filtered. Note that Subgroups requires the SONATA package. For instance, if we know that the GAP ID of that isomorphism class is $$[8,3]$$, we can write the command as:

Filtered(Subgroups(G),H -> IdGroup(H) = [8,3])

If, for instance, we know that the automorphism class is the unique automorphism class of cyclic groups of order $$36$$, we can do:

Filtered(Subgroups(G),H -> IsCyclic(H) and Order(H) = 36)

In some cases, we may be content with having just one representative of the automorphism class, at least to begin with. For this, it suffices to begin filtering from a list of representatives of conjugacy classes of subgroups. For instance:

Filtered(List(ConjugacyClassesSubgroups(G),Representative),H -> IdGroup(H) = [8,3])

This approach also works for somewhat more complicated uniqueness conditions. For instance, suppose the subgroups in the automorphism class are normal and normal-isomorph-automorphic subgroups, i.e., there are no isomorphic normal subgroups outside that automorphism class. Then, we can run the Filtered function starting with NormalSubgroups (this does not require the SONATA package). So, if we have a unique automorphism class of normal subgroups isomorphic to the dihedral group of degree eight:

Filtered(NormalSubgroups(G), H -> IdGroup(H) = [8,3])

Sometimes, the condition may be on the isomorphism class of the subgroup and the quotient. For instance, there may be a unique automorphism class of normal subgroups with ID $$[8,3]$$ such that the quotient has ID $$[4,1]$$ (so the subgroups are series-isomorph-automorphic subgroups). In this case, that automorphism class can be obtained using:

Filtered(NormalSubgroups(G), H-> IdGroup(H) = [8,3] and IdGroup(G/H) = [4,1])

More complicated conditions may involve computing centralizers, normalizers, and checking such conditions.

Using the action of the automorphism group
It may happen that we have a bunch of conditions that do not uniquely determine an automorphism class of subgroups, but return a bunch of subgroups across two or more automorphism classes. We now want to partition this collection into the different automorphism classes. This requires some techniques mentioned in the next section.