I know how to obtain all subgroups of a group in GAP. Is there any function in GAP (or algorithm that I could implemnt myself) for obtaining all maximal elementary abelian subgroups of a $p$-group $P$?
Asked
Active
Viewed 259 times
1
-
Do you need elementary abelian subgroups which are not contained in a larger elementary abelian subgroup, or do you need maximal subgroups which are elementary abelian? I'd understand the question as the former, but just to check. – Olexandr Konovalov Apr 11 '21 at 16:52
-
1Yes, you understand it correctly. – mesel Apr 11 '21 at 18:28
1 Answers
2
There is no ready-made function that does this. As for implementing it yourself, clearly you can restrict to the $p$-Sylow subgroups. For each such subgroup, you could use the cyclic extension method, restricting to elementary abelian subgroups for extension, to find all elementary abelian subgroups. For example:
gap> g:=PrimitiveGroup(100,4);Size(g);
HS:2
88704000
gap> s:=SylowSubgroup(g,2);
<permutation group of size 1024 with 10 generators>
gap> lat:=LatticeByCyclicExtension(u,IsElementaryAbelian);;
gap> reps:=List(ConjugacyClassesSubgroups(lat),Representative);;
gap> reps:=Filtered(reps,IsElementaryAbelian);; # the filter does not eliminate wrong candidates
gap> List(reps,Size);
[ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 8, 8, 8, 8, 8 ]
Then fuse under the group:
gap> reps:=List(SubgroupsOrbitsAndNormalizers(g,reps,false),x->x.representative);;
gap> List(reps,Size);
[ 1, 2, 2, 4, 4, 4, 4, 8, 8, 8 ]
Finally (testing for conjugacy with maximal subgroups) one could filter out those that are not maximal.

ahulpke
- 18,416
- 1
- 21
- 38
-
Thank you, I was not aware of "LatticeByCyclicExtension". I was planning to do so by checking each subgroup of $P$, which is a very bad algoritihm. – mesel Apr 11 '21 at 18:34
-
-
Some resources, and links to further collections of other resources are here - of course including books by @ahulpke. – Olexandr Konovalov Apr 11 '21 at 19:11
-
-
Why the function reps:=List(MaximalSubgroupsLattice(lat));; create an error? to find the maximal ones? – mesel Apr 23 '21 at 10:02
-
Rightnow I can only check the maximal ones by checking their centrilazer, I hope there is a more efficient way. – mesel Apr 23 '21 at 10:07