# Is there any function in GAP finding all maximal elementary abelian subgroup of a $p$-group $P$?

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$$?

• 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. Apr 11, 2021 at 16:52
• Yes, you understand it correctly. Apr 11, 2021 at 18:28

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.

• 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. Apr 11, 2021 at 18:34
• Is there any nice book for GAP which you can suggest me? Apr 11, 2021 at 18:36
• Some resources, and links to further collections of other resources are here - of course including books by @ahulpke. Apr 11, 2021 at 19:11
• Thank you again. Apr 11, 2021 at 20:01
• Why the function reps:=List(MaximalSubgroupsLattice(lat));; create an error? to find the maximal ones? Apr 23, 2021 at 10:02