CCalculating Subgroups with
GAP
Alexander Hulpke
Department of Mathematics, Colorado State University, 1874 Campus Delivery,Fort Collins, CO, 80523-1874, USA,
Abstract.
We survey group-theoretic algorithms for finding (some orall) subgroups of a finite group and discuss the implementation of thesealgorithms in the computer algebra system
GAP . One of the earliest questions posed for the development of grouptheoretic algorithms has been the determination of the subgroups ofa finite group G , as well as the associated lattice structure.Since G acts on its subgroups an obvious storage improvement isto store the subgroups as conjugacy classes, representing each classby a subgroup U and a transversal of coset representatives of N G ( U )in G .The purpose of this article is to survey the methods that arecurrently in use for such computations, not with an aim to supersedethe original descriptions [Neu60,Hul99,CCH01,Hul13a] or to give animplementable description, but to given an overview of the methodsemployed. This should allow the reader to understand the interplayof the methods employed, computational tools required, scope ofcalculations, and potential for adaption or modifications by users.On the way we will indicate a number of open problems, whosesolution would lead to improvements of theoretical or practical as-pects of the algorithms.While we shall point to the GAP functions that implement therespective functionality, we shall stop short of printing transcriptsof system sessions, instead the reader is referred to the system doc-umentation.Neither is this paper intended as a complete survey of Computa-tion Group theory over its history of at least 60 years. We thus donot aim to cite every relevant work, but give preference to handbooksor summary articles that are often easier accessible. a r X i v : . [ m a t h . G R ] D ec Alexander Hulpke
We will illustrate the scope of calculations by assuming a con-temporary (as of 2017) standard desktop machine with a 3.5GHzprocessor (utilizing just a single core) and 8GB of memory.
In general we will represent a subgroup S of the finite group G bya set of generators, given as elements of G . One may think of G as the group containing all transformations of a given kind — forexample in the case of permutations a symmetric group S n or eventhe finitary symmetric group on positive integers. Similarly, in thecase of matrices this group might be the full general linear group.We thus need methods that allow us to determine for such asubgroup S : – The order of S . – Test whether an element of G is contained in S , and if so: – Express an element of S as a word in the given generators of S ,thus enabling us to evaluate homomorphisms. – Write a presentation for S in a given generating set, thus testingwhether a map on generators is a homomorphism. (In practiceone often does not use an arbitrary generating set, but a specificone that allows for a nicer presentation.) – Determine a composition series, a chief series and the radicalRad( G ) (the largest solvable normal subgroup) of G , as well as arepresentation of G/ Rad( G ) as a permutation or matrix group.For permutation groups, such functionality is obtained through astabilizer chain [HEO05, Chapter 4], respectively [Ser03]. For matrixgroups, such functionality is provided by the data structure of acomposition tree [BHLGO15,NS06]. These tools can be extended togroups of other classes of invertible transformations of a finite objectusing the “black-box” paradigm [BBS09].For solvable groups, polycyclic generating sets (that is a set ofgenerators that is adapted to a composition series and allows foran effective normal form) provide such functionality [LNS84], seealso [HEO05, Chapter 8]. alculating Subgroups with GAP For solvable groups, polynomial time algorithms are known for all ofthese tasks.For permutation groups, the known algorithms are proven to bepolynomial time, as long as no composition factor of type G ( q )occurs (in which case the result will still be correct, but the timebound is not known to hold.). In fact, the algorithms are almostlinear (linear up to logarithmic factors) time in a Las Vegas proba-bilistic setting (see 1.2 below). Open Problem 1
Show that the groups G ( q ) have a short pre-sentation in the sense of [BGK + The complexity situation for matrix groups [BBS09] is as withpermutation groups with one further complication: GL n ( q ) containscyclic subgroups (Singer cycles) of order q n −
1, and calculationsin these groups are equivalent to Discrete Logarithm problems. Theproven complexity is therefore also up to a Discrete Logarithm ”or-acle”, that is the cost of discrete logarithm calculations is not ac-counted for.These polynomial time algorithms for solvable and for permu-tation groups have been fully implemented in
GAP and in
Magma .The available implementations for the matrix group algorithms in-volve many, but not all, of the polynomial time methods. The reasonfor this is that there are number of algorithms for subtasks that per-form better in practice than the generic black-box algorithm, but sofar no proof of polynomial time has been found.Arbitrary finitely presented groups will require the use of a faith-ful representation in one the respresentations discussed before.
Some of the algorithms utilize random selections of elements. It thusseems appropriate to briefly address this issue.First, on the computer random selection is always based on arandom number generator, and thus is inherently pseudo-random.
Alexander Hulpke
Secondly, once we can test membership of elements, the underly-ing data structures allow us to construct a bijection between G andthe numbers 1 , . . . , | G | and thus select elements of the same randomquality as the random number generator provides.Some of the functions to build basic data structures also uti-lize pseudo-random elements which are obtained as pseudo-randomproducts of generators and inverses [CLGM + <ε <
1, terminate in the given time. However with probability 1 − ε the calculation will take longer (but will eventually terminate witha correct result). Building on these tools, a number of mid-level tools obtain structuralgroup-theoretic information: – For S ≤ G , representatives of the cosets of S in G [DM88]. – The centralizer C G ( g ) of elements g ∈ G as well as conjugat-ing elements x that for given g, h ∈ G satisfy g x = h (if theyexist). (For permutation groups this is a backtrack search, fol-lowing [Leo91]). – The normalizer N G ( S ) of a subgroup S ≤ G as well as conju-gating elements x that for given S, T ≤ G satisfy that S x = T [Leo97]. – Representatives of the conjugacy classes of elements of G [MN89,CS97,Hul00,CH06,Hul13b]. – Representatives of Sylow subgroups of G for a chosen prime. – For a normal subgroup N (cid:67) G , representatives of the G -classes ofcomplements to N in G , provided that N is solvable [CNW90].This algorithm is based on cohomomology through a presentationfor G/N .If
G/N is solvable, complements can be computed in a combina-tion of cohomology and reduction to subgroups [Hul13a]. alculating Subgroups with
GAP – Determine an effective isomorphism between two groups G and H (or show that no such isomorphism can exist) [O’B94,CH03].These algorithms are typically not of polynomial, but exponentialworst case time complexity. However in most cases of practical in-terest they tend to work well, allowing for them to be used as buildingblocks for larger calculations. The basic structure underlying most subgroup calculations and theone we shall use is based on the solvable radical (or trivial fitting )paradigm [BB99,Hol97,CS97], as depicted in Figure 1:Let G be a finite group, R = Rad( G ) and ϕ : G → G/R =: F .Then S = Soc( F ) = (cid:81) T i must be the direct product of nonabeliansimple groups T i . We thus can assume that F is represented as asubgroup of Aut(Soc( F )); that is as a subgroup of a direct productof groups of the form Aut( T i ) (cid:111) S m i for T i simple and (cid:80) i m i thenumber of simple factors of S .The action of F on the socle factors has a kernel denoted by P ker , the factor
P ker/S is a direct product of subgroups of outerautomorphisms. We denote by S and P ker the full preimages ofthese subgroups in G .We now determine subgroups in the following way.1. Subgroups of the simple socle factors T i .2. Combine these to subgroups of Soc( F ).3. Calculate the subgroups of F/ Soc( F ) (which will be a muchsmaller group than F ).4. Extend the subgroups of Soc( F ) to subgroups of F by using thesubgroups of F/ Soc( F ).5. Determine a series of normal subgroups R = R > R > R > · · · > R k = (cid:104) (cid:105) with R i (cid:67) G and R i /R i +1 elementary abelian.6. Determine subgroups of G/R i +1 from subgroups of G/R i (ini-tialized for i = 0 with G/R = F ) and the G -module action on R i /R i +1 . Iterate. Meaning that it, and its inverse can be applied to group elements to obtain theimage Alexander Hulpke
GRR R 〈 〉 S T T F 〈 〉 T T T T SPkerPker naturalhomomorphism
Fig. 1.
Subgroups related to the solvable radical data structure
Typically we will store not all subgroups of a group G , but onlyrepresentatives of the conjugacy classes under G , since this savessubstantially on the memory requirements. This enumeration up toconjugacy can be translated for each of these steps to conjugacy un-der suitable actions. For example in step 1 it is conjugacy by thesubgroup of Aut( T i ) induced through the action of N F ( T i ). Findingrepresentatives up to conjugacy can in general mean that we haveto do explicit subgroup conjugacy tests. In some steps of the algo-rithm (say when calculating complements by cohomological meth-ods) such tests can be preempted or reduced by using other equiva-lences amongst the objects constructed.In the following more detailed description we shall focus on thetask of finding all groups rather than the elimination of conjugates.Methods similar to section 4.1 can then be used to determine theincidence structure of the full subgroup lattice. We now describe the different steps of the algorithm in more detail: alculating Subgroups with
GAP A fundamental paradigm of the approach is to work in homomorphicimages. This raises the question of how to represent factor groupsof G in a suitable way. While this is difficult in general, for theparticular factor groups required here effective solutions exist: – It has been shown [LS97,Hol97] that for permutation groups G ,the factor G/ Rad( G ) can be (constructively) represented withpermutation degree not exceeding that of G . (In GAP this is a callto
NaturalHomomorphismByNormalSubgroup(G,RadicalGroup(G)) .More generically, the special structure of G/ Rad( G ) as a sub-group of a direct product of wreath products allows for a repre-sentation of moderate degree, using imprimitive wreath products. – By Schreier’s conjecture (as proven in [Fei80]), for a simple group T the factor Aut( T ) /T is small. Thus F/ Soc( F ) (which embedsinto a direct product of groups of the form (Aut( T i ) /T i ) (cid:111) S m i ) iscomparatively small and can be easily represented in an ad-hocway. – In many cases it is not necessary to represent a factor group
G/N faithfully, but it is sufficient to use representatives of elementsand full preimages of subgroups. In particular, we can use thisto perform linear algebra with coefficient vectors for the abelianfactors R i /R i +1 of the radical.The question of the minimal permutation degree of factor groupsof permutation groups has been studied also theoretically, and onecan ask for other classes of normal subgroups for which such degreebounds hold: Open Problem 2
Extending the work of [EP88], describe (con-structively) cases in which for permutation groups or matrix groups G and N (cid:67) G one can represent the factor group G/N in degree notexceeding that of G . Step 1 (from page 5) asks us to determine the subgroups of a simplegroup T . Alexander Hulpke
The basic method for this is the “cyclic extension” algorithm,dating back to [Neu60]: A subgroup S ≤ T is either perfect, orthere is a smaller subgroup S (cid:48) ≤ U < S such that S = (cid:104) U, n (cid:105) with n ∈ N G ( U ). Thus:a) Initialize the perfect subgroups of T . This requires a precomputedlist of isomorphism types of perfect groups such as [HP89] forgroups of order at most 10 . (By now, due to the rapid progressin computer engineering, the same methods would allow us tobuild such lists for larger orders.)Then, in an approach close to isomorphism test algorithms, searchfor isomorphic copies of each of these groups as subgroups of T .In GAP such a list is obtained using the operation
RepresentativesPerfectSubgroups .b) For every subgroup U listed so far, classify the U -orbits of ele-ments of N G ( U ) outside U . If for an orbit representative n thegroup (cid:104) U, n (cid:105) is not yet known (i.e. not conjugate to a knowngroup) then add it to the list. Iterate.To allow for an efficient storage/comparison of subgroups, the al-gorithm maintains a list of cyclic subgroups of prime power order(called zuppos by their German acronym ). It then represents everysubgroup as a bit list indicating which zuppos it contains.Simple groups tend to have relatively few subgroups, enabling thecalculation of subgroups even for large group orders. The assumedstandard computer will calculate the subgroups of a simple groupof order 10 in under a minute, order 10 about 5-10 minutes and(provided the potential perfect subgroups are available) order 10 about 90 minutes. (This is assuming that the group is given as apermutation group of minimal degree.)The algorithm of course also will work for groups that are notsimple, but in this case is often not competitive.In GAP , this algorithm is implemented by the command
LatticeByCyclicExtension .In practice, we can (using this algorithm) create a database ofsubgroups of simple groups T up to a certain order limit once, andthen store them. If the algorithm then is called for one of these simplegroups, one then simply can fetch subgroups from the database. “Zyklische Untergruppen von Primzahl-Potenz Ordnung”alculating Subgroups with GAP GAP does exactly this, the databases used to obtain subgroup in-formation is the library of tables of marks, provided by the tomlib package (which will be loaded automatically, if available). As of writ-ing, this library contains full subgroup data for most of the simplegroups in the ATLAS of order roughly up to 10 . Some informationabout maximal subgroups of symmetric and alternating groups isalso obtained through the library of primitive groups.This approach requires an isomorphism between the concretesimple group T and its incarnation D in the database. Such anisomorphism can be facilitated in many cases through the use ofso-called standard generators [Wil96]: For a simple group T , this isa pair of elements a, b ∈ T such that: – T = (cid:104) a, b (cid:105) . (By [AG84] every finite simple group can be generatedby two elements.) – The pair ( a, b ) (that is its Aut( T )-orbit) is characterized by simplerelations, such as orders of a and b or short product expressionsin a and b , or T -class memberships of a and b . This implies thatif T ∼ = T ∼ = T an isomorphism T → T is obtained by findinginstances of standard generators a , b ∈ T and a , b ∈ T andconstructing the homomorphism that maps a to a and b to b . – In a given instance of T , such a pair ( a, b ) can be found quicklyby only using basic group operations such as product and inverse(thus allowing for pseudo-random elements) and element order.A typical property achieving this is if the elements lie in smallconjugacy classes that are powers of large conjugacy classes: A(pseudo-)random element will likely lie in a large class, by power-ing we get an element in the small class and only few conjugatesto consider.For example | a | = 2, | b | = 3, | ab | = 5 could be used as such agenerating set for A .Such standard generators have been defined for all sporadic groupsand many groups of Lie type of small order. Open Problem 3
Generalize “standard generators” to all quasisim-ple groups of Lie type.
The concept of standard generators can be generalized to con-structive recognition , that is the task to find an isomorphism from a simple group T to its stored database incarnation D , without relyingon the need to find specific generators, but rather “rebuilding” nat-ural combinatorial structures from within the group. For example,if the group T is a matrix group isomorphic to A n , one might wantto find a subspace of the natural module that has an orbit of length n under T , thus providing such an isomorphism through the actionon the subspaces in the orbit. See the survey [DLGO15] for formaldefinitions and details. Step 2 combines the subgroups of direct factors to those of a directproduct. By induction it is sufficient to consider the case of a directproduct of two groups, G × H . Let S ≤ G × H and denote theprojection from S to G by α and that from S to H by β . The imagegroups A = S α and B = S β then are subgroups of G , respectively H . Given such subgroups A and B , the construction of a subdirectproduct (which dates back at least to [Rem30]) then allows to con-struct all groups S (see Figure 2): S 〈 〉〈 〉 ker β ker α EB B/E 〈 〉 DA 〈 〉〈 〉 A/D ββ β σαααρ χ
Fig. 2.
Subdirect product construction
Denote by D (cid:67) A the image of ker β under α and by E (cid:67) B theimage of ker α under β . Then by the isomorphism theorem A/D ∼ = S/ (cid:104) ker α, ker β (cid:105) ∼ = B/E. alculating Subgroups with
GAP If χ : A/D → B/E is this isomorphism, and we denote the naturalhomomorphisms by (cid:37) : A → A/D and σ : B → B/E , then S = { ( a, b ) ∈ G × H | a ∈ A, b ∈ B, ( a (cid:37) ) χ = b σ } . To construct all subdirect products S corresponding to the pair A, B , we thus classify pairs of normal subgroups D (cid:67) A , E (cid:67) F together with isomorphisms χ : A/D → B/E .Conjugacy of subgroups by N G ( A ) × N G ( B ) will induce equiv-alences on the normal subgroups and amongst the isomorphisms.In the case we consider – subgroups of Soc( F ) – furthermorethere may be a conjugation action of F on the direct factors of itssocle that causes further fusion of subgroups. In steps 4 and 6 of the calculation, we have a normal subgroup N (cid:67) G and know the subgroups of G/N as well as the subgroups of N . (Instep 6 the normal subgroup N is a vector space whose subgroups areeasily enumerated.) From these we want to construct the subgroupsof G .We first analyze the situation: Let S ≤ G and set A = (cid:104) N, S (cid:105) and B = S ∩ N (cid:67) B . (See Figure 3, left.) S NBA 〈 〉 G S NB A 〈 〉 N N (B)N A (B)N G (B) G Fig. 3.
Complement situations for subgroups2 Alexander Hulpke
A) Abelian Normal subgroup
We consider first the case that N isabelian (which arises in step 6). Then B (cid:67) N and thus B (cid:67) (cid:104) S, N (cid:105) = A .Thus S/B is a complement to
N/B in A/B . As
N/B is elemen-tary abelian, such complements can be obtained through cohomolog-ical methods, following [CNW90]. The input to such a computationis the linear action of A on N/B , together with a presentation for
A/N .To find all subgroups of G , we iterate through all A (as subgroupsof G/N ) and for each A determine candidates for B as submodulesof N under the action of A [LMR94].As step 6 then iterates over a series, a crucial step towards effi-ciency is to extend a presentation for A/N to a presentation for S , if S/B is such a complement. This is easy, as B is elementary abelian. B) Nonabelian Normal subgroup If N is not abelian (as it will bein step 4), the situation is more complicated, as B is not neces-sarily normal in A , and there is no algorithm to easily determinecomplementing subgroups. In this case, following [Hul13a], we iter-ate through the possible subgroups B ≤ N and for each such B determine the groups S such that S ∩ N = B :As N ≤ (cid:104) N, S (cid:105) = A , we have that N N ( B ) ≤ N A ( B ) = (cid:104) S, N N ( B ) (cid:105) ≤ N G ( B ). Furthermore, N G ( B ) /N N ( B ) is isomorphic to a subgroup of G/N . (See Figure 3, right.) In this situation
S/B is a complementto N N ( B ) /B in N A ( B ) /B .Given a subgroup B ≤ N , we thus determine the subgroupsof N G ( B ) /N N ( B ) (e.g. from the subgroups of G/N ) and for eachsubgroup N A ( B ) /N N ( B ) determine the candidates for S/B as com-plements. If N N ( B ) /B is solvable, this again can be done using co-homology calculations.The group N N ( B ) /B does not need to be solvable – if the factorgroup however is solvable (which will be the case unless Soc( F ) con-tains a single simple factor at least quintuply, in which case there willbe storage problems already for the subgroups of Soc( F )), [Hul13a]describes an approach for complements that reduces to p -groups,corresponding to a chief series of the factor. alculating Subgroups with GAP GAP contains a function
ComplementClassesRepresentatives( G , N ) that determines representatives of the classes of complements to N in G , up to conjugacy by G , provided that N or G/N are solvable.In the case that neither G and G/N are solvable, no algorithmfor complements exists yet:
Open Problem 4
Find a good algorithm for determining comple-ments if both normal subgroup and factor groups are not solvable.This also has relevance to maximal subgroup computations [CH04]. In GAP the algorithm described in the previous sections (with somevariants depending on the representation of the groups) is obtainedthrough the operation
ConjugacyClassesSubgroups . It takes as ar-gument a group and returns a list of conjugacy classes of subgroups.For each class
Representative will return one subgroup;
AsList applied to a class will return all subgroups in this class, thus
Concatenation(List(ConjugacyClassesSubgroups(G),AsList)); returns all subgroups of a group G . In general such an enumerationof all subgroups is not recommended as it is very costly in terms ofmemory.It is also possible to visualize the full lattice of subgroups of agroup G . For this, the command DotFileLatticeSubgroups(LatticeSubgroups(G),"filename.dot"); produces a text file, called filename.dot (or whatever file name isgiven) that describes the incidence structure of the subgroup latticein the graphviz format (see for a descriptionand for viewer programs for this format. There also are programsto convert this format into others, e.g. dot2tex converts to
TikZ or PSTricks format.Figure 4 illustrates the result in the example of the symmetricgroup S . Rectangles represent normal subgroups, circles ordinarysubgroups and their conjugates. A number a − b indicates groupnumber b in class a (there is no b -part if the group is normal, as itwill default to b = 1). Fig. 4.
Subgroup Lattice for S (produced using DotFileLatticeSubgroups and then visualized using the graphicssoftware
OmniGraffle ) This group can be obtained in
GAP then as cl[ a ][ b ] (that is cl[8][3] for a = 8 and b = 3) where cl:=ConjugacyClassesSubgroups(G) . Caveat:
The ordering (both a and b -parts) of subgroups can in-volve ad-hoc choices within the algorithm. When creating the group G a second time with the same generators, it is possible that a dif-ferent numbering is chosen. It thus is not safe to use the a − b indicesfor specifying a concrete subgroup outside a particular run of GAP . With the construction process proceeding through layers, in eachstep proceeding through all subgroups found in the previous step,the limiting factor to calculation is (as timings in [Hul13a] indicate)the total number of subgroups, rather than the group order.If only some subgroups are desired, and calculation of the fulllattice is infeasible, it might be possible to restrict the calculationsto certain subgroups, as long as a filter can be defined that is appro-priate to the construction process and will iterate the constructiononly for subgroups with certain properties. (For example, the cyclic alculating Subgroups with
GAP extension algorithm might be instructed to not calculate subgroupslarger than a prescribed limit.)At the moment, GAP provides options to define such filters in afew cases (see the manual for details): – The general algorithm, as described, is implemented by the op-eration
LatticeViaRadical . If given two groups as argument itcalculates subgroups of the second group up to conjugacy by thefirst group. – LatticeByCyclicExtension allows for limiting the extension stepto subgroups with a particular property. – SubgroupsSolvableGroup , an implementation of the algorithmdescribed for the case of solvable groups (in which case only step 6is needed) allows to limit the determination of complements tospecified cases, depending on properties of A , N and B . – In a different restriction,
SubgroupsSolvableGroup also allowsfor determination of only those subgroups that are fixed (as sub-groups) under a prescribed set of automorphisms, generalizingthe concept of submodules [Hul99].
A different class of algorithms is obtained by considering maximalsubgroups.If M ≤ G is a maximal subgroup, the action of G on the cosetsof M is primitive. The classification of primitive groups under thelabel O’Nan-Scott theorem [Sco80] (see [LPS88] for a full proof withcorrections) thus can be used to describe possible maximal subgroups– one needs to search for quotient groups of G that have the correctstructure to allow a primitive action, the point stabilizers for theseactions will be maximal subgroups.An approach to determine representatives of the conjugacy classesof maximal subgroups of a finite group, using this idea, is describedin [EH01,CH06]. The fundamental ingredients of these calculationsagain are the simple factors of Soc( F ), and complements.Taking again a series as described in Section 2, the algorithmthen identifies factor groups of G that can have a faithful primitive representation. This is done via the socle of these subgroups, that ischief factors (or combinations of chief factors) of G : – Maximal subgroups intersecting the radical lead to primitive ac-tions of affine type and thus are obtained as complements. Thisis the only case of a solvable socle. – Nonsolvable chief factors are obtained as part of Soc( F ). Isomor-phisms between the simple factors can be used to construct thedifferent types of primitive actions, according to the diagonal andproduct action cases of the O’Nan-Scott theorem. – The base case is maximal subgroups of simple groups, for whichclassifications exist in [KL90] and (far more explicitly) [BHRD13].
Open Problem 5
Extend the concrete classification of maximal sub-groups in [BHRD13] to larger degrees.
As in the case of using stored tabulated information about sub-groups, an explicit isomorphism needs to be found using constructiverecognition or standard generators.In
GAP , representatives of the classes of maximal subgroups canbe obtained using the function
MaximalSubgroupClassReps . (Beaware that while
MaximalSubgroups also exists, it will enumerate all maximal subgroups, often at significant cost.) Again tabulatedinformation about maximal subgroups of simple groups is used.
The maximal subgroup functionality can be used to determine themaximal subgroups of a subgroup, thus obtaining maximal inclusion.(This also is used in general to provide the maximality relationsrequired for the subgroup lattice structure.)Iterating maximal subgroups can be used to find subgroups thathave bounded index [CHSS05], or simply to iterate the computationof maximal subgroups for all subgroups obtained so far to find sub-groups that are k -step maximal in G . To reduce the cost it will benatural to fuse conjugates under the action of the whole group.In GAP , such latter functionality will be provided (starting withthe 4.9 release) by a function
LowLayerSubgroups that for a givengroup G and step limit k determines the subgroups of G , up to alculating Subgroups with GAP conjugacy, that are at most k -step maximal in G . It is possible tolimit the calculation to obtain only subgroups of specified boundedindex.A further variant is to determine the intermediate subgroups U IntermediateSubgroups (again this will see a significant performance improvement with the4.9 release). We have described the various methods that can be used in GAP todetermine the subgroups of a given finite group. Different approachesprovide different options to adapt the calculation. The methods alsorely on a significant framework for basic operations that is essentiallyinvisible to a user who does not look into the inner workings. Whilea calculation of subgroups is mostly limited by the size of the out-put set, there are still open research problems whose solution wouldimprove this (and other) group theoretic algorithms. Acknowledgment The author’s work has been supported in part by Simons FoundationCollaboration Grant 244502. References AG84. M. Aschbacher and R. Guralnick. Some applications of the first cohomol-ogy group. J. Algebra , 90(2):446–460, 1984.BB99. L´aszl´o Babai and Robert Beals. A polynomial-time theory of black boxgroups. I. In C. M. Campbell, E. F. Robertson, N. Ruskuc, and G. C.Smith, editors, Groups St Andrews 1997 in Bath , volume 260/261 of Lon-don Mathematical Society Lecture Note Series , pages 30–64. CambridgeUniversity Press, 1999.8 Alexander HulpkeBBS09. L´aszl´o Babai, Robert Beals, and ´Akos Seress. Polynomial-time theory ofmatrix groups. In Proceedings of the 41st Annual ACM Symposium onTheory of Computing, STOC 2009, Bethesda, MD, USA , pages 55—-64.ACM Press, 2009.BGK + 97. L´aszl´o Babai, Albert J. Goodman, William M. Kantor, Eugene M. Luks,and P´eter P. P´alfy. Short presentations for finite groups. J. Algebra ,194:97–112, 1997.BHLGO15. Henrik B¨a¨arnhielm, Derek Holt, C. R. Leedham-Green, and E. A. O’Brien.A practical model for computation with matrix groups. J. Symbolic Com-put. , 68(part 1):27–60, 2015.BHRD13. John N. Bray, Derek F. Holt, and Colva M. Roney-Dougal. The maximalsubgroups of the low-dimensional finite classical groups , volume 407 of London Mathematical Society Lecture Note Series . Cambridge UniversityPress, Cambridge, 2013. With a foreword by Martin Liebeck.BP04. L´aszl´o Babai and Igor Pak. Strong bias of group generators: an obstacleto the “product replacement algorithm”. J. Algorithms , 50(2):215–231,2004. SODA 2000 special issue.CCH01. John Cannon, Bruce Cox, and Derek Holt. Computing the subgrouplattice of a permutation group. J. Symbolic Comput. , 31(1/2):149–161,2001.CH03. John Cannon and Derek Holt. Automorphism group computation andisomorphism testing in finite groups. J. Symbolic Comput. , 35(3):241–267, 2003.CH04. John Cannon and Derek Holt. Computing maximal subgroups of finitegroups. J. Symbolic Comput. , 37(5):589–609, 2004.CH06. John J. Cannon and Derek F. Holt. Computing conjugacy class represen-tatives in permutation groups. J. Algebra , 300(1):213–222, 2006.CHSS05. John J. Cannon, Derek F. Holt, Michael Slattery, and Allan K. Steel.Computing subgroups of bounded index in a finite group. J. SymbolicComput. , 40(2):1013–1022, 2005.CLGM + 95. Frank Celler, Charles R. Leedham-Green, Scott H. Murray, Alice C.Niemeyer, and E. A. O’Brien. Generating random elements of a finitegroup. Comm. Algebra , 23(13):4931–4948, 1995.CNW90. Frank Celler, Joachim Neub¨user, and Charles R. B. Wright. Some remarkson the computation of complements and normalizers in soluble groups. Acta Appl. Math. , 21:57–76, 1990.CS97. John Cannon and Bernd Souvignier. On the computation of conjugacyclasses in permutation groups. In Wolfgang K¨uchlin, editor, Proceedingsof the 1997 International Symposium on Symbolic and Algebraic Compu-tation , pages 392–399. The Association for Computing Machinery, ACMPress, 1997.DLGO15. Heiko Dietrich, C. R. Leedham-Green, and E. A. O’Brien. Effective black-box constructive recognition of classical groups. J. Algebra , 421:460–492,2015.DM88. John D. Dixon and Abdul Majeed. Coset representatives for permutationgroups. Portugal. Math. , 45(1):61–68, 1988.EH01. Bettina Eick and Alexander Hulpke. Computing the maximal subgroupsof a permutation group I. In William M. Kantor and ´Akos Seress, editors, Proceedings of the International Conference at The Ohio State Univer-sity, June 15–19, 1999 , volume 8 of Ohio State University MathematicalResearch Institute Publications , pages 155–168, Berlin, 2001. de Gruyter.alculating Subgroups with GAP Bull. Austral. Math. Soc. , 38:207–220,1988.Fei80. Walter Feit. Some consequences of the classification of finite simple groups.In The Santa Cruz Conference on Finite Groups (Univ. California, SantaCruz, Calif., 1979) , volume 37 of Proc. Sympos. Pure Math. , pages 175–181. Amer. Math. Soc., Providence, R.I., 1980.FK97. Larry Finkelstein and William M. Kantor, editors. Groups and Computa-tion II , volume 28 of DIMACS: Series in Discrete Mathematics and The-oretical Computer Science , Providence, RI, 1997. American MathematicalSociety.HEO05. Derek F. Holt, Bettina Eick, and Eamonn A. O’Brien. Handbook of Com-putational Group Theory . Discrete Mathematics and its Applications.Chapman & Hall/CRC, Boca Raton, FL, 2005.Hol97. Derek F. Holt. Representing quotients of permutation groups. Quart. J.Math. Oxford Ser. (2) , 48(191):347–350, 1997.HP89. Derek F. Holt and W. Plesken. Perfect groups . Oxford University Press,1989.Hul99. Alexander Hulpke. Computing subgroups invariant under a set ofautomorphisms. J. Symbolic Comput. , 27(4):415–427, 1999. (IDjsco.1998.0260).Hul00. Alexander Hulpke. Conjugacy classes in finite permutation groups viahomomorphic images. Math. Comp. , 69(232):1633–1651, 2000.Hul13a. Alexander Hulpke. Calculation of the subgroups of a trivial-fitting group.In ISSAC 2013—Proceedings of the 38th International Symposium onSymbolic and Algebraic Computation , pages 205–210. ACM, New York,2013.Hul13b. Alexander Hulpke. Computing conjugacy classes of elements in matrixgroups. J. Algebra , 387:268–286, 2013.Hul17. Alexander Hulpke. Finding intermediate subgroups. Portugal. Math. ,74(3), 2017.KL90. Peter Kleidman and Martin Liebeck. The subgroup structure of the finiteclassical groups , volume 129 of London Mathematical Society Lecture NoteSeries . Cambridge University Press, Cambridge, 1990.Leo91. Jeffrey S. Leon. Permutation group algorithms based on partitions, I:theory and algorithms. J. Symbolic Comput. , 12:533–583, 1991.Leo97. Jeffrey S. Leon. Partitions, refinements, and permutation group compu-tation. In Finkelstein and Kantor [FK97], pages 123–158.LMR94. Klaus Lux, J¨urgen M¨uller, and Michael Ringe. Peakword Condensationand Submodule Lattices: An Application of the Meat-Axe. J. SymbolicComput. , 17:529–544, 1994.LNS84. Reinhard Laue, Joachim Neub¨user, and Ulrich Schoenwaelder. Algorithmsfor finite soluble groups and the SOGOS system. In Michael D. Atkin-son, editor, Computational group theory (Durham, 1982) , pages 105–135.Academic press, 1984.LPS88. Martin W. Liebeck, Cheryl E. Praeger, and Jan Saxl. On the O’Nan-Scotttheorem for finite primitive permutation groups. J. Austral. Math. Soc.Ser. A , 44:389–396, 1988.LS97. Eugene M. Luks and ´Akos Seress. Computing the fitting subgroup andsolvable radical for small-base permutation groups in nearly linear time.In Finkelstein and Kantor [FK97], pages 169–181.0 Alexander HulpkeMN89. M. Mecky and J. Neub¨user. Some remarks on the computation of conju-gacy classes of soluble groups. Bull. Austral. Math. Soc. , 40(2):281–292,1989.Neu60. Joachim Neub¨user. Untersuchungen des Untergruppenverbandes endlicherGruppen auf einer programmgesteuerten elektronischen Dualmaschine. Numer. Math. , 2:280–292, 1960.NS06. Max Neunh¨offer and ´Akos Seress. A data structure for a uniform approachto computations with finite groups. In ISSAC 2006 , pages 254–261. ACM,New York, 2006.O’B94. E. A. O’Brien. Isomorphism testing for p -groups. J. Symbolic Comput. ,17:133–147, 1994.Rem30. Robert Remak. ¨Uber die Darstellung der endlichen Gruppen als Unter-gruppen direkter Produkte. J. Reine Angew. Math. , 163:1–44, 1930.Sco80. Leonard L. Scott. Representations in characteristic p . In Bruce Coop-erstein and Geoffrey Mason, editors, The Santa Cruz conference on fi-nite groups , volume 37 of Proc. Sympos. Pure Math. , pages 318–331,Providence, RI, 1980. American Mathematical Society. Corrigendum in[LPS88].Ser03. ´Akos Seress. Permutation Group Algorithms . Cambridge University Press,2003.Wil96. Robert A. Wilson. Standard generators for sporadic simple groups.