GAP:HallSubgroup

Function type
HallSubgroup is a GAP function that takes in two arguments, the first one being a group and the second one being a number, and outputs a group.

Behavior
The behavior is as follows:


 * If the first argument is a finite solvable group (i.e., it is both finite and solvable) and is specified in terms of a polycyclic series rather than as a permutation group, and the second argument is a list $$\pi$$ of primes, the function returns a $$\pi$$-Hall subgroups of the group.
 * If the first argument is not stored in the form of a polycyclic series, then the function returns a NoMethodFound error. Note that this error could occur even if the group is a finite solvable group. One indirect way of replacing a finite solvable group with an isomorphic group stored as a polycyclic series is using the GAP:IdGroup and GAP:SmallGroup functions in composition.

Related functions

 * GAP:SylowComplement
 * GAP:SylowSubgroup

Examples of usage
Here is a simple usage example:

gap> G := SmallGroup(840,152);  gap> H := HallSubgroup(G,[2,5]); Group([ f1, f2, f5, f6 ]) gap> IdGroup(H); [ 40, 10 ]

Here is a more complicated example involving a finite solvable group that is not stored in terms of a polycyclic series, and how the problem is overcome using GAP:SmallGroup and GAP:IdGroup.

gap> G := DirectProduct(SymmetricGroup(4),CyclicGroup(35));  gap> IsSolvable(G); true gap> HallSubgroup(G,[2,3]); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 3rd choice method found for `HallSubgroupOp' on 2 arguments called from  called from called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> K := SmallGroup(IdGroup(G));  brk> HallSubgroup(K,[2,3]); Group([ f1, f4, f5, f6 ])