From Groupprops
Jump to: navigation, search
This article is about a GAP function.


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.


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

Examples of usage

Here is a simple usage example:

gap> G := SmallGroup(840,152);
<pc group of size 840 with 6 generators>
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));
<group of size 840 with 4 generators>
gap> IsSolvable(G);
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
<compiled or corrupted call value>  called from
<function>( <arguments> ) 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));
<pc group of size 840 with 6 generators>
brk> HallSubgroup(K,[2,3]);
Group([ f1, f4, f5, f6 ])