Complexity Upper Bounds using Permutation Group

theory

Thesis submitted in partial fulfillment of the degree of

Doctor of Philosophy (Ph.D)

by

Piyush P Kurur

Theoretical Computer Science Group, The Institute of Mathematical Sciences,

Taramani, Chennai 600 113.

University of Madras Chennai 600 005 January, 2006

Declaration

I declare that the thesis entitled Complexity Upper Bounds using Permutation Group theory submitted for the degree of Doctor of Philosophy is the record of the work carried out by me during January 2003 to January 2006 under the guidance of V. Arvind and has not formed the basis for the award of any degree, diploma, associateship, fellowship, titles in this University or any other University or other Institution of Higher learning.

Piyush P Kurur January 13, 2006 Theoretical Computer Science Group, Institute of Mathematical Sciences, Taramani, Chennai 600 113.

Certificate

I certify that the thesis entitled Complexity Upper Bounds using Permutation Group theory submitted for the degree of Doctor of Philosophy by Piyush P Kurur is the record of research carried out by him during January 2003 to January 2006 under my guidance and supervision, and that this work has not formed the basis for the award of any degree, diploma, associateship, fellowship or other titles in this University or any other University or Institution of higher learning.

V. Arvind January 13, 2006 Thesis Supervisor Professor, Theoretical Computer Science Institute of Mathematical Sciences

Acknowledgements

During my stay at IMSc, I was fortunate to be in the company of some wonderful people who have directly or indirectly contributed to this thesis. Firstly I thank Arvind for supervising my work. It was he who introduced me to many of the fascinating topic in Computer Science. Working with him was a great experience in itself. In him I found a great teacher, a friend and a research collaborator. His contribution to this thesis is far more than what I could express in this limited space.

I had the privilege to learn Computer Science and Mathematics through some excellent lectures at IMSc. I thank the group at IMSc, especially Meena Mahajan, R. Ramanujam, Kamal Lodaya and Venkatesh Raman, for this wonderful research environment.

My visit to Germany as part of the DST-DAAD personnel program was a great learning experience for which I am indebted. I had the good fortune to enjoy the hospitality of Johannes Köbler while visiting Humboldt Universität, Berlin under this program. During this period I had a great time visiting Universität Paderborn thanks to Joachim von zur Gathen and Technische Universität Darmstadt thanks to Johannes Buchmann. My visit to Japan in December 2003 was made memorable due to the time I spent at the Tokyo Institute of Technology thanks to Osamu Watanabe.

Many individuals and organisations helped me by funding my research visits. I would like to thank the conference committees of CCC 2002, CCC 2005 (especially Eric Allender and Lance Fortnow) and ANTS VI for their funds that helped me attend these conferences. I thank the National Board of Higher Mathematics (NBHM) and the Indian Association for Research in Computer Sciences (IARCS) for funding some of my research visits.

Finally I would like to thank my friends for making the life in IMSc memorable and entertaining.

Contents

Acknowledgements iii

Notation vi

1 Introduction 1 1.1 Overview of this thesis . . . . . . . . . . . . . . . . . . . . . . 2

2 Complexity theory 7 2.1 Counting complexity classes . . . . . . . . . . . . . . . . . . . 9

3 Group Theory 14 3.1 Permutation Groups . . . . . . . . . . . . . . . . . . . . . . . 17 3.2 Strong generator set . . . . . . . . . . . . . . . . . . . . . . . 18 3.3 Transitivity, Blocks and Primitivity . . . . . . . . . . . . . . . 18 3.4 Structure Tree and Structure Forest . . . . . . . . . . . . . . 21

4 The Graph Isomorphism problem 24 4.1 Group theoretic formulation of Graph Isomorphism problem . 25 4.2 Problems related to Graph Isomorphism . . . . . . . . . . . . 26 4.3 Computing the lex-least element of a Coset . . . . . . . . . . 28 4.4 The FINDGROUP problem . . . . . . . . . . . . . . . . . . . . 29 4.5 The complexity of Graph Isomorphism . . . . . . . . . . . . . 32 4.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

5 Bounded colour multiplicity Graph Isomorphism problem 34 5.1 The Pointwise stabiliser problem . . . . . . . . . . . . . . . . 35 5.2 Characteristic subgroups and Socles . . . . . . . . . . . . . . 38 5.3 Residues and Residual Series . . . . . . . . . . . . . . . . . . 40 5.4 Strong generator set revisited . . . . . . . . . . . . . . . . . . 43

5.4.1 Computing the strong generator set . . . . . . . . . . 45 5.5 The target reduction procedure . . . . . . . . . . . . . . . . . 54

5.5.1 Computing the critical orbits: abelian case . . . . . . 58 5.5.2 Computing the critical orbits: nonabelian case …. 62

5.6 Complexity of BCGI_{b} . . . . . . . . . . . . . . . . . . . . . . . 71 5.7 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

6 Computational Galois theory 73 6.1 Galois theory . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.2 Finite Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.3 Algebraic numbers and number fields . . . . . . . . . . . . . . 76

6.3.1 Ring of Algebraic Integers . . . . . . . . . . . . . . . . 77 6.4 Basic algorithms . . . . . . . . . . . . . . . . . . . . . . . . . 78

6.4.1 Encoding algebraic entities . . . . . . . . . . . . . . . 79 6.4.2 Factoring polynomials and related problems . . . . . . 81 6.4.3 Algorithms for Galois group computation . . . . . . . 82

6.5 Some useful bounds . . . . . . . . . . . . . . . . . . . . . . . 85 6.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

7 Testing nilpotence of Galois group 89 7.1 Computing the fields ℚ_{Δ} . . . . . . . . . . . . . . . . . . . . . 91 7.2 Nilpotence testing for Galois groups . . . . . . . . . . . . . . 95

7.2.1 The nilpotence test . . . . . . . . . . . . . . . . . . . . 99 7.3 Γ_{d}-testing for Galois groups . . . . . . . . . . . . . . . . . . . 102 7.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

8 Chebotarev density theorem and Order finding 106 8.1 Chebotarev density theorem . . . . . . . . . . . . . . . . . . . 107 8.2 Computing the order of the Galois group . . . . . . . . . . . 110 8.3 Computing the order of Galois groups in Γ_{d} . . . . . . . . . . 112 8.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

9 Computing Galois groups 118 9.1 Computing abelian Galois groups . . . . . . . . . . . . . . . . 119 9.2 Computing simple Galois groups . . . . . . . . . . . . . . . . 123 9.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

Bibliography 125

Index 132

Notation

C_{G}(A)  the centraliser of A in G, page 14.
Diag (G_{1} × G_{2}) diagonal subgroup of G_{1} × G_{2}, page 16.
NCL_{G}(A)  the normal closure of A in G, page 14.
Res_{T} (G)  for simple group T the T -residue of G, page 42.
Soc (G)  Socle of G, page 39.
G ⋉ H  semidirect product of G and H, page 15.
G × H  direct product of G and H, page 15.
Sift(g)  The sift of g, page 43.
H ↪ G  H embeds into G, page 14.
H ≤ G, G ≥ H H is a subgroup G.
H < G, G > H H ≤ G and H ≠ G.
[G : H]  the index of H in G for H ≤ G, page 14.
H ⊴ G, G ⊵ H H is a normal subgroup of G.
H ◁ G, G ▷ H H ⊴ G and H ≠ G.
[Σ : Δ]  index of the block Δ in Σ, page 19.
α^{g}  image of α under a permutation g.
B (Σ/Δ)  conjugate blocks of Δ contained in Σ, page 19.
G (Δ)  pointwise stabiliser of Δ.
Sym (Ω)  symmetric group on the set Ω.
G_{Δ}  setwise stabiliser of Δ.
S_{n}  Sym ({1, …, n}).
[L : K]  degree of the extension L/K, page 74.
H (α)  height of the algebraic number α, page 77.
𝕆_{K}  ring of algebraic integers of number field K.
𝔽_{p^{r}}  unique finite field of cardinality p^{r}.
ℚ, ℝ, ℂ  field of rational, real and complex numbers respectively.
N (𝔞),N (α)  norm of the ideal 𝔞 and α𝕆_{K} respectively, page 78.
d_{K}  discriminant of the number field K.
K[X]  polynomials in X with coefficients from K.

K_{f}  splitting field of the polynomial f(X) over K, page 75.
Fix (L, G)  fixed field of L under G, page 76.

Chapter 1

Introduction

Considerable progress has been made recently in the design of efficient algorithms for computational problems in permutation group theory. Many of these results exploit the structure of permutation groups. As permutation groups arise naturally in many computational problems, algorithmic breakthrough in this area often led to progress in solving, at least partially, other computational problems; Graph Isomorphism being a striking example. It is reasonable to expect that these group-theoretic and algorithmic advances would lead to better insights into the complexity of computational problems which are connected to permutation group theory. In this thesis we study Graph Isomorphism and problems that arise in Galois theory. Our aim is to use the structural properties of permutation groups together with other algebraic techniques to prove complexity upper bounds.

Complexity theory is the study of resource bounded computations. Efficiency is measured in terms of the resource required to solve the problem as a function of the input size. Two of the most important measures are the time and space required to solve the problem on a Turing machine. Often problems have a trivial exponential time brute force algorithm that searches for a potential solution in the set of all possible solutions. Such exponential time algorithms are impractical as they take considerable time for solving instances of reasonable sizes. Following the suggestion of Edmonds [25] it is widely accepted that computational problems in P, i.e. problems that are solvable in polynomial time on a deterministic Turing machine, are those that are tractable. This assumption is called the extended Church-Turing hypothesis. The complexity class NP is the class of problems that can be solved on a nondeterministic Turing machine in polynomial time. It is exactly the class of decision problems for which yes instances have polynomial time verifiable certificates. Clearly NP contains the class P but whether this containment is strict is a central open problem in complexity theory.

An important concept in complexity theory is the notion of completeness. A problem P in a complexity class C is said to be complete for C if for any other P′ in C instance of P′ can efficiently reduced to P. Problems complete for a complexity class C are in some sense the hardest problems of C. For the class NP starting with the work of Cook [23] and Levin [45] and subsequently Karp [31] many important computational problems have been show to be complete (see the book of Garey and Johnson [29]). If any of these problems have polynomial time algorithm then P = NP. Hence a problem being NPcomplete is a strong evidence that it has no efficient (i.e. polynomial time) algorithm.

Classifying natural problems by showing it to be complete for a complexity class is an important goal in complexity theory. For a computational problem, proving complexity theoretic upper and lower bounds often requires novel insights into the mathematics underlying the problem. The tight classification of the complexity of the permanent [70], determinant [66, 72] are classic examples. Despite serious efforts many problems still elude such a tight classification.

In this thesis we study the complexity Graph Isomorphism and problems associated with Galois theory with an aim of classifying these in the frame work of complexity theory. A common thread that connects these two is the role of permutation group theory. The structure of permutation groups and the numerous efficient algorithms for permutation group problems play an important role in our results.

Permutation groups, apart from being a source of interesting computational problems, have played important role in algorithms for Graph Isomorphism like for example in the polynomial time algorithm of Luks [46] for bounded valence graphs. Group theory has played important role in various complexity theoretic results. Babai’s [10] AM∩co-AM upper bounds for matrix group problems and Barrington’s [15] group theoretic characterisation of NC^{1} are two classic examples.

1.1 Overview of this thesis

We now give an overview of the thesis. Chapter 2 is a brief survey of the complexity theory required for this thesis and Chapter 3 develops the required group theory. For our results on Galois theory we need some results from algebraic number theory. We describe these in Chapter 6. Our results on Graph Isomorphism and related problems are explained in Chapters 4 and 5. We describe our results on computational problems in Galois theory in Chapters 7, 8 and 9.

Graph Isomorphism

Given two undirected graphs X_{1} = (V_{1}, E_{1}) and X_{2} = (V_{2}, E_{2}) the Graph Isomorphism problem is to check whether X_{1} and X_{2} are isomorphic, i.e. to check whether there is a one-to-one map f : V_{1} → V_{2} such that for every unordered pair {u, v} from V_{1}, {u, v} ∈ E_{1} if and only if {f(u), f(v)} ∈ E_{2}. In this thesis we also study a special case of Graph Isomorphism problem called the bounded colour multiplicity Graph Isomorphism problem, BCGI for short. Given two vertex-coloured graphs X_{1} and X_{2} such that the number of vertices with a given colour is less than a constant b, we want to check whether there is a colour preserving isomorphism, i.e. an isomorphism f from X_{1} to X_{2} such that u ∈ V (X_{1}) and f(u) ∈ V (X_{2}) are of the same colour. We call this problem bounded colour multiplicity graph isomorphism problem, BCGI_{b} for short.

In Chapter 4 we show that the Graph Isomorphism problem is in the complexity class SPP. In fact we prove a more general result: We show that the generic group theoretic problem FINDGROUP is in the complexity class FP^{SPP}. As a consequence many interesting problems in permutation group theory like Graph Isomorphism, Set stabiliser problem and the Hidden subgroup problem over permutation groups are in SPP (or FP^{SPP} for functional problems). Computational problem in SPP (or FP^{SPP} in case they are functional problems) are low for many important complexity classes like ⊕P (in fact Mod_{k}P for all k), C_{=}P etc. Hence by proving the Graph Isomorphism problem to be in SPP we have show it to be low for each of these classes. Earlier it was not even know whether GI was in ⊕P.

In Chapter 5 we prove that BCGI_{b} is in the Mod_{k}L-hierarchy where the constant k and the level of the hierarchy depends only on b. Recently Torán [68] has shown the Graph Isomorphism problem to be hard for various complexity classes. In particular he has proved that BCGI is hard for Mod_{k}L for all k. The graph gadgets that he construct can be used to show the hardness of BCGI for the entire Mod_{k}L-hierarchy [8, Appendix], a stronger result. Our result on BCGI complements his result and gives a fairly tight classification of BCGI in terms of logspace counting classes.

Another consequence of our result is on the parallel complexity of BCGI. Our results improve the NC upper bound of Luks [47] to NC^{2} (even TC^{1}).

Galois theory

Consider a number field K, a field extension of ℚ the field of rational numbers. The Galois group of K, denoted by Gal (K/ℚ), is the group of field automorphisms of K that when restricted to ℚ is identity. For a polynomial f(X) ∈ ℚ[X], the splitting field ℚ_{f} is the smallest extension of ℚ that contains all the roots of f. By the Galois group of f we mean the Galois group Gal (ℚ_{f}/ℚ).

The Galois group of a degree d polynomial f can be thought of as a subgroup of S_{d}, the group of permutations on d objects. This follows from the fact that the Galois group of f is fully specified by giving its action on the roots of f.

Computing the Galois group of a polynomial is a fundamental problem in algorithmic number theory. Often one is interested in verifying whether the Galois group of a polynomial satisfies certain properties instead of actually computing the Galois group. Asymptotically, the best algorithm for computing the Galois group of a polynomial f(X) ∈ ℚ[X] is due to Landau [37] and runs in time polynomial in size (f) and the order of the Galois group of f. Since the Galois group of a polynomial f(X) of degree n can have n! elements, Landau’s algorithm takes exponential-time in the worst case.

Besides being a natural computational problem, knowing the Galois group of a polynomial f or knowing certain properties of the Galois group of f gives information about the roots of f. A classic example is the seminal work of Galois showing that a polynomial f is solvable by radicals if and only if its Galois group is solvable. Thus checking whether a polynomial is solvable by radicals amounts to checking whether its Galois group is solvable and hence has an exponential time algorithm. Landau and Miller [39] gave a remarkable polynomial time algorithm for solvability checking. This algorithm manages to check solvability without actually computing the entire Galois group. This remarkable result gives hope that certain non-trivial properties of Galois groups can be tested efficiently. Chapter 7 deals with such efficiently testable properties of Galois group. We give polynomial time algorithms for nilpotence testing and Γ_{d}-testing.

We generalise the Landau-Miller algorithm and give a polynomial-time algorithm for testing whether the Galois group of a given polynomial is in Γ_{d} for constant d. The class of groups Γ_{d} often crops up in permutation group theoretic problems, e.g. Luks’ polynomial-time algorithm [46] for testing isomorphism of bounded degree graphs.

Even though nilpotent groups are solvable the Landau-Miller solvability test does not give a polynomial time nilpotence test. The Landau-Miller algorithm gives a way to test whether all composition factors of the Galois group are abelian. Nilpotence however is a more “global” property in the sense that it cannot be inferred by knowing the composition factors alone. In Chapter 7 we give a characterisation of nilpotent permutation groups and this characterisation yields a polynomial time nilpotence test.

Many computational problems in algebraic number theory are hard. In the absence of non-trivial upper bounds, conditional results, i.e. results whose validity depends on widely believed yet unproven conjectures of number theory, are of great interest. We now look at complexity theoretic results of this thesis that depend on the validity of the generalised Riemann hypothesis. An important ingredient used in our results is the Chebotarev density theorem, a result on the distribution of primes. For the complexity theoretic applications of this thesis we need an effective version of Chebotarev density theorem due to Lagarias and Odlyzko [35] proved assuming the generalised Riemann hypothesis.

The problem of interest in Chapter 8 is order finding of Galois groups. Given a polynomial f(X) ∈ ℚ[X] we are interested in computing the order of Gal (f) (or equivalently the degree [ℚ_{f} : ℚ] of the extension ℚ_{f}/ℚ). For permutation groups of degree n presented via a generating set, the order can be computed in time polynomial in n. Hence computing the order is no more difficult that computing the Galois group and there is an exponential time algorithm for it. We prove better upper bounds assuming generalised Riemann hypothesis.

Given a polynomial f(X) ∈ ℚ[X] we show that there is a polynomial time algorithm making one query to a #P oracle that computes the order of the Galois group of f [7]. Furthermore using Stockmeyer’s result on approximating #P functions [64], we show that there is a randomised algorithm with NP oracle to approximate the order of the Galois group.

For polynomials with Galois group in Γ_{d}, d a constant, we give a polynomial time reduction from exact order finding to approximate order finding. Thus for polynomials with Galois group in Γ_{d}, d a constant, we have a randomised algorithm with an NP-oracle to compute the order assuming the generalised Riemann hypothesis.

Finally in Chapter 9 we give nontrivial upper bounds on computing the Galois group of some special polynomials. We show that given a polynomial f(X) ∈ ℚ[X] with abelian Galois group, there is a randomised algorithm for computing the Galois group. This we achieve by giving a polynomial time randomised algorithm for sampling almost uniformly from the Galois group of f. The effective version of the Chebotarev density theorem plays a crucial role here. The only nontrivial bound of non-abelian Galois group computation is the following. Given a polynomial f(X) ∈ ℚ[X] such that every irreducible factor g of f has non-abelian simple Galois group of small size, there is a polynomial time deterministic algorithm for computing the Galois group of f. This result uses a special property of non-abelian semisimple groups called Scott’s Lemma (Lemma 3.6) and is unconditional.

Complexity theory

In this chapter we recall the complexity theory required for this thesis. A detailed presentation is available in any standard textbook on complexity theory ([13, 14]). The survey article of Fortnow and Homer [27] gives a historical perspective together with pointers to many important results of complexity theory.

By an alphabet we mean a finite set Σ of letters. A string of length n over an alphabet Σ is a finite sequence x_{1} … x_{n} of letters from Σ. For a string x we will use |x| to denote the length of x. By Σ^{∗} we mean the set of all strings over Σ. We will use ϵ to denote the empty string, the unique string of length 0. A language over Σ is a subset of Σ^{∗}.

A decision problem is a computational problem where we expect a yes/no answer for e.g. the Graph Isomorphism problem. By suitably encoding instances of a problem, any decision problem can be seen as a language over {0, 1}; the language corresponding to a decision problem is the set of encodings of input instances which evaluate to “yes”. We will use the terms language and decision problem interchangeably.

Often computational problem require more than a yes/no answer for e.g. consider the problem of sorting a list of numbers. The functions of interest for us are functions from Σ^{∗} to Σ^{∗}. Again for countable sets A and B by suitable encoding, functions from A to B can be thought of as functions from Σ^{∗} to Σ^{∗}. Computing such functions are called functional problems.

The complexity class P is the class of decision problems that can be solved in time bounded by a polynomial in the size of its inputs on a Turing machine. The class P is robust because Turing machines can simulate other reasonable models of computation with a polynomial time overhead. Moreover, most natural problems that have polynomial time algorithms are tractable in practice. These properties led Edmonds [25] to suggest P as the class of tractable problems and is now widely accepted as the extended Church-Turing hypothesis^{1}. By FP we mean the class of functions from Σ^{∗} to Σ^{∗} that can be computed on a polynomial time bounded Turing machine.

There are certain problems for which a candidate solution can be verified in polynomial time. The complexity class NP captures exactly this. It is the class of problems that can be solved on a nondeterministic Turing machine in polynomial time. Clearly NP contains the class P but whether this containment is strict is a central open problem in complexity theory. Although widely believed that P ≠ NP, the P vs NP conjecture has successfully resisted attempts of resolution till date. This question gained importance after the concept of NP-completeness was formalised due to the seminal work of Cook [23] and Levin [45] which proved that checking satisfiability of boolean formulae, SAT, is NP-complete. Subsequently Karp [31] showed a number of combinatorial problems including clique problem and travelling salesman problem to be NP-complete. A problem being NP-complete is a strong evidence that it has no polynomial time algorithm. The class of NPcomplete problems is particularly important in view of the large number of important problems that it contains. The book of Garey and Johnson [29] gives a through review of NP-completeness and intractability with a list of important NP-complete problems.

Are there problems that are of intermediate complexity in NP? Ladner [34] showed that if P ≠ NP then there are problems that are neither in P nor are NP-complete. It is of interest to know whether there are natural problems of this kind. Graph Isomorphism seems to be one such and is one of the topics of this thesis.

Analogous to the arithmetic hierarchy in computability, Stockmeyer defined the polynomial hierarchy [65]. However, unlike the arithmetic hierarchy, it is not known whether the polynomial hierarchy is infinite. Many interesting problems have been shown to be at different levels of the polynomial hierarchy. Like the working assumption that P ≠ NP, it is widely believed that the polynomial time hierarchy is infinite.

Important subclasses of P are the complexity classes L and NL. The class L consists of problems for which input instance of size n can be solved with O(log n) space on a deterministic Turing machine. Recently, Reingold [57] proved that L contains undirected s-t connectivity problem: given an undirected graph and two nodes s and t check whether there is a path from s to t. As a consequence many problems that involve connectivity in undirected graphs can be solved in logspace. We summarise these results here for use in later chapters.

1Quantum computing is a potential challenge to this hypothesis.

Lemma 2.1 (Reingold). Given a undirected graph, computing the connected components, find a maximal spanning forest etc. can be solved in logspace.

The class NL is the nondeterministic version of L consisting of languages that can be accepted by nondeterministic logspace bounded Turing machines. A complete problem for NL is the directed s-t connectivity problem: given a directed graph and two distinguished points s and t check if there is a path from s to t.

In order to capture complexity classes below P, we need to restrict the oracle access mechanism for nondeterministic and randomised logspace machines. A widely accepted oracle access mechanism is the “Ruzzo-Simon-Tompa” oracle access [58] mechanism in which the oracle machine is restricted to write oracle queries deterministically. In this thesis we will follow this mechanism when we deal with NL oracle machines.

Circuit depth and size gives an elegant way of capturing parallel complexity of a problem. The class AC^{k} consists of polynomial sized circuits of depth O(log^{k} n). If there is an additional constraint that each gate has bounded fanin we get the class NC^{k}. It is known that NC^{k} ⊆ AC^{k} ⊆ NC^{k+1}. The class NC is the union ∪_{k=1}^{∞}NC^{k} and captures problems that have efficient parallel algorithms: problems that can be solved in polylog time on a parallel machine with the number of processors bounded by a polynomial in the input size.

2.1 Counting complexity classes

Counting complexity classes are defined based on the number of accepting and rejecting paths of a nondeterministic computation. Consider the functional problem #SAT of counting the number of satisfying assignments of a boolean formula. Functional problems like #SAT are problems in the complexity class #P. The complexity class #P consists of all functions f from strings to non-negative integers for which there is a NP machine M_{f} such that f(x) is the number of accepting paths of M_{f} on input x. The functions that are complete for #P are hard to compute functions as they directly give a way of solving NP-complete problems. Surprisingly, certain decision problems that have polynomial time algorithms have counting versions that are #P-complete. A classic example is the problem of counting the number of matchings of a bipartite graph. Counting the number of matching in a bipartite graph is equivalent to computing the permanent of a (0, 1)-matrix which was shown to be #P complete by Valiant [70].

The class #P is closed under sum and product However it is not closed under subtraction. The closure of #P under subtraction is the class GapP. Alternatively, GapP can be defined as the class of all functions f for which there is a NP-machine M_{f} such that f(x) is the difference of the accepting and rejecting paths of M_{f} on input x. Apart from being closed under subtraction GapP inherits all the nice closure properties of #P. We summarise these closure properties below (see [26]).

Theorem 2.2. The class #P and GapP are closed under exponential summation and polynomial product, i.e. if f(x, y) be a function in #P (GapP ) then for any polynomial r(.) the functions

g(x) = ∑_{|y|≤r(|x|)} f(x, y)

and

h(x) = ∏_{y≤r(|x|)} f(x, y)

are in #P (GapP).

The functions in #P are hard to compute — Toda’s [67] results shows that the entire polynomial hierarchy is contained in P^{#P}. Nonetheless, certain #P functions can be efficiently approximated, for example #DNFSAT has polynomial time approximation algorithms. For approximating general #P function the best known result is due to Stockmeyer [64].

Theorem 2.3. For every function f in #P and any fixed constant c there is a randomised polynomial time algorithm with NP-oracle that on input x computes a value N_{x} ∈ ℕ such that

(1 − \frac{1}{|x|^{c}} ) N_{x} ≤ f(x) ≤ (1 + \frac{1}{|x|^{c}} ) N_{x}

The class PP consists of all languages L for which there is a GapP function f such that x ∈ L if and only if f(x) > 0. Surprisingly the entire polynomial hierarchy is contained in P^{PP} as shown by Toda [67]. The class Mod_{k}P consists of all languages L for which there is a #P function f such that x ∈ L if and only if f(x) is not divisible by k. By ⊕P we mean the class Mod_{2}P.

UP and SPP

A language L is in UP if there is a #P function f such that x is in L if f(x) = 1 and x is not in L if f(x) = 0. The class UP was introduced by Valiant [69] to captures the complexity of one-way functions. One-way functions are functions that are easy to compute but hard to invert and their study is central to cryptography. The existence of one-way functions is equivalent to the complexity theoretic assumption that UP ≠ P. The class SPP is the UP analogue of GapP. A language L is in SPP if there is a function f in GapP such that for all strings x, x ∈ L if f(x) = 1 and x ∉ L if f(x) = 0.

The class SPP is probably one of the most natural counting complexity class. An important property of SPP is that it is exactly the class of languages that are low for GapP. A language L is said to be low for a complexity class C if C^{L} = C. Schöning [59] introduced the concept of lowness as a tool for classifying complexity theoretic problems and showed that NP ∩ co-AM is low for Σ_{2}^{p}.

Due to the lowness of SPP for GapP, languages in SPP are in and low for all reasonable gap-definable complexity classes including itself [26]. Many interesting counting complexity classes like ⊕P, Mod_{k}P, PP,C_{=}P are gap definable and hence showing a language L to be in SPP in one stroke shows that it is in and low for each of these classes. Since SPP is low for itself, the class FP^{SPP} also share these interesting lowness properties. The class FP^{SPP} is essentially SPP as the bits of functions of FP^{SPP} can be computed in SPP. Computational problems that are NP-hard are not expected to share these lowness properties and hence languages in SPP (or functional problems in FP^{SPP}) are unlikely to be NP-hard. In Chapter 4 we show that the Graph Isomorphism problem is in SPP.

We now describe an important technique that is used to give SPP-upper bounds. Let A be a language in NP. An polynomial time oracle machine M^{A} is said to make UP-like queries to A if there is an NP machine N accepting A such that for all inputs x and for all queries y made by M on input x, N has at most one accepting computation on y, i.e. for queries made by M the machine N behaves like a UP machine. Again due to the closure properties of GapP and the lowness properties of SPP we have the following important theorem [32].

Theorem 2.4. Any language accepted by (function computed by) a polynomial time oracle machine M^{A} making UP-like queries to A ∈ NP is in SPP (FP^{SPP}).

Logspace Counting classes

Analogous to GapP and #P by considering NL machines we can define classes GapL and #L. The class #L consists of functions f for which there is an NL machine M_{f} such that f(x) is the number of accepting paths of M_{f} on x. Similarly we say that a function f(x) is in #L^{A} for some language A if there is an oracle NL^{A} machine M_{f}^{A} such that f(x) is the number of accepting paths of M_{f}^{A} on x. Recall that the oracle machine M_{f}^{A} follows the Ruzzo-Simon-Tompa access mechanism for making queries to A.

Logspace counting classes have played an important role in classifying natural problems in NC^{2}. For example it follows from the work of Toda [66] and Vinay [72] that the problem of computing the determinant of an integer matrix is complete for GapL (for a detailed study see the article of Mahajan and Vinay [51]). Also the complexity of perfect matching is now quite well characterised by Allender et al [5] using logspace counting classes and the isolation lemma.

The complexity class Mod_{k}L is the logspace analogue of Mod_{k}P. The class Mod_{k}L consists of languages L for which there is a function f in #L such that x is in L if and only if f(x) ≠ 0 (mod k). It is known that if k_{1} | k_{2} then we have Mod_{k_{1}}L ⊆ Mod_{k_{2}}L. For a prime p the complexity class Mod_{p}L captures the complexity of determinant over 𝔽_{p} quite accurately (cf. [20]). Recently, Allender et al [4] showed that many important linear algebraic problems like finding the rank and checking feasibility of linear equations over 𝔽_{p} are intimately connected to the complexity class Mod_{p}L. A survey of important results in this area is given in the article of Allender [3]. We summarise these results in the following theorem.

Theorem 2.5 (Buntrock et al). Let p be a prime. Given a m × n matrix A and a m × 1 column vector b over 𝔽_{p} the problem of testing whether the system of linear equations Ax = b is feasible is in Mod_{p}L. In case the system is feasible finding a nontrivial solution for the vector x of indeterminates is in FL^{Mod_{p}L}.

We now define the Mod_{k}L hierarchy. The first level of the Mod_{k}Lhierarchy is the class Mod_{k}L. A language L is said to be in the l + 1th level of the Mod_{k}L-hierarchy if there is a function f in #L^{A}, A a language in the lth level of the Mod_{k}L-hierarchy, such that for all x, x is in L if and only if f(x) ≠ 0 (mod k).

The Mod_{k}L hierarchy can also be seen as languages accepted by constant depth circuits with Mod_{k}L oracle, i.e. the Mod_{k}L hierarchy is exactly AC^{0}(Mod_{k}L). It is not known whether the Mod_{k}L-hierarchy is infinite.

However for primes p the Mod_{p}L-hierarchy collapses to Mod_{p}L. In Chapter 5 we see the connections of BCGI with the Mod_{k}L-hierarchy.

Group Theory

In this chapter we review the group theory in particular the theory of permutation groups required for this thesis. The groups we encounter here will all be finite. For a detailed presentation any standard text book on group theory (for example [30]) may be consulted. We follow the notation of Wielandt [74] for permutation groups.

We use the following notation: For groups G and H, H ≤ G means that H is a subgroup of G. By H < G we mean that H is a strict subgroup of G i.e. H ≤ G and H ≠ G. By G ≥ H and G > H we mean H ≤ G and H < G respectively. Similarly by H ⊴ G we mean H is a normal subgroup of G. When H is a strictly smaller normal subgroup we denote it by H ◁ G. As before we use G ⊵ H and G ▷ H to mean H ⊴ G and H ◁ G respectively. Let G be a group and A be any subset of G. By the normal closure of A in G, denoted by NCL_{G}(A), we mean the smallest normal subgroup of G containing A. The centraliser C_{G}(A) is the subgroup of G that commutes with all the elements of A.

Let H be any subgroup of G. By the index of H in G, denoted by [G : H], we mean the number of distinct H cosets in G. We have [G : H] = \frac{#G}{#H}. We say that H embeds into a group G, denoted by H ↪ G if there is a one-to-one homomorphism from H to G. In other words H is isomorphic to a subgroup of G.

Consider a normal subgroup N of G. There is a canonical homomorphism from G to G/N that maps an element g in G to its coset Ng. The canonical homomorphism gives a one-to-one correspondences between subgroups of G/N and subgroups of G containing N. For a subgroup L of G/N, by the pullback of L in G we mean the unique subgroup of G that contains N under this correspondence. More generally suppose ψ is a homomorphism from G onto H then there is a one-to-one correspondence between subgroups of G containing ker (ψ) and subgroups of H given by L ↦ ψ(L). The pullback of a subgroup H′ of H is the unique G′ such that ψ(G′) = H′.

Let K and H be subgroups of G then the set KH is also a subgroup if and only if KH = HK and has order given by #KH = \frac{1}{#K∩H} .#K.#H. If in addition H is a normal subgroup of KH and K ∩ H is trivial we say that KH is the semidirect product of K and H which we denote by K ⋉ H. The semidirect product K ⋉ H is the direct product (or just product) K × H if both K and H are normal subgroup of KH.

Let G be any group. For a subgroup H, a series of groups G = G_{0} > … > G_{t} = H is called a tower of groups between G and H. The subgroup H is subnormal if there exists a subnormal tower of groups between G and H, i.e. a tower of groups G = G_{0} ▷ … ▷ G_{t} = H such that for all 0 ≤ i < t, G_{i+1} is a normal subgroup of G_{i}. For any group G the trivial group {1} is subnormal and any subnormal tower of groups between G and {1} is called a subnormal series for G. A composition series for G is a subnormal series G = G_{0} ▷…▷G_{t} = {1} such that each of the quotients G_{i}/G_{i+1} are simple.

Definition 3.1 (Solvable groups). A group G is said to be solvable if there is a subnormal series G = G_{0} ▷ … ▷ G_{t} = {1} such that for all 0 ≤ i < t the quotient G_{i}/G_{i+1} is abelian.

We now define the class Γ_{d} of groups. The class Γ_{d} is a generalisation of the class of solvable groups; if G is solvable then G is in Γ_{d} for any d. Computational problems for groups in Γ_{d} occur in many permutation group theoretic algorithms for example in Luks’ polynomial time algorithm for bounded degree graphs [46].

Definition 3.2. A group G is said to be in Γ_{d} if there is a subnormal series G = G_{0} ▷…▷G_{t} = {1} such that for all 0 ≤ i < t either G_{i}/G_{i+1} is abelian or is isomorphic to a subgroup of S_{d}, the group of permutations on d objects.

For d < 5, since S_{d} is solvable, Γ_{d} is just the class of solvable groups. The Γ_{d}-testing, which we will describe in Chapter 7, will use the following closure properties of the class Γ_{d}.

Proposition 3.3. Any subgroup of a group in Γ_{d} is also in Γ_{d}. For any group G and a normal subgroup H, G is in Γ_{d} if and only if the groups G/H and H are in Γ_{d}.

An important subclass of the class of solvable group is the class of nilpotent groups which we define below.

Definition 3.4 (Nilpotent groups). A group G is said to be nilpotent if all its Sylow subgroups are normal.

The following lemma gives alternate characterisation of nilpotent groups (see Section 10.3 of Hall’s book [30]).

Lemma 3.5. Let G be a finite group then the following are equivalent.

1. G is nilpotent.

2. G is the product of all its Sylow subgroups.

3. For every prime p that divides the order of G there is a unique p-Sylow subgroup.

Let G be a group and H ⊴G be a normal subgroup of G. A normal tower between G and H is a subnormal series G = G_{0} ▷ … ▷ G_{t} = H such that each G_{i} is normal in G. A normal series for G is a normal tower between G and the trivial normal subgroup {1}.

Let G_{1} and G_{2} be two isomorphic groups and let ϕ : G_{1} → G_{2} be an isomorphism. The diagonal subgroup with respect to ϕ, denoted by Diag_{ϕ} (G_{1} × G_{2}), is the subgroup {⟨g, ϕ(g)⟩ : g ∈ G_{1}} of G_{1} × G_{2}. Even though the diagonal group Diag_{ϕ} (G_{1} × G_{2}) depends on the isomorphism ϕ, it is isomorphic to G_{1} (and G_{2}) and hence we will usually drop the isomorphism ϕ.

A group G is said to be simple if the only proper normal subgroup of G is the trivial group. Let T be a simple group. A group G is said to be T -semisimple if there is a positive integer k such that G is isomorphic to T^{k}. An important property of non-abelian semisimple group which we will use in many occasions is Scott’s lemma [60] (see Luks’ course notes for a proof[48, page 38]).

Lemma 3.6 (Scott’s Lemma). Let T_{1}, …, T_{k} be nonabelian finite simple groups. Let G be any subgroup of ∏_{i=1}^{r} T_{i} that projects onto each T_{i}. Then G is a direct product of diagonal subgroups. More precisely, there is a partition ∪_{j=1}^{s}I_{s} of {1, …, r} such that

G = ∏_{j=1}^{s} Diag (∏_{i∈I_{j}} T_{i}).

The Scott’s lemma is valid only for nonabelian simple groups. We give a counter example to illustrate this. Consider the vector space 𝔽_{2}^{3}. Let W be the subspace {(x_{1}, x_{2}, x_{3})^{T}|x_{1} + x_{2} + x_{3} = 0}. The space W project onto each of the component 𝔽_{2} however it is easy to see that W is not a product of diagonal subgroups.

3.1 Permutation Groups

Let Ω be a finite set. The symmetric group Sym (Ω) is the group of all permutations on Ω. By a permutation group on Ω we mean a subgroup of Sym (Ω). By S_{n} we mean Sym ({1, …, n}). For a group G the action g : a ↦ ag makes G a permutation group on itself. This action is called the right regular action. Similarly the left regular action is the action g : a ↦ ga.

While dealing with permutation groups over Ω we adopt the following convention: Lower case Greek letters will be used to denote elements of Ω where as upper case Greek letters will be used to denote subsets of Ω. Lower case Latin letters will be used to denote elements of Sym (Ω) and upper case Latin letters will be used to denote subsets or subgroups of Sym (Ω).

The image of α ∈ Ω under the permutation g ∈ Sym (Ω) will be denoted by α^{g}. The advantage of this notation is that group action behave similar to exponentiation, i.e. (α^{g})^{h} = α^{gh}. For A ⊆ Sym (Ω), α^{A} denotes the set {α^{g} : g ∈ A}. In particular, for G ≤ Sym (Ω) the G-orbit containing α is α^{G}. The G-orbits form a partition of Ω. Given a generating set of G, a straight forward transitive closure algorithm can be used to compute all the orbits (cf. [49]).

Theorem 3.7. Given G ≤ Sym (Ω) by a generating set A and α ∈ Ω, there is a polynomial-time algorithm to compute α^{G}. Moreover for each β ∈ α^{G} the above mentioned algorithm can compute a g_{β} ∈ G such that α^{g_{β}} = β.

Let G be a permutation group action on Ω. For Δ ⊆ Ω and g ∈ Sym (Ω), Δ^{g} denotes {α^{g} : α ∈ Δ}. The set-wise stabiliser of Δ, i.e. {g ∈ G : Δ^{g} = Δ}, is denoted by G_{Δ}. If Δ is the singleton set {α} we write G_{α} instead of G_{{α}}. For any Δ by G|_{Δ} we mean G_{Δ} restricted to Δ. For a set Δ ⊆ Ω the pointwise stabiliser will be denoted by G (Δ). Notice that G (Ω) = {1} and G ({α}) = G_{α}.

An often used result is the orbit-stabiliser formula stated below [74, Theorem 3.2].

Theorem 3.8 (Orbit-Stabiliser formula). Let G be a permutation group on Sym (Ω) and let α be any element of Ω then the order of the group G is given by #G = #G_{α}.#α^{G}.

3.2 Strong generator set

Let G be a group and H be a subgroup of G. By a right traversal of H in G we mean a collection of coset representatives one from each right coset of H in G. Similarly we can define the left traversal of H in G. Let G = G_{0} ≥ … ≥ G_{t} = {1} be a decreasing tower of subgroups of G. Let C_{i} denote the right traversal of G_{i} in G_{i−1} then the collection ∪_{i=1}^{t}C_{i} is a generator set of G which we call a strong generator set of G with respect to the given tower. The strong generator set depends on the choice of the traversals C_{i} at each stage. Also #C_{i} = [G_{i} : G_{i−1}] and hence the order of G is given by ∏_{i=1}^{t} #C_{i}.

We now describe a particularly useful strong generating set for permutation groups of degree n. Let G be a permutation group over Ω, a set of cardinality n. Without loss of generality we assume that Ω is the set {1, …, n}. Let G^{(i)} be the point-wise stabiliser of {1, …, i}. The tower of groups G = G^{(0)} ≥ … ≥ G^{(n−1)} = {1} gives rise to a strong generator set called the Schreier-Sims strong generating set. For any permutation group G ≤ S_{n} note that #C_{i} ≤ n−i and hence the Schreier-Sims strong generator set is a succinct presentation of G. There are polynomial time algorithm for computing the Schreier-Sims strong generator set [62, 63, 28]. Many algorithmic tasks involving permutation groups can be solved once a strong generator set is computed. We collect some of the useful computational results in the following theorem.

Theorem 3.9. Let G a permutation group on Ω presented by giving a generator set of G. The following tasks can be done in polynomial time.

1. Computing the Schreier-Sims strong generator set.

2. Computing the order of G.

3. Given g ∈ Sym (Ω) checking whether g ∈ G.

4. Given a subset Δ of Ω compute the pointwise stabiliser G (Δ).

A detailed treatment of computational issues in permutation groups is available in the book by Seress [2].

3.3 Transitivity, Blocks and Primitivity

A permutation group G on Ω is transitive if there is only one G-orbit. Suppose G ≤ Sym (Ω) is transitive. Then Δ ⊆ Ω is a G-block if for all g ∈ G either Δ^{g} = Δ or Δ^{g} ∩ Δ = ∅. For every G, Ω is a block and each singleton {α} is a block. These are the trivial blocks of G. A transitive group G is primitive if it has only trivial blocks and it is imprimitive if it has nontrivial blocks. Examples for primitive groups are S_{n} and A_{n}. These are the “giants”. However the following bound on primitive groups in Γ_{d} shows that they are small [11].

Theorem 3.10 (Babai, Cameron, Pálfy). Let G ≤ S_{n} be a primitive permutation group in Γ_{d}. Then #G ≤ n^{O(d)}.

The above mentioned bound is a generalisation of Pálfy’s bound [56] on the order of primitive solvable subgroups of S_{n} that was used in the Landau-Miller solvability test [39]. Bounds on sizes of primitive groups such as Theorem 3.10 are important in runtime analysis of various permutation group theory problems. In particular our Γ_{d}-testing algorithm depends on Theorem 3.10.

A G-block Δ is a maximal subblock of a G-block Σ if Δ ⊂ Σ and there is no G-block Υ such that Δ ⊂ Υ ⊂ Ω. Let Δ and Σ be two G-blocks. A chain Δ = Δ_{0} ⊂ … ⊂ Δ_{t} = Σ is a maximal increasing chain of G-blocks between Δ and Σ if for all i, Δ_{i} is a maximal subblock of Δ_{i+1}.

If Δ is a G-block then Δ^{g} is also a G-block, for each g ∈ G. Two Gblocks Δ_{1} and Δ_{2} are conjugates (more precisely G-conjugates) if there is a g ∈ G such that Δ_{1}^{g} = Δ_{2}. It is not difficult to see that the conjugate relation on the set of G-blocks forms a equivalence relation. Let Δ and Σ be two G-blocks such that Δ ⊆ Σ. The Δ-block system of Σ, is the collection

B (Σ/Δ) = {Δ^{g} : g ∈ G and Δ^{g} ⊆ Σ}.

The Δ-block system of Σ gives a partition of Σ. It follows that #Δ divides #Σ and by index of Δ in Σ, which we denote by [Σ : Δ], we mean #B (Σ/Δ) = \frac{#Σ}{#Δ}. We will use B (Δ) to denote B (Ω/Δ).

Blocks are fundamental structures associated with permutation groups and have intimate connections with subgroups of G. To illustrate this consider a finite group G as a permutation group on itself under the right regular action. A subset H of G is a subgroup if and only if H is a G-block containing the identity. For a subgroup H of G, which is a G-block under the right regular action, any other conjugate block of H is a right coset of H. More generally if G is a transitive permutation group on Ω, we have the following Galois correspondence between blocks and subgroups [74, Theorem 7.5].

Theorem 3.11 (Galois correspondence of blocks). Let G ≤ Sym (Ω) be transitive and α ∈ Ω. There is a one-to-one correspondence between Gblocks containing α and subgroups of G containing G_{α} given by Δ ⇌ G_{Δ}. Also for blocks Δ ⊆ Σ we have [G_{Σ} : G_{Δ}] = [Σ : Δ].

In particular the above theorem implies that G is primitive if and only if for all α ∈ Ω, G_{α} is a maximal proper subgroup of G.

Let G ≤ Sym (Ω) be transitive and Δ and Σ be two G-blocks such that Δ ⊆ Σ. Let G (Σ/Δ) denote the group {g ∈ G : Υ^{g} = Υ for all Υ ∈ B (Σ/Δ)}. We write G^{Δ} for the group G (Ω/Δ). For any g ∈ G_{Σ}, since g setwise stabilises Σ, g permutes the elements of B (Σ/Δ). Hence for any Υ ∈ B (Σ/Δ) we have Υ^{g^{−1}G(Σ/Δ)g} = Υ. Thus, G (Σ/Δ) is a normal subgroup of G_{Σ}. In particular, G^{Δ} is a normal subgroup of G. The following lemma lists important properties of G (Σ/Δ).

Theorem 3.12.

1. For G-blocks Δ ⊆ Σ, G (Σ/Δ) is the largest normal subgroup of G_{Σ} contained in G_{Δ}.

2. Let Σ be G-block then G^{Σ} ↪ ∏_{Υ∈B(Σ)} G|_{Υ}.

3. Let Δ be a G-subblock of Σ then \frac{G_{Σ}}{G(Σ/Δ)} is a faithful permutation group on B (Σ/Δ) and is primitive if and only if Δ is a maximal subblock.

4. The quotient group G^{Σ}/G^{Δ} can be embedded into the product group

(\frac{G_{Σ}}{G(Σ/Δ)})^{l} for some l.

Proof. Let N be any normal subgroup of G_{Σ} contained in G_{Δ}. We have for Δ^{N} = Δ. Consider any Υ ∈ B (Σ/Δ). Since G_{Σ} acts transitively on B (Σ/Δ) there is a g ∈ G_{Σ} such that Υ = Δ^{g}. Since gN = Ng we have Υ^{N} = Δ^{gN} = Δ^{Ng} = Υ. This proves that for all Υ ∈ B (Σ/Δ), Υ^{N} = Υ. Hence N is contained in G (Σ/Δ). This proves part 1.

The group G^{Σ} consists of all elements g of G that fixes setwise every block Υ ∈ B (Σ) and hence we have the embedding of part 2.

That \frac{G_{Σ}}{G(Σ/Δ)} acts faithfully on B (Σ/Δ) follows from the fact that for any two g and h in G_{Σ}, g and h has the same action on B (Σ/Δ) if and only if gG (Σ/Δ) and hG (Σ/Δ) are equal. Any nontrivial \frac{G_{Σ}}{G(Σ/Δ)}-block of B (Σ/Δ) gives a nontrivial G-block between Δ and Σ and vice versa. Thus, \frac{G_{Σ}}{G(Σ/Δ)} is primitive if and only if Δ is a maximal subblock of Σ.

Finally for the last statement notice that we have the group isomorphism

\begin{matrix}G| & Υ \\ G (Υ/Δ_{Υ})| & Υ \end{matrix} ≅ \frac{G_{Υ}}{G (Υ/Δ_{Υ})}.

Also since G^{Δ} = G^{Σ} ∩ ∏ G (Υ/Δ_{Υ})|_{Υ} where Υ varies over B (Σ) and Δ_{Υ} is any conjugate of Δ contained in Υ we have

G^{Σ}/G^{Δ} ↪ ∏_{Υ∈B(Σ)} \begin{matrix}G| & Υ \\ G (Υ/Δ_{Υ})| & Υ \end{matrix} = ∏_{Υ∈B(Σ)} \frac{G_{Υ}}{G (Υ/Δ_{Υ})}.

Let g ∈ G be any element that maps Δ to Δ_{Υ} then it follows that G_{Υ} = g^{−1}G_{Σ}g and G (Υ/Δ_{Υ}) = g^{−1}G (Σ/Δ)g. Hence the quotient groups \frac{G_{Σ}}{G(Σ/Δ)} and \frac{G_{Υ}}{G(Υ/Δ_{Υ})} are isomorphic. Thus, we see that G^{Σ}/G^{Δ} is isomorphic

to a subgroup of (\frac{G_{Σ}}{G(Σ/Δ)})^{l} for some l.

Lemma 3.13. Let G ≤ Sym (Ω) be transitive and N be a normal subgroup of G. Let α ∈ Ω. Then the N-orbit α^{N} is a G-block and the collection of N-orbits is an α^{N}-block system of Ω under G action. If N ≠ {1} then #α^{N} > 1. Furthermore, if G_{α} ≤ N ≠ G then the α^{N}-block system is nontrivial implying that G is not primitive.

Proof. Let α ∈ Ω and g ∈ G. Then (α^{N})^{g} = α^{Ng} = α^{gN} = (α^{g})^{N}. Thus (α^{g})^{N} and α^{N} are identical if α^{g} ∈ α^{N} and disjoint otherwise, since they are distinct N-orbits. Hence α^{N} is a G-block and the orbits of N is an α^{N}-block system of Ω under G action. If α^{N} = {α} then for all β ∈ Ω, β^{N} = {β}. Thus, N = {1}.

Finally, note that by the Orbit-Stabiliser formula #G = #Ω · #G_{α} and #N = #α^{N} · #G_{α}. Thus, if {1} ≠ N ≠ G then α^{N} is a proper G-block. This completes the proof.

3.4 Structure Tree and Structure Forest

An important structure associated with a transitive permutation group is its structure tree. Structure trees have proved useful in analysing various divide and conquer algorithms for permutation groups (see, e.g. [49]). Let G transitive permutation group acting on Ω. Consider a maximal chain of G-blocks {α} = Δ_{0} ⊂ … ⊂ Δ_{t} = Ω. For each such maximal chain we can associate a structure tree as follows:

Definition 3.14 (Structure Tree). Let G be a transitive permutation group acting on Ω and let Ω = Δ_{0} ⊃ … ⊃ Δ_{t} = {α} be any maximal decreasing chain of G-blocks. A structure tree of G with respect to this maximal chain is a labelled rooted tree of depth t satisfying the following conditions.

1. The root is labelled Ω.

2. The leaves are labelled with singleton sets {γ}, γ ∈ Ω.

3. For each node labelled Σ at level i the children of Σ are {Δ ∈ B (Δ_{i+1}) : Δ ⊂ Σ}.

We will identify the nodes of the tree with its labels (which are G-blocks). Any root-to-leaf path Ω = Δ_{0} ⊃ … ⊃ Δ_{t} = {α} in a structure tree is a maximal decreasing chain of G-blocks. Conversely any maximal decreasing chain Ω = Δ_{0} ⊃ … ⊃ Δ_{t} = {α} of G-blocks gives a structure tree for which it is a root-to-leaf path. If two maximal chains Ω = Δ_{0} ⊃ … ⊃ Δ_{t} = {α} and Ω = Σ_{0} ⊃ … ⊃ Σ_{s} = {β} gives the same structure tree then t = s and there is a permutation g ∈ G such that Δ_{i}^{g} = Σ_{i} for each i (pick any g that maps α to β). For two nodes Δ and Σ of a structure tree T, Σ is an ancestor of Δ if and only if Δ ⊆ Σ.

Let G be a transitive permutation group on Ω and let T be any structure tree of G. There is a natural action of G on the nodes of T; a node Δ under the action of g ∈ G goes to the node Δ^{g}. This action embeds G into the group of automorphisms of the labelled graph T. For any node Σ the subgroup of G that fixes Σ is the group G_{Σ} and for any child Δ of Σ the group G (Σ/Δ) is the subgroup of G that fixes all the siblings of Δ. It follows from Theorem 3.12 that G acts primitively on the children of the root of T.

For intransitive groups G on Ω instead of a structure tree we have a structure forest . Let Ω_{1}, …, Ω_{k} be the distinct G-orbits then G restricted to Ω_{i} is transitive on Ω_{i}. A structure forest of G is the collection of structure trees {T_{1}, …, T_{k}} where T_{i} is a structure tree of transitive group G|_{Ω_{i}} on Ω_{i}. Many permutation group algorithm uses a divide and conquer strategy by first computing the orbits and then finding the maximal blocks. The structure forest thus appear naturally in the analysis of such algorithms.

Given a permutation group G acting on Ω there is a polynomial time algorithm to compute a structure tree for G. A key step involved is to compute a minimal G-block. The polynomial time algorithm for finding the minimal G-block follows from the fact that the smallest block that contains α and β is exactly the connected component of α in the undirected graph X where the vertex set is Ω and the edge set is {{α, β}^{g} : g ∈ G}. The graph X can be constructed in polynomial time as it amounts to finding the orbit of {α, β} under the action of G on the set of unordered pairs of Ω. To summarise the above discussion we have the following lemma [46, Lemma 1.3]

Lemma 3.15. Given a permutation group G on Ω via a generating set A and a G-orbit Ω′ there is a polynomial time algorithm for computing the G-block system of Ω′ corresponding to a minimal G-block.

The Graph Isomorphism problem

In this chapter we study the Graph Isomorphism problem (GI for short). A graph X for us is an undirected graph i.e. a finite set of vertices V (X) and a set E(X) of unordered pairs of elements of V (X). Two graphs X_{1} and X_{2} are isomorphic if there is a one-to-one map f from V (X_{1}) onto V (X_{2}) that preserves the edge relations i.e. for every unordered pair {u, v}, u, v ∈ V (X_{1}), {u, v} ∈ E(X_{1}) if and only if {f(u), f(v)} ∈ E(X_{2}). The function f we will call an isomorphism between X_{1} and X_{2}.

Definition 4.1 (Graph Isomorphism problem). Given two graphs X_{1} and X_{2} test whether they are isomorphic.

The Graph Isomorphism problem is believed to be one of the natural problems that lie between the complexity classes P and NP. Even though no polynomial time algorithm is know, it is not expected to be NP-complete. In fact, under reasonable complexity theoretic assumptions, it appears that the graph isomorphism problem is unlikely to be NP-complete. It was shown by Boppana et al [19] that Graph Isomorphism is not NP-complete unless the polynomial hierarchy collapses to Σ_{2}^{p}. They also showed that graph non-isomorphism is in AM and hence GI is in NP ∩ co-AM. Schöning [59] generalised the result of Boppana et al [19] and proved that NP ∩ co-AM is low for Σ_{2}^{p}. It then follows that any language in NP ∩ co-AM cannot be NP-complete unless the polynomial hierarchy collapses to Σ_{2}^{p}. Lowness for PP is another property that NP-complete problems are unlikely to have. It was shown by Köbler et al [32] that GI is in LWPP and hence is low for the class PP. For a detailed study of the Graph Isomorphism problem from a complexity theoretic perspective see the book of Köbler et al [33].

The main result of this chapter is the SPP upper bound for Graph Isomorphism [6]. Our result is an improvement on the LWPP upper bound of Köbler et al [32]. As mentioned in Chapter 2 a problem in SPP (or FP^{SPP}) is low for many interesting complexity classes like ⊕P for example. Hence our result shows that GI is low for each of these complexity classes. Earlier it was not even known whether GI is in ⊕P.

To prove the SPP upper bound for GI it is sufficient to give an FP^{SPP} algorithm for AUT. In fact in Section 4.4 we show that a generic permutation group theoretic problem which we will call FINDGROUP problem, has a FP^{SPP} algorithm. Many interesting permutation group problems including AUT will be special cases of this generic problem.

4.1 Group theoretic formulation of Graph Isomorphism problem

We now formulate the Graph Isomorphism problem as a group theory problem. Many important upper bounds for GI were achieved by making use of this group theoretic formulation. The polynomial time algorithm for bounded valance graphs [46] and the fastest known algorithm for general graphs [75, 12] are group theoretic in nature.

Consider the family of n-vertex graph. With out loss of generality we fix their vertex set to be an n element set Ω, say {1, …, n} for example. Let G(Ω) be the set of graphs with vertex set Ω. The permutations g ∈ Sym (Ω) has a natural induced action on the set of unordered pairs \binom{Ω}{2} namely {u, v}^{g} = {u^{g}, v^{g}}. This natural action induced action on G(Ω); a permutation g ∈ Sym (Ω) maps the graph X = (Ω, E) to X^{g} = (Ω, E^{g}). The Graph Isomorphism problem can be formulated as follows: Given two graphs X_{1} and X_{2} in G(Ω) check whether they are in the same orbit under the Sym (Ω) action.

An automorphism of a graph X in G(Ω) is an element of Sym (Ω) such that X^{g} = X. The set of all automorphisms of a graph X, which we will denote by Aut (X), is but the stabiliser subgroup of the point X under Sym (Ω) action. We now define the Graph Automorphism problem, AUT for short, which is closely related to GI.

Definition 4.2 (Graph Automorphism problem). Given an undirected graph X compute a generator set of Aut (X) as a permutation group on V (X).

By #GI we mean the counting problem where given two graphs X_{1} and X_{2} we want to compute the number of isomorphisms between X_{1} and X_{2}.

Similarly by #AUT we mean the counting version of AUT, i.e. given a graph X counting the number of automorphisms of X.

The problem #AUT is polynomial time Turing reducible to AUT as there are polynomial time algorithm for computing the order of a permutation group given by a generating set. Let X_{1} and X_{2} be isomorphic graphs in G(Ω). Let g ∈ Sym (Ω) be any isomorphism between X_{1} and X_{2} then the set of all isomorphism between X_{1} and X_{2} is the coset Aut (X_{1})g and hence #Iso(X_{1}, X_{2}) = #Aut (X_{1}) = #Aut (X_{2}). Mathon [52] proved that the Graph Isomorphism problem and Graph Automorphism problem are equivalent under polynomial time Turing reductions. As a result we have the following theorem.

Theorem 4.3 (Mathon). The computational problems GI, AUT, #GI and #AUT are all equivalent under polynomial-time Turing reductions.

Mathon’s result together with Toda’s [67] theorem gives another reason to believe that GI is unlikely to be NP-complete. By Toda’s theorem P^{#P} contains the entire polynomial hierarchy. Therefore the counting problem #GI is not #P-complete unless the polynomial hierarchy collapses to Δ_{2}^{p}. Counting versions of almost all known NP-complete problems are complete for #P. In fact counting versions of certain problems in P, like perfect matching, are also complete for #P.

4.2 Problems related to Graph Isomorphism

We look at problems that are closely related to GI. Many isomorphism problems of combinatorial structures are closely connected to the Graph Isomorphism problem. For a detailed account of these problems, their complexity and their relation to GI see the book of Köbler et al [33, Chapter 1].

First we consider slight variations of the Graph Isomorphism problem. A directed graph consists of a finite set of vertices V and a collection E ⊆ V × V. Isomorphisms of directed graphs should also preserve the direction of edges, i.e. a bijection f from V (X_{1}) to V (X_{2}) is an isomorphism if for all u and v in V (X_{1}) the ordered pair (u, v) ∈ E(X_{1}) if and only if (f(u), f(v)) ∈ E(X_{2}). The problem of directed Graph Isomorphism is to check whether two directed graphs X_{1} and X_{2} are isomorphic. A vertex coloured graph is a graph together with a colouring function, i.e. a map ψ : V → C where C is the set of colours. For coloured graphs X_{1} and X_{2} a map f : V (X_{1}) → V (X_{2}) is an isomorphism if f should preserve the edge relations and also the colours, i.e. for any u ∈ V (X_{1}) both u and f(u) should of the same colour. The problem of coloured Graph Isomorphism is to check whether two coloured graphs are isomorphic.

By attaching suitable graph gadgets one can show that each of these problems are polynomial time equivalent to GI (see [53]).

We now consider the Group Isomorphism problem. We are given a group G via its multiplication table, i.e. a two dimensional array indexed by elements of the group G where for each g and h in G the (g, h)th entry is gh. The Group Isomorphism problem, GrpI for short, is to check whether two groups presented via their multiplication table is isomorphic. It turns out that GrpI ≤_{m}^{p} GI (see [53]) however a reduction in the other direction is not known. If instead of groups we consider semigroup Isomorphism, SemiGrpI we have and equivalence result, i.e. SemiGrpI ≡_{m}^{p} Gi [18]. We now define the Setwise stabiliser problem SetStab.

Definition 4.4 (Setwise Stabiliser Problem). Given a generator set for a permutation group G over Ω and a subset Δ ⊆ Ω compute a generator set for G_{Δ} the set-wise stabiliser of Δ.

There is a polynomial time many one reduction from AUT to SetStab. To see this consider a graph X = (V, E) consider the action of G = Sym (V) on the set Ω = \binom{V}{2} of unordered pairs of V. Then Aut (X) is nothing but G_{E} (or G_{Ω\E}). However no reduction is known in the other direction. The Setwise stabiliser problem seems to be harder than the Graph Isomorphism problem.

We now define the hidden subgroup problem, Hsp for short. Many interesting computational problems for which there are efficient quantum algorithms are variants of the Hsp. This include the Shor’s polynomial time algorithm for integer factoring and discrete logarithm [61]. Many other group theoretic problems including AUT can be cast as a Hidden subgroup problem.

For a group G and a set X, ϕ : G → X is a right hiding function for a subgroup H of G if ϕ is constant and distinct on the right cosets of H, i.e. for any g_{1} and g_{2} in G, ϕ(g_{1}) = ϕ(g_{2}) if and only if Hg_{1} = Hg_{2}.

Definition 4.5 (Hidden Subgroup Problem). Given a group G by its generator set and a hiding function ϕ : G → X for a subgroup H compute a generator set for H.

4.3 Computing the lex-least element of a Coset

Consider a finite totally-ordered set (Ω, <). The order < on Ω induces a natural order, the lexicographic order, on Sym (Ω) as follows: g < h if there is an α ∈ Ω such that α^{g} < α^{h} and for all β < α, β^{g} = β^{h}. It is not difficult to see that < is a total order on Sym (Ω) and the least element is 1. In this section we give a polynomial time algorithm that computes the least element of Gg given g and a generating set for G. This algorithm plays a crucial role in our SPP algorithm for FINDGROUP.

Theorem 4.6. Given a permutation group G on a totally ordered set (Ω, <) via a generator set. Let g ∈ Sym (Ω) be any permutation of Ω. There is a polynomial-time algorithm that computes the lexicographically least element of Gg.

Proof. Let g^{∗} be the lex-least element of Gg. Let α be the least element of Ω. We first compute the set α^{Gg} in polynomial time — First compute the G-orbit Σ = α^{G} using Theorem 3.7 and then compute Σ^{g}. Furthermore we assume that we have actually computed for each η ∈ α^{Gg} an element g_{η} ∈ Gg such that α^{g_{η}} = η. Let β be the least element of α^{Gg} then we have α^{g^{∗}} = β. Otherwise α^{g_{β}} = β < α^{g^{∗}} and hence g_{β} ∈ Gg is lesser that g^{∗} in the lexicographic order which is a contradiction.

Every element of the coset G_{α}g_{β} ⊆ Gg maps α to β. Conversely consider any h ∈ Gg that maps α to β. The elements hg_{β}^{−1} fixes α and hence h ∈ G_{α}g_{β}. Therefore G_{α}g_{β} is exactly the set of elements that map α to β and hence contains g^{∗}. We can use the above idea repeatedly as follows: Let G^{(i)} be the subgroup of G that fixes pointwise the first i elements α_{1}, …, α_{i} of Ω. By Theorem 3.9 we can compute the strong generator set of G and hence compute the generator sets of each of the groups G^{(i)} in polynomial time. Starting with g_{0} = g, for 1 ≤ i < n we compute an element g_{i} ∈ Gg such that g^{∗} ∈ G^{(i)}g_{i}. In the ith step we compute the least element β_{i} in the set α_{i}^{G^{(i−1)}g_{i−1}} and a permutation h that maps α_{i} to β_{i}. The permutation g_{i} is h. Since G^{(n−1)} = {1}, where n = #Ω, we have g_{n−1} = g^{∗}. Algorithm 1 is the detailed presentation of the above discussion.

Input: An ordered set Ω, a generator set for G ≤ Sym (Ω), and a

g ∈ Sym (Ω) Output: Lexicographically least element in Gg Let α_{1} < … < α_{n} be the ordered list of element of Ω. Let G^{(i)} be the pointwise stabiliser of {α_{1}, …, α_{i}}. g_{0} = g for i = 0 to n − 1 do

Find the element γ in α_{i}^{G^{(i)}} and h ∈ G^{(i)} such that α_{i}^{h} = γ and β = γ^{g_{i}} is minimum (Use Theorem 3.7); g_{i+1} = hg_{i}

end

return g_{n}

Algorithm 1: Lexicographically least in a Right Coset We can easily extend the above result to show the following.

Theorem 4.7. For an ordered set Ω there is a polynomial time algorithm that on input a generator set for permutation group G on Ω and g_{1}, g_{2} ∈ Sym (Ω), computes the lexicographically least element of g_{1}Gg_{2}. In particular there is a polynomial time algorithm to compute the lex-least element for a left coset gG.

Proof. Since g_{1}Gg_{2} = g_{1}Gg_{1}^{−1}g_{1}g_{2} and the lex-least element of g_{1}Gg_{2} is equal to the lex least element of Hg′ where H = g_{1}Gg_{1}^{−1} and g′ = g_{1}g_{2}. If A is a generator set of G then g_{1}Ag_{1}^{−1} = {g_{1}hg_{1}^{−1} : h ∈ A} is a generator set for H. The result then follows from Theorem 4.6.

4.4 The FINDGROUP problem

In this section we study the generic group theoretic problem FINDGROUP. We give an FP^{SPP} upper bound for FINDGROUP. Many permutation group theoretic problems AUT, Hsp and SetStab special cases of FINDGROUP. Hence giving an FP^{SPP} bound for FINDGROUP in one stroke gives SPP (or FP^{SPP}) upper bounds for each of these problems.

We define a generic permutation group problem called FINDGROUP. To each instance ⟨x, 0^{n}⟩ of FINDGROUP there is an associated an unknown subgroup G_{x} ≤ S_{n} for which there is polynomial time membership test, i.e. there is a polynomial-time function mem(x, g) that takes x and g ∈ S_{n} as input and evaluates to true if and only if g ∈ G_{x}. The FINDGROUP problem is to compute a generating set for G_{x} given ⟨x, 0^{n}⟩ as input. The rest of the section is devoted to the FP^{SPP} upper bound for FINDGROUP

Fix an input instance ⟨x, 0^{n}⟩ be an input instance of FINDGROUP. Our goal is to compute a strong generator set for G_{x} ≤ S_{n} using the membership function mem(., .) as a subroutine. The input instance being fixed, we will sometimes drop the subscript and write G instead of the group G_{x}. Let G^{(i)} ≤ G denote pointwise stabiliser of {1, …, i}. Starting from i = n−1 we compute a strong generator set for G^{(i)} for decreasing values of i. Assuming that we have a generator set for G^{(i)}, we show that a generator set for G^{(i−1)} can be computed in FP^{SPP}. We give a polynomial time deterministic algorithm making UP-like queries to a language L in NP which we now define. Consider the NP-machine M defined in Algorithm 2 and let L be the language accepted by M.

Input: x ∈ {0, 1}^{∗}, an integer 0 ≤ i ≤ n, a subset S ⊆ S_{n} and a

partial permutation π Verify using the membership test mem(.) that S ⊆ G^{(i)}

1 Guess g ∈ G^{(i−1)} i.e. guess g ∈ S_{n} and verify using mem(.). Let H be the group generated by S. Use Theorem 4.6 to compute the lexicographically least element g^{∗} of Hg.

2 if g ≠ g^{∗} then Reject. 3 if g^{∗} extends π then Accept.

else Reject.

Algorithm 2: The NP machine for A

Here by a partial permutation we mean a partial function one-to-one function from {1, …, n} to itself. Let the G^{(i−1)}-orbit of i be {i_{1}, …, i_{k}}. The set {g_{1}, …, g_{k}} where g_{s} ∈ G^{(i−1)} is any permutation that maps i to i_{s} forms a right traversal of G^{(i)} in G^{(i−1)}. Let g_{s}^{∗} denote the lexicographically least element in the coset G^{(i)}g_{s}. We have the following proposition for the language L

Proposition 4.8. Let S be a generator set for the group G^{(i)}. Consider a partial permutation π whose domain includes {1, …, i}. Then the tuple ⟨x, i, S, π⟩ ∈ L if and only if π maps i to i_{s} and agrees with g_{s}^{∗} for some s. For such an input, the machine M has only one accepting path.

Proof. The nondeterminism in the definition of M is due to step 1 of Algorithm 2 where we guess an element g of G^{(i−1)}. Since g ∈ G^{(i−1)}, i^{g} = i_{s} for some s. If S generates G^{(i)} then only the path that guessed g_{s}^{∗} survives (on all other paths step 2 rejects). Furthermore, if ⟨x, i, S, π⟩ ∈ L then π agrees with g_{s}^{∗} as well (we verified this in step 3). The proposition follows. More generally if S generates a subgroup H of G^{(i)} then the number of accepting paths on such a partial permutation π will be the index [G^{(i)} : H].

We are ready to give the FP^{SPP} algorithm for FINDGROUP. To begin with we already know G^{(n−1)}. Assume that a generating set D_{i} of G^{(i)} is known. From D_{i} we will compute a right traversal C_{i} of G^{(i)} in G^{(i−1)} using the language L as oracle. The base algorithm will be a deterministic polynomial time algorithm that makes UP-like queries to L, i.e. for all queries that the machine makes to L the NP-machine of M described in Algorithm 2 will have at most one accepting path. To begin with we have a generating set D_{n−1} = {1} of G^{(n−1)}. The complete algorithm is give below.

C_{i} ← ∅ for every 0 ≤ i ≤ n − 2.

D_{i} ← ∅ for every 0 ≤ i ≤ n − 2.

D_{n−1} = 1 1 for i = n − 1 down to 1 do

Let π_{i} be the partial permutation that fixes all elements from 1 to i − 1.

2 for j = i + 1 to n do

π′ ← π[i := j].

3 if ⟨x, D_{i}, i, π′⟩ ∈ L then

C_{i} ← C_{i} ∪ g where g = prefixSearch(x, D_{i}, i, π′). end

end

D_{i−1} ← D_{i} ∪ C_{i}. end Result: D_{0}. function prefixSearch(x, D_{i}, i, σ) begin

for k ← i + 1 to n do 4 Find the element l not in the range of π′ such that

⟨x, 0^{n}, D_{i}, i, j, π′[k := l]⟩ ∈ L by making queries to L.

σ := σ[k := l]. end return σ.

end

Algorithm 3: FP^{L} algorithm FINDGROUP

By π[l := m] we mean the partial permutation σ that agrees with π except at l where its value is m. The function prefixSearch(x, i, D_{i}, π′) completes the partial permutation π′ to an appropriate g_{s}^{∗} using L as an oracle.

Proposition 4.9. The Algorithm 3 computes the generator set for G and for all queries made to L the machine M described in Algorithm 2 has at most one accepting path.

Proof. The invariant of the loop 1 is that D_{i} generates the subgroup G^{(i)}. In the beginning of the loop the invariant is true. Since inductively we have made sure that D_{i} generates G^{(i)} by Proposition 4.8 there is at most one accepting path for any queries made, whether in step 3 or in step 4. Hence the polynomial time oracle machine makes only UP-like query to L whether in the main loop or in the subroutine prefixSearch().

Proposition 4.8 also guarantees that the query in step 3 gives a “yes” answer if and only if j is in the orbit i^{G^{(i−1)}}. When j is indeed in the orbit i^{G^{(i−1)}} then prefixSearch(), by making queries to L, returns the lexicographically least element in the coset G^{(i)}g where g is some permutation in G^{(i−1)} that maps i to j. Since we cycle through all i < j ≤ n in the loop 2, C_{i} will be a right traversal of G^{(i)} in G^{(i−1)} at the end of loop 2. As D_{i−1} = D_{i} ∪ C_{i} the loop invariant of loop 1 is maintained. Finally when i = 0, D_{0} is the generator set for G.

The following theorem is a direct consequence of Proposition 4.9 and Theorem 2.4.

Theorem 4.10. The FINDGROUP problem is in FP^{SPP}.

4.5 The complexity of Graph Isomorphism

We now give SPP upper bound for the Graph Isomorphism. Since GI ≡_{T}^{p} AUT it follows from the closure properties of SPP that it is sufficient to give an FP^{SPP} algorithm for AUT. We show that AUT is a special case of the FINDGROUP problem. Without loss of generality assume that the vertex set of the graph is {1, …, n}. Assume a suitable encoding of graphs say via adjacency matrix. For encodings x of n vertex graph X let G_{x} be the automorphism subgroup of X. There is a polynomial time membership test for G_{x} as given the encoding x of a graph X, there is a polynomial time algorithm to test whether a given permutation g ∈ S_{n} is an automorphism of X. Hence AUT is a special case of FINDGROUP.

Similarly given permutation group G over Ω and a subset Σ of Ω there is a polynomial time membership test for elements of G_{Σ}. Hence the SetStab problem is a special case of FINDGROUP. For the hidden subgroup problem the hiding function ϕ gives a membership test: h ∈ H if and only if ϕ(h) = ϕ(1). Using Theorem 4.10 we have the main result of this chapter.

Theorem 4.11. The Graph Isomorphism problem, the hidden subgroup problem over permutation groups, the set-wise stabiliser problem etc. are in SPP (or FP^{SPP} in the case of functional problems).

4.6 Discussion

We have shown that the Graph Isomorphism problem is in the complexity class SPP. We proved this by shown that given a graph X, a generator set for Aut (X) can be computed by a polynomial time deterministic machine making UP-like queries to an NP language. It is still open whether the Graph Isomorphism problem is in UP.

An approach to Graph Isomorphism is via Graph Canonisation. A function f from G(Ω) to G(Ω) is a canonising function on graphs if it satisfies the following properties: (1) for all X ∈ G(Ω) f(X) is isomorphic to X and (2) graphs X and Y in G(Ω) are isomorphic if and only if f(X) = f(Y). Intuitively f pick a canonical element from each equivalence class. It is not difficult to see that testing for isomorphism reduces to canonisation. In fact the asymptotically fastest algorithm [75, 12] for Graph Isomorphism is through Graph Canonisation. However the best known complexity theoretic upper bound for Graph canonisation is FP^{NP}. It would be interesting to show better upper bounds for this problem.

Bounded colour multiplicity Graph Isomorphism problem

In this chapter we study the bounded colour multiplicity Graph Isomorphism problem, a restricted version of vertex coloured Graph Isomorphism problem. For a finite set C of colours, a C-coloured graph is a triple X = (V, E, ψ) where V is the set of vertices, E ⊆ \binom{V}{2} is the set of edges and ψ : V → C is the colouring that assigns to each vertex v ∈ V a colour ψ(v) ∈ C. An isomorphism f between two C-coloured graphs X_{1} = (V_{1}, E_{1}, ψ_{1}) and X_{2} = (V_{2}, E_{2}, ψ_{2}) if it exists, is an isomorphism from the graph (V_{1}, E_{1}) to graph (V_{2}, E_{2}) that preserves the colours, i.e. for all u ∈ V_{1}, ψ_{1}(u) = ψ_{2}(f(u)). The Coloured Graph Isomorphism problem, for short, is to check whether two vertex coloured graphs X_{1} and X_{2} are isomorphic. Note that GI is the special case of CGI where every vertex has the same colour. On the other hand using suitable graph gadgets CGI is reducible to GI (details can be found in [33]).

We now define a restricted version of CGI, the bounded colour multiplicity Graph Isomorphism problem or BCGI for short. The colouring map ψ induces an equivalence relation on V; u ∼_{ψ} v if ψ(u) = ψ(v). A colour class is an equivalence class under this equivalence relation. For a colour c ∈ C, the c-colour class of X is the equivalence class {v ∈ V : ψ(v) = c}.

Definition 5.1 (BCGI_{b}). Given two C-coloured graphs X_{1} and X_{2} such that the size of each colour class of X_{i}, i = 1, 2, is bounded by a constant b, check whether X_{1} ≅ X_{2}.

One of the first versions of Graph Isomorphism problem that was studied using group theoretic methods is the BCGI problem. Babai gave a randomised polynomial time algorithm for BCGI_{b} for each constant b [9]. This was improved to a deterministic polynomial time algorithm by Furst et al [28]. Subsequently, Luks [47] gave a remarkable NC algorithm.

Recently Torán [68] has proved various hardness results for Graph Isomorphism. In particular, he proved that BCGI_{b} is AC^{0}-many one hard for the logspace counting class Mod_{k}L for each constant k. A key step in the hardness proofs is the construction of certain graph gadgets that enables the simulation of addition modulo k. In fact, these graph gadgets can be used to prove that BCGI is hard for the entire Mod_{k}L hierarchy [8, Appendix].

In this chapter we prove that BCGI_{b} is in the Mod_{k}L hierarchy, where the constant k and the level of the hierarchy depends on b [8]. Together with the hardness for the Mod_{k}L-hierarchy, we have a fairly tight classification. Though not explicitly mentioned, it appears that Luks’ NC-algorithm puts BCGI_{b} in NC^{k} where the constant k depends on b (Luks solves a more general problem and as a consequence derives the NC algorithm for BCGI_{b}). Since the Mod_{k}L hierarchy is contained in NC^{2} (even TC^{1}) our result is an improvement on Luks’ result.

We first prove that there is a logspace Turing reduction from BCGI_{b} to the pointwise stabiliser problem PWS_{c} (definition in Section 5.1) for some constant c that depends only on b. In this sequel we often say that a function f can be computed in the Mod_{k}L-hierarchy if there is a logspace bounded oracle machine M^{A} that computes f for some language A in the Mod_{k}Lhierarchy. We prove in this chapter that PWS_{c} is in the Mod_{k}L hierarchy where k is the product of all primes less than c. This would imply that BCGI_{b} is the Mod_{k}L hierarchy as BCGI_{b} ≤_{T}^{log} PWS_{c}. We now define the problem PWS_{c} and give an outline of the Mod_{k}L algorithm for it.

5.1 The Pointwise stabiliser problem

Given a permutation group G on Ω and a set Δ ⊆ Ω, recall that the pointwise stabiliser of Δ, G (Δ), is the subgroup {g ∈ G : δ^{g} = δ for all δ ∈ Δ}. As opposed to the setwise stabiliser, the pointwise stabiliser can be computed in polynomial time (using Theorem 3.9 for example). However in this chapter we are interested in a restricted version where G-orbits are of bounded size which we show is in the Mod_{k}L-hierarchy. The polynomial time algorithm for the general case that uses Theorem 3.9 does not help us here because it is sequential.

Definition 5.2 (PWS_{c}). Let G be a permutation group on Ω such that each G-orbit is of cardinality at most c. Given a subset Δ ⊆ Ω compute G (Δ).

Recall the permutation group theoretic formulation of the Graph Isomorphism problem from Section 4.1. We generalise this to coloured graphs in a straight forward manner: Let CG(Ω, C) denote the set of C-coloured graphs with vertex set Ω. As before there is a natural action of the group Sym (Ω) on CG(Ω, C): The graph (V, E, ψ) goes to (V, E^{g}, ψ^{g}) where ψ^{g} is the map u ↦ ψ(u^{g^{−1}}). For a C-coloured graph X ∈ CG(Ω, C), the automorphism subgroup Aut (X) is the stabiliser of the point X under this action. It is easy to verify that the set of C-coloured graphs in CG(Ω, C) isomorphic to X is exactly the Sym (Ω)-orbit containing X. If X and Y are two isomorphic coloured graphs in CG(Ω, C) and g ∈ Sym (Ω) be such that X^{g} = Y then, as before, the set of all isomorphisms between X and Y are exactly Aut (X)g.

Definition 5.3 (AUT_{b}). Given a C-coloured graph X such that each colour class is of cardinality bounded by b compute a generator set for Aut (X) as a subgroup of Sym (V (X)).

Mathon’s result (Theorem 4.3) generalises to coloured graphs as well and it can be show that the coloured graph isomorphism problem is logspace Turing reducible to coloured automorphism problem. In particular there is a logspace Turing reduction from BCGI_{b} to AUT_{2b}. To show that BCGI_{b} reduces to PWS_{c} for some constant c that depends on b it is therefore sufficient to give a logspace Turing reduction from AUT_{b} to PWS_{c}. We sketch the logspace reduction [47, Section 7]^{1}.

Consider an instance X = (V, E, ψ) in CG(V, C) of AUT_{b}. Recall that the colouring ψ of X partitions the vertex set V into disjoint colour classes V_{1}, …, V_{m} and for each i, #V_{i} ≤ b. Consider the group G = ∏ Sym (V_{i}) acting on V. For 1 ≤ i ≤ j ≤ m define the sets Ω_{ij} = 2^{V_{ij}}, where V_{ij} denotes collection of all unordered pairs {u, v}, u ∈ V_{i} and v ∈ V_{j}. The elements of set Ω_{ij} are subsets of unordered pairs {u, v}, u ∈ V_{i} and v ∈ V_{j}. In particular consider the collection E_{ij} defined as follows

E_{ij} = {{u, v} ∈ E : u ∈ V_{i} and v ∈ V_{j}}.

The subsets E_{ij} are points of Ω_{ij}. Define Ω = ∪Ω_{ij}. We have #Ω_{ij} ≤ 2^{b^{2}} and #Ω ≤ m^{2}.2^{b^{2}}. The action of G on V (X) extends naturally to Ω and hence G is a permutation group on Ω. If Δ = {E_{ij} : 1 ≤ i ≤ j ≤ m} then the pointwise stabiliser of Δ ⊆ Ω, G (Δ), is the group Aut (X). Furthermore G maps a point in Ω_{ij} to another point in Ω_{ij} and hence G-orbits are of size bounded by c = 2^{b^{2}}. Given the instance X = (V, E, ψ) of AUT_{b}, a generator set of G as a permutation group on Ω can be computed in FL. Hence the following proposition.

1Luks gives a NC-reduction but for a more general version.

Proposition 5.4. There is a logspace reduction from AUT_{b} to PWS_{c} where c ≤ 2^{b^{2}}. Hence if for all constants c there is a constant k that depends only on c such that PWS_{c} is in the Mod_{k}L-hierarchy then for all constants b there is a constant k′ that depends only on b such that BCGI_{b} and AUT_{b} are in the Mod_{k′}L-hierarchy.

In the rest of the chapter we prove that PWS_{c} is in the Mod_{k}L-hierarchy. We give an outline of the strategy. The key step in our algorithm is what we call “target reduction”. Given an instance (G, Ω, Δ) of PWS_{c} we compute a subgroup G′ of G such that

1. G ≥ G′ ≥ G (Δ).

2. For every G-orbit Σ containing a point of Δ, G′|_{Σ} is a proper subgroup of G|_{Σ}.

We prove that target reduction can be performed in the Mod_{k}L-hierarchy where k is the product of all primes less than c.

We now argue that the target reduction procedure can be used to compute the pointwise stabiliser. Starting with G, by applying the target reduction procedure compute a subgroup G′ which is strictly smaller than G on each of the orbits that contain points of Δ. Since G ≥ G′ ≥ G (Δ), G (Δ) = G′ (Δ). Moreover for each G-orbit Σ such that Σ ∩ Δ ≠ ∅, the projection G′|_{Σ} is a proper subgroup of G|_{Σ} and hence #G′|_{Σ} ≤ \frac{1}{2}#G|_{Σ}. We then repeat the target reduction procedure with G replaced by G′. Since G-orbits are of size bounded by a constant c, after O(c. log c) iterations of the target reduction step we converge to G (Δ). Thus if the target reduction step in in the lth level of the Mod_{k}L-hierarchy then PWS_{c} can be solved in the l.c. log c level of the Mod_{k}L-hierarchy. The detailed description of the target reduction procedure is given in Section 5.5.

For the target reduction procedure we require a special strong generating set for G. We consider a special normal series G = N_{0} ▷ … ▷ N_{l} = 1 of length l bounded by a constant that depends only on c such that each of the quotient group N_{i}/N_{i+1} is T_{i}-semisimple for some simple group T_{i}. Using this normal series we compute a strong generator set C of G. The computation of the strong generator set C proceeds in l stages. Each of this stage involves solving a certain normal closure problem for which we give a FL^{Mod_{k}L} algorithm. The detailed procedure for computing the strong generator set C is described in Section 5.4.

For computing the strong generator set C and for the target reduction procedure we require some more group theory. The two important group theoretic concepts we require is (1) the socle and (2) residual series of a group. The normal series G = N_{0} ⊵ … ⊵ N_{l} = 1 which is used to compute the strong generator set C is obtained by patching up the residue series of each of the constant sized groups G_{i}. The target reduction procedure makes use of the O’Nan-Scott theorem (Theorem 5.9), a result on the structure of socles of primitive permutation groups. In the next two sections we develop the group theory required for this chapter.

5.2 Characteristic subgroups and Socles

In this section we develop some more group theory relevant for this chapter. Most of the group theory that we require, albeit in a slightly different form, is developed by Luks [47] for his NC-algorithm.

Definition 5.5 (Characteristic subgroup). A subgroup H of a finite group G is a characteristic subgroup if all automorphisms of G maps H to itself.

In this context, notice that a normal subgroup of G is a subgroup that is invariant under inner automorphisms of G whereas a characteristic subgroup is invariant under all automorphisms. Hence characteristic subgroups are normal subgroups. For a characteristic subgroup R of G, the restriction of any G-automorphism to R is an R-automorphism. The following proposition directly follows from the above discussion.

Proposition 5.6.

1. If R_{1} is a characteristic subgroup of G and R_{2} is a characteristic subgroup of R_{1} then R_{2} is also a characteristic subgroup of G.

2. If R_{1} and R_{2} be characteristic subgroups of G then so is R_{1}R_{2} and R_{1} ∩ R_{2}.

3. Let R_{1} and R_{2} be normal subgroups of G such that R_{1} ∩ R_{2} = {1}. If R_{1}R_{2} and R_{1} are characteristic subgroups of G then so is R_{2}.

The entire group G and the trivial subgroup {1} are characteristic subgroups of G. The centre C_{G}(G) of G, the subgroup of elements of G that commute with all elements of G, is also a characteristic subgroup of G.

Let G be a nontrivial finite group. By a minimal normal subgroup of G we mean a normal subgroup N ⊴ G different from {1} which is minimal in the containment order, i.e. there is no proper subgroup of N other than {1} that is normal in G. For a simple group T, the only minimal normal subgroup is T itself. We now state an important lemma about minimal normal subgroups of a group G ([24, Theorem 4.3A]).

Lemma 5.7. Let G be any group and let K be a minimal normal subgroup of G. Then K = T_{1} × … × T_{n} where T_{i}’s are all isomorphic to a simple group T (i.e. K is T semisimple). Moreover for any i and j there is an element g ∈ G such that T_{i} = g^{−1}T_{j}g.

Having defined the minimal normal subgroup we define the socle of a group G, an important characteristic subgroup of G.

Definition 5.8 (Socle). For a finite group G the socle Soc (G) is the subgroup generated by the set of all minimal normal subgroups of G.

Clearly any automorphism of G maps minimal normal subgroups to minimal normal subgroups and hence fixes the socle. Therefore Soc (G) is a characteristic subgroup of G. We now state a restricted version of the O’Nan-Scott theorem, a theorem on the structure of socles of primitive permutation groups, suitable for our purposes. A complete statement of the theorem (Theorem 4.1A of [24]), its proof and its applications to the study of permutation groups can be found in Chapter 4 of the book by Dixon and Mortimer [24].

Theorem 5.9 (O’Nan-Scott theorem). Let G be a primitive permutation group on Ω with socle Soc (G) = K. Then K is transitive and T -semisimple for some simple group T. Furthermore exactly one of the following is true for K.

1. K is abelian in which case K is elementary abelian and regular on Ω. Also K is the unique minimal normal subgroup of G. For an α ∈ Ω, the group K_{α} is the trivial group {1}.

2. K is nonabelian and is the unique minimal normal subgroup of G. For α ∈ Ω, K_{α} is a proper subgroup of K.

3. K is nonabelian and is a product K = K_{1} × K_{2}, where K_{1} and K_{2} are isomorphic. The subgroups K_{1} and K_{2} are the only minimal normal subgroups of G and each K_{i} is regular on Ω. Furthermore the centraliser of K_{1} in G, C_{G}(K_{1}), is K_{2} and vice-versa. For α ∈ Ω, K_{α} is a diagonal subgroup of K_{1} × K_{2}.

5.3 Residues and Residual Series

In the previous section we studied an important characteristic subgroup, the socle. Let G be a finite group. For any simple group T, we associate a characteristic subgroup of G called its T -residue.

Definition 5.10 (Residue subgroup). Let T be a finite simple group. For a group G we say that the normal subgroup N is a T -residue of G if G/N is T -semisimple and for all H ⊴ G contained in N, G/H is T -semisimple if and only if H = N.

To prove that T -residues are unique, we require the following two lemmas on normal subgroups of semisimple groups.

Lemma 5.11. Let G be a semisimple group with a normal subgroup H. Then G = L × H for some normal subgroup L of G. Moreover G/H is also semisimple.

Proof. Let G be T -semisimple. Depending on whether T is abelian or not we have two cases.

T is abelian In this case T = 𝔽_{p} for some prime p. The group G is therefore a vector V over 𝔽_{p}. The subgroup H corresponds to a subspace W of V. We can decompose V as the direct sum V = W ⊕ W′. The required group L is the subspace W′. Clearly G/H is isomorphic to the subspace L and is hence 𝔽_{p}-semisimple.

T is nonabelian Let G = T_{1} × … × T_{k} where each T_{i} is isomorphic to T. Firstly the projection H_{i} of H on any of the group T_{i} is either trivial or the full group T_{i}. Otherwise H_{i} will be a nontrivial normal subgroup of T_{i} which contradicts the fact that T_{i} is simple. Thus we assume, with out loss of generality, that there is an integer l ≤ k such that H projects onto each of the group T_{i} for 1 ≤ i ≤ l and is trivial on T_{j} for l < j ≤ k. By Scott’s Lemma H is a product of diagonals of the groups {T_{i}}_{1≤i≤l}. Consider any two indices i, j ≤ l. Any diagonal group Diag (T_{i} × T_{j}) is not a normal subgroup of T_{i} ×T_{j}. To see this consider an element ⟨a, ψ(a)⟩ ∈ Diag_{ψ} (T_{1} × T_{2}) for some isomorphism ψ : T_{i} → T_{j}. Let b be any element of T_{i} that does not commute with a then ⟨1, ψ(b)⟩^{−1}⟨a, ψ(a)⟩⟨1, ψ(b)⟩ = ⟨a, ψ(b^{−1}ab)⟩ ∉ Diag_{ψ} (T_{i} × T_{j}). Therefore H is exactly the subgroup T_{1} × … × T_{l}. The required group L is T_{l+1} × … × T_{k}. Clearly G/H = L is T -semisimple.

The next lemma follows directly from Lemma 5.11 (consider the semisimple group G/N and its normal subgroup H/N).

Lemma 5.12. Let G be any group with a normal subgroup N such that G/N is semisimple. Let H be any subgroup of G containing N. Then there is a normal subgroup L of G containing N such that G = LH and L ∩ H = N.

We now prove that for any simple group T, the T -residue is unique. This a slightly weaker version of Lemma 6.2 stated in Luks [47] and is sufficient for our purpose. The proof of the more general version [47, Lemma 6.2] is along similar lines.

Lemma 5.13 (Luks). Let G be any finite group. For any simple group T there is a unique T residue, i.e. there is a normal subgroup N of G such that G/N is T -semisimple and for any H ⊴ G such that G/H is T -semisimple, H contains N.

Proof. The proof is via induction on the order of G. Firstly, if G itself is T -semisimple then lemma is clearly true; the unique T -residue is {1}. This is the base case of our induction.

We assume the assertion to be true for all groups of order less than k. Consider a group G of order k. If possible, let N_{1} and N_{2} be two distinct T -residues of G. Let H = N_{1} ∩ N_{2} and N = N_{1}N_{2}. From the minimality of N_{i}’s it follows that H is a strict subgroup of N_{i} for i = 1, 2. We have two cases.

Case 1 (H ≠ {1}): In this case G/H is a group of smaller cardinality than G and hence, by induction hypothesis, has a unique T -residue L/H for some normal subgroup L of G containing H. Since N_{i}/H⊴G/H and \frac{G/H}{N_{i}/H} ≅ G/N_{i} is T -semisimple, N_{i}/H contains L/H. Therefore N_{i} contains L for i = 1, 2. Therefore L ⊆ N_{1} ∩ N_{2} = H and since L contains H, L = H. However G/L ≅ \frac{G/H}{L/H} and hence is T -semisimple. This contradicts the minimality of N_{i}’s.

Case 2 (H = {1}): We prove that in this case G itself is T -semisimple. Firstly, N = N_{1}N_{2} = N_{1} × N_{2}. Hence the subgroup N_{1} is isomorphic to N_{1}N_{2}/N_{2} and since N_{1}N_{2}/N_{2} ⊴ G/N_{2}, is itself T -semisimple (Lemma 5.11).

Consider the group G with normal subgroup N_{2}. The quotient group G/N_{2} is T -semisimple and N is a normal subgroup of G containing N_{2}. Using Lemma 5.12 we have a normal subgroup L of G such that L∩N = N_{2} and G = LN. Since N = N_{1} × N_{2} and L ≥ N_{2} it follows that G = LN_{1}. But L ∩ N_{1} = {1} and hence G = L × N_{1}.

Having proved that G = N_{1} × L it is easy to see that L itself is T - semisimple. This is because L is isomorphic to G/N_{1} which is T -semisimple. Hence G = N_{1}×L is T -semisimple. This however contradicts the minimality of N_{1} and N_{2} as the unique T -residue of G is {1}.

In view of Lemma 5.13, we use Res_{T} (G) to denote the unique T -residue of G. For any simple group T since the T -residue of G is unique, any G-automorphism has to map Res_{T} (G) to itself. Hence Res_{T} (G) is a characteristic subgroup of G. Based on residues, we can define an important normal series called the residual series.

Definition 5.14 (Residual series). A residual series of G is a series G = R_{0} ⊵ … ⊵ R_{l} = {1} where for all 1 ≤ i ≤ l, R_{i} = Res_{T_{i}} (R_{i−1}) for some simple group T_{i}.

In fact from Proposition 5.6 it follows that the residual series is a series of characteristic subgroups. We now prove an important property of residual series of primitive permutation group due to Luks [47, Lemma 6.3].

Lemma 5.15 (Luks). Let G be a primitive permutation group acting on Ω and let G = R_{0}▷…▷R_{t} = {1} be any residual series then the last nontrivial subgroup in the series, is the socle of G.

Proof. We assume that t > 1 for otherwise G itself is T -semisimple, hence is its own socle and we are through.

Let S be the socle of G. The group G being primitive, it follows from the O’Nan-Scott theorem that the socle S and hence all the minimal normal subgroups of G are T -semisimple for some simple group T.

First let us suppose that R_{t−1} does not contain S. Since R_{t−1} is a normal subgroup of G there is a minimal normal subgroup K of G that is contained in R_{t−1}. This rules out cases 1 and 2 of the O’Nan-Scott theorem as in those cases G has a unique normal subgroup which is also the socle S. Thus G has exactly two minimal normal subgroups K_{1} and K_{2}, S = K_{1} × K_{2} and R_{t−1} contains one of them say K_{1}. Let s be the largest index i such that R_{i} contains S. Clearly s < t − 1 and R_{s+1} ≥ R_{t−1} ≠ 1. Moreover R_{s+1} contains K_{1} but not K_{2}.

The group R_{s}/R_{s+1} is semisimple and R_{s+1}S is a normal subgroup of R_{s} containing R_{s+1}. Therefore by Lemma 5.12 we have a subgroup L of R_{s} such that R_{s} = LR_{s+1}S and L ∩ R_{s+1}S = R_{s+1}. However since L contains R_{s+1} and hence K_{1} it follows that R_{s} = LK_{2}. Furthermore L ∩ K_{2} = 1. Thus R_{s} = L × K_{2} and every element of L commutes with K_{2}. This is possible only if L = K_{1} as by the O’Nan-Scott theorem C_{G}(K_{2}) = K_{1}.

For a T -semisimple group G, Res_{T′} (G) is either 1 or the whole of G depending on whether T′ = T or not. We have proved that if R_{t−1} does not contain the socle S then R_{s} = S which is T -semisimple by the O’Nan-Scott theorem. Since R_{s+1} is a proper subgroup of R_{s} it follows that R_{s+1} = Res_{T} (R_{s}) = 1. This however contradicts the fact that R_{s+1} ≥ R_{t−1} ≠ 1. Hence R_{t−1} contains the socle S.

Having proved that R_{t−1} contains S it is easy to see that R_{t−1} is indeed the socle. The group R_{t−1} being T -semisimple there is a subgroup L of R such that L × S = R_{t−1} (Lemma 5.11). It follows from Proposition 5.6 that L is a characteristic subgroup of G. This is not possible unless L is the trivial group otherwise there is a minimal normal subgroup K of G contained in L and K ≤ S ∩ L.

5.4 Strong generator set revisited

Recall that for every decreasing tower of groups G = G_{0} ≥ … ≥ G_{t} = {1} we can associate a generator set called the strong generator set. We now generalise this to relative strong generator set. Let H be a subgroup of G and let G = G_{0} ≥ … ≥ G_{t} = H be a decreasing sequence of groups from G to H. Let C_{i} denote the coset representatives of G_{i} in G_{i−1}. Then the set C = ∪C_{i} is called a strong generator set of G relative to H, SGS of G rel H for short. For any element g ∈ G there is a unique h in H such that g = g_{1} … g_{t}h where g_{i} ∈ C_{i}. By sift of g with respect to the strong generator set C we mean this h. We will use Sift(g) to denote the sift of g with respect the strong generator set C. The sift of an element is not unique and depends on the choice of the coset representatives C_{i}.

A semisimple series from G to a normal subgroup N is a normal series G = N_{0}⊵…⊵N_{t} = N where the quotient groups N_{i}/N_{i+1} are T_{i}-semisimple for simple groups T_{i}. We associate a strong generator set for such a series. Let the quotient group N_{i}/N_{i+1} be ∏_{j} T_{ij} where each T_{ij} is isomorphic to T_{i}. Consider a normal series (normal in N_{i}) given by N_{i} = N_{i,0} ▷ … ▷ N_{i,n_{i}} = N_{i+1} where N_{i,s}/N_{i+1} is the group ∏_{j>s} T_{ij}. Let C_{ij} be the right (or left) traversal of N_{i,j} over N_{i,j+1}. Then C = ∪_{i,j}C_{i,j} forms a strong generator set for G rel N with respect to the subnormal series {N_{i,j}}.

We are interested in permutation group G over Ω with bounded orbits. The simple groups {T_{i}}_{0≤i<t} that occur will all be of order bounded by a constant and the semisimple series which we construct for G will be of bounded length. Furthermore, the computation of strong generator set C is done inductively by computing the strong generator set of G relative to N_{i} starting with i = 0. The fact that the series {N_{i}}_{i=1}^{t} is of bounded length is important for the Mod_{k}L-hierarchy upper bound. Hence in this context it is more natural to associate the semisimple series {N_{i}}_{i=1}^{t} to the strong generator set C than the subnormal series {N_{i,j}}.

We now prove a property analogues to Proposition 3.2 of Luks and McKenzie [50].

Proposition 5.16. Given a group G via a generator set A. Let G = N_{0} ⊵ … ⊵ N_{t} = N be a semisimple series from G to N and let C = ∪_{ij}C_{ij} be the associated strong generator set of G relative to N. Let S be the set containing the following elements:

1. Sift(g) for all g ∈ A.

2. Sift(x^{−1}yx) for all x ∈ C_{ij} and y ∈ C_{lm}, (i, j) < (l, m).

3. Sift(xy) for all x, y ∈ C_{ij} for all i and j.

Then the normal closure NCL_{G}(S) of S in G is N.

Proof. The proof is similar to that of Proposition 3.2 of Luks and McKenzie [50]. The set S is clearly a subset of N and since N is a normal subgroup of G we have NCL_{G}(S) ⊴ N. To prove the converse consider any element h ∈ N. There exists elements y_{1}, …, y_{m} in A such that h = y_{1} … y_{l}. For ease of notation we assume that l = 2 and h = xy for x, y ∈ A. The general case is similar. Since S contains the sifts of all the elements of A there exists x_{ij} ∈ C_{ij} and y_{lm} ∈ C_{lm} such that x = ∏_{i,j} x_{ij}s_{1} and y = ∏_{lm} y_{ij}s_{2} where s_{1} and s_{2} are elements of S and hence NCL_{G}(S). Hence h is given by

h = (∏_{ij} x_{ij})s_{1}(∏_{lm} y_{lm})s_{2}.  (5.1)

We prove that h can be written as ∏_{ij} z_{ij}s where s ∈ NCL_{G}(S). The first task is to push down s_{1} to the end. For any y ∈ G since NCL_{G}(S) is normal subgroup of G we have yNCL_{G}(S) = NCL_{G}(S)y and therefore whenever we have a product of the form h = … sy …, s ∈ NCL_{G}(S) and y ∈ C, we can replace it with h = … ys^{∗} … for some s^{∗} ∈ NCL_{G}(S).

For products of the form h = … yx … where x ∈ C_{ij} and y ∈ C_{lm} with (i, j) < (l, m), since S contains Sift(x^{−1}yx) we can rewrite it as

h = … yx … = … x( ∏_{(r,t)>(i,j)} u_{rt})s …, u_{rt} ∈ C_{rt}.  (5.2)

Similarly when h = … xy … where x, y ∈ C_{ij}, since S contains Sift(xy) we can rewrite h as

h = … xy … = … z(∏_{r>i} ∏_{t} u_{rt})s …., u_{rt} ∈ C_{rt}.  (5.3)

By repeatedly rewriting the expression of h in Eq. 5.1 using Eqs. 5.2 and 5.3, we have h = (∏_{i} ∏_{j} z_{ij})s for some s ∈ NCL_{G}(S). However since h is in N, we have z_{ij} = 1 for all i and j. Therefore h = s and hence h ∈ NCL_{G}(S).

5.4.1 Computing the strong generator set

We are give a generator set A for a permutation group G on Ω with orbits of size bounded by a constant c. We will find the strong generator set for G with respect to a semisimple series of length bounded by a constant that depends only on c. The semisimple series which we consider is similar to the residual series of G.

Consider a permutation group G on Ω with orbits Ω_{1}, …, Ω_{m} all of size bounded by an constant c. Let G_{i}’s be the projection of G onto Ω_{i}, Then G_{i}’s are all of order bounded by c! as #Ω ≤ c. Let T = {T_{1}, …, T_{k}} be the collection of all simple groups of order at most c! then k = #T is a constant for us that depends only on c. For 1 ≤ i ≤ m define a k length normal series G_{i} = R_{i,0} ⊵ … ⊵ R_{i,k} where R_{i,s} = Res_{T_{s}} (R_{i,s−1}). The group R_{i,k} is a proper subgroup of G_{i} as there exists a normal subgroup H_{i} of G_{i} such that G_{i}/H_{i} is simple and isomorphic to some T_{s}. Repeat this process starting with R_{i,k} in place of G_{i}. We would have to repeat this at most c. log c times before we hit the trivial group {1}. Thus, for each 1 ≤ i ≤ m, we have a residual series G_{i} = R_{i,0} ⊵…⊵R_{i,l} = {1} where the constant l depends only on c. Let R_{s} denote the product group R_{s} = ∏_{i} R_{i,s} then R_{0} ⊵ … ⊵ R_{l} is a residual series for the product group ∏_{i} G_{i}. Since for 1 ≤ i ≤ m the group G_{i} is of order less that c! in FL we compute the groups R_{i,s} and hence the product groups R_{s} for each 1 ≤ s ≤ l.

Let N_{s} ⊴G be the normal subgroup G∩R_{s} then G = N_{0} ⊵…⊵N_{l} = {1} is a semisimple series for G as N_{i}/N_{i+1} = (G ∩ R_{i})/(G ∩ R_{i+1}) ↪ R_{i}/R_{i+1} via the map xN_{i+1} ↦ xR_{i+1}. We prove the following important property due to Luks [47, Lemma 6.4].

Proposition 5.17 (Luks). Let H ≤ Sym (Ω) be any subgroup of the product ∏_{i} G_{i}. For all i, if H|_{Ω_{i}} = G_{i} then H ∩ R_{s}|_{Ω_{i}} = R_{i,s}, 1 ≤ s ≤ l.

Proof. Let ψ denote the homomorphism that restricts an element of the product group R_{0} = ∏_{i} G_{i} to its action on Ω_{i}. Fix an s. Let L and M be the groups H ∩ R_{s} and H ∩ R_{s+1} respectively. The groups H ∩ R_{s}|_{Ω_{i}} and H ∩ R_{s+1}|_{Ω_{i}} are ψ(L) and ψ(M) respectively.

First we prove that ψ(M) is a normal subgroup of ψ(L) and the quotient group ψ(L)/ψ(M) is T -semisimple. As L ≤ R_{s} and M = L ∩ R_{s+1} the map gM ↦ gR_{s+1} is an embedding of L/M into R_{s}/R_{s+1}. The quotient group L/M is thus T -semisimple. Let K be the kernel of the map ψ in L. Consider the normal subgroup MK of L. Since ψ maps K to 1 it follows that ψ(M) = ψ(MK). However MK is a normal subgroup of L containing K and hence ψ(MK) = ψ(M) is a normal subgroup of ψ(L). The quotient group ψ(L)/ψ(M) is thus \frac{L/K}{MK/K} = L/MK. However L ⊵ MK ⊵ M is a normal series with L/M being T -semisimple. The group MK/M is a normal subgroup of the semisimple group L/M. Hence by Lemma 5.11 L/MK ≅ \frac{L/M}{MK/M} is also T -semisimple. We have thus proved that ψ(M) is a normal subgroup of ψ(L) and the quotient group ψ(L)/ψ(M) is T - semisimple. If ψ(L) is R_{i,s} then this is impossible unless ψ(M) is R_{i,s+1}. Let ψ(H) = ψ(H ∩ R_{1}) = G_{i} = R_{i,0}. Assume that ψ(H ∩ R_{s}) = R_{i,s} for some s. Then we have just proved that ψ(H ∩ R_{s+1}) = R_{i,s+1}. Now repeat the argument with s replaced by s+1. As result we have ψ(H ∩R_{j}) = R_{i,j+1} for all 1 ≤ j ≤ l. This completes the proof.

In particular, Proposition 5.17 proves that for all s, N_{s}|_{Ω_{i}} is R_{i,s}. Thus for any G-orbit Σ, G|_{Σ} = N_{0}|_{Σ} ⊵ … ⊵ N_{l}|_{Σ} is a residual series for G_{i}. Hence we call this series a locally residual series. We show that a strong generator set for G with respect to this locally residual generator set can be computed in the Mod_{k}L-hierarchy. A property which we use repeatedly is the following:

Proposition 5.18. Let N and K be two normal subgroups of G such that N ≥ K. Let C and D be the strong generator set of G relative to N and N relative to K respectively. Then C ∪ D gives a strong generator set of G relative to K.

Firstly, since each of the groups G_{i} are constant sized, the residual series G_{i} = R_{i,0} ⊵ … ⊵ R_{i,l} = {1} for each G_{i} can be computed separately in logspace. We prove by induction on i that an SGS A_{i} of G rel N_{i} can be computed in the ith level of the Mod_{k}L-hierarchy where k is the product of all primes less that c. In addition, we prove inductively that given g ∈ G, Sift(g) with respect to A_{i} can also be computed in ith level of the Mod_{k}Lhierarchy. This sifting procedure is required for our induction step.

To begin with we know the strong generator set of G relative to N_{0}. Assuming we have already computed the strong generator set A_{i} of G relative to N_{i}. Using the sifting procedure for A_{i} as an oracle, we compute a set S such that NCL_{G}(S) = N_{i} (Proposition 5.16). To complete the induction we give FL^{Mod_{k}L} algorithms for the following.

(1) Given S and the SGS of G rel N_{s} compute the strong generator set C of N_{s} rel N_{s+1}.

(2) Given x ∈ N_{s} compute Sift(x) with respect to the SGS C.

Depending on whether N_{s}/N_{s+1} is abelian or not we have two cases. If N_{s}/N_{s+1} is abelian then it is 𝔽_{p}-semisimple for some prime p. We prove that in this case both (1) and (2) can be done in FL^{Mod_{p}L}. On the other hand when N_{s}/N_{s+1} is non-abelian we prove that both (1) and (2) can be done in FL.

Computing the strong generating set: nonabelian case

Let L_{i} and M_{i} denote the group R_{i,s} and R_{i,s+1} respectively. Let L and M be the product groups R_{s} = ∏_{i=1}^{m} L_{i} and R_{s+1} = ∏_{i=1}^{m} M_{i}. Then N_{s} and N_{s+1} are the G ∩ L and G ∩ M respectively. Our task is to compute the strong generator set of N_{s} rel N_{s+1} for which we give an FL algorithm.

The group L/M is T -semisimple as each L_{i}/M_{i} is T -semisimple. Consequently, L/M is of the form T_{1} × … × T_{r} where T_{i} ≅ T for all 1 ≤ i ≤ r. The quotient group N_{s}/N_{s+1} can be faithfully embedded into ∏_{i=1}^{m} L_{i}/M_{i} via the map xN_{s} ↦ xM and hence can be seen as a subgroup of L/M. Furthermore since N_{s} projects onto L_{i} for 1 ≤ i ≤ m (Proposition 5.17), by Scott’s Lemma we know that N_{s}/N_{s+1} is a product of diagonal groups of T_{1} × … × T_{r}, i.e. there is a partition I = {I_{1}, …, I_{s}} of indices {1, …, r} such that

N_{s}/N_{s+1} = ∏_{i=1}^{s} Diag(∏_{j∈I_{i}} T_{j}).

Let ϕ_{i} : L ↦ T_{i} be the homomorphism obtained by composing the natural quotient homomorphism from L to L/M and the projection map to T_{i}. Fix an index i_{j} ∈ I_{j} for each I_{j}. Since ϕ_{i} restricted to N_{s} is onto (because N_{s} projects onto L_{i}) for each x ∈ T_{i_{j}} one can associate a permutation x^{∗} in N_{s} such that ϕ_{i_{j}}(x^{∗}) = x and for all i not in I_{j}, ϕ_{i}(x^{∗}) is identity. Let B_{j} be the set of such x^{∗} one for each x ∈ T_{i_{j}}. The set ∪_{j}B_{j} gives strong generator set of N_{s} rel N_{s+1}. We will show that this strong generator set for N_{s} rel N_{s+1} can be computed in FL. To this end we prove that the following can be computed in FL.

1. The partition I.

2. The collection of sets {B_{j}}_{j}

3. Sifts of g ∈ N_{s} with respect to the SGS ∪_{t}B_{t}.

Computing I: For indices i and j we say that i is linked to j if i and j falls in the same partition. Clearly i and j are linked if and only if N_{s}/N_{s+1} restricted to T_{i} × T_{j} is a diagonal group Diag (T_{i} × T_{j}). The relation i ∼ j if i is linked to j, is an equivalence relation and the equivalence classes give the partition I. Consider an undirected graph G with vertex set V = {1, …, r} and edge set {{i, j} : i and j are linked}. Each connected component C_{k} in G corresponds to diagonal part of N_{s}/N_{s+1}. Hence to compute I it is sufficient to compute the connected components of G.

To compute the graph G, it is sufficient to give an algorithm to check whether T_{i} and T_{j} are linked. For this we compute N_{s}/N_{s+1} restricted to T_{i} × T_{j}. Let ϕ_{ij} denote the projection of L/M to T_{i} × T_{j}. We give an FL algorithm (Algorithm 4) that computes a subset D_{i,j} of elements in N_{s} such that the projection from D_{i,j} to T_{i} × T_{j} is ϕ_{ij}(N_{s}). Since ϕ_{ij}(N_{s}) is of order bounded by a constant that depends only on c, one can easily determine whether it is T_{i} × T_{j} or Diag (T_{i} × T_{j}) (by checking the order for example).

Initialise D_{i,j} to be the set of x^{∗} one for each x ∈ ϕ_{ij}(S).

repeat Let S′ be the set g^{−1}sg for each g ∈ A and s ∈ D_{i,j}. Add to D_{i,j} all elements s in S′ such that no two elements of D_{i,j} have the same image under ϕ_{ij}.

until D_{i,j} is not modified;

return D_{i,j} Algorithm 4: Computing N_{s}/N_{s+1} restricted to T_{i} × T_{j}

Using Algorithm 4 we compute the edges of the graph G. The graph G is a disconnected set of cliques one for each diagonal component. In FL we compute its connected components. Let C_{1}, …, C_{s} be the connected components of G. Then the vertices of C_{k} gives us I_{k}. Thus in FL we compute the partition I.

Computing B_{k}: To compute the set B_{k} the main algorithmic step is the computation of elements g_{k} ∈ N_{s}, 1 ≤ k ≤ s such that ϕ_{i_{k}}(g_{k}) ≠ 1 and ϕ_{i_{j}}(g_{k}) = 1 for all j not equal to k. Given two i and j such that T_{i} and T_{j} are not linked, using Algorithm 4 one can compute an element g that is nontrivial on T_{i} and trivial on T_{j}. However we want elements g_{k} that is nontrivial on T_{i_{k}} and trivial on all other T_{i_{j}} simultaneously. We make use of the following proposition.

Proposition 5.19. Let x and y be permutations in N_{s}. Let X denote the indices i such that ϕ_{i}(x) is trivial. Similarly let Y be the set of all j such that ϕ_{j}(y) is trivial. Then the commutator [x, y] has the property that ϕ_{j}([x, y]) = 1 for all j ∈ X ∪ Y.

Proof. For all i ∈ X since ϕ_{i}(x) = 1 we have ϕ_{i}([x, y]) = ϕ_{i}(x^{−1}y^{−1}xy) = ϕ_{i}(y^{−1}y) = 1. Similarly for all j ∈ Y, ϕ_{j}([x, y]) = 1. Therefore for all k ∈ X ∪ Y ϕ_{k}([x, y]) = 1.

We use Proposition 5.19 to compute the required permutations g_{k}. For this purpose we need iterated commutators. Let [h_{1}, …, h_{k}] be defined as

[h_{1}, h_{2}] = h_{1}^{−1}h_{2}^{−1}h_{1}h_{2},
[h_{1}, …, h_{i}, h_{i+1}] = [[h_{1}, …, h_{i}], h_{i+1}] .

To compute g_{k} we compute a sequence of elements h_{1}, …, h_{s} satisfying the following properties.

1. ϕ_{i_{k}}(h_{1}) ≠ 1,

2. ϕ_{i_{k}}([h_{1}, …, h_{j}]) ≠ 1 for all j and

3. ϕ_{i_{j}}(h_{j}) = 1 for all 1 ≤ j ≤ s and j ≠ k.

It follows from Proposition 5.19 that given h_{1}, …, h_{s} with the above mentioned properties, g_{k} = [h_{1}, …, h_{s}] has the required properties: ϕ_{i_{k}}(g_{k}) is nontrivial and ϕ_{i_{j}}(g_{k}) = 1 for 1 ≤ j ≤ s and j ≠ k. We give the logspace algorithm (Algorithm 5) to find such a sequence h_{1}, …, h_{s}.

In Algorithm 5 the step 1 is possible only because T_{i_{k}} is nonabelian and simple. The simplicity of T_{i_{k}} guarantees that its centre is trivial and hence for any nontrivial element g of T_{i_{k}} there is an h ∈ T_{i_{k}} such that g and h do not commute. The loop invariant is that g’s value is ϕ_{i_{k}}([h_{1}, …, h_{j}]) ≠ 1. Step 1 ensures that (1) ϕ_{i_{k}}([h_{1}, …, h_{j}]) ≠ 1 and (2) ϕ_{i_{j}}(h_{j}) = 1. Therefore Algorithm 5 indeed computes a sequence h_{1}, …, h_{s} with the desired properties.

Having got the sequence h_{1}, …, h_{s} we show that the iterated commutator [h_{1}, …, h_{s}] can be computed in logspace. It is sufficient to compute the Let h_{i} be any permutation such that ϕ_{i_{k}}(h_{1}) ≠ 1. Such an element has to exist in the set S itself. g ← ϕ_{i_{k}}(h_{1}) for j = 1 to s and j ≠ k do

1 Using Algorithm 4 find an h_{j} such that ϕ_{i_{k}}(h_{j}) does not commute with g and ϕ_{i_{j}}(h_{j}) = 1. h ← ϕ_{i_{k}}(h_{j}) g ← [g, h] output h_{j}

end Algorithm 5: Computing h_{i}’s

action of [h_{1}, …, h_{s}] separately for each G-orbit. The iterated commutator [h_{1}, …, h_{s}] is a formula over the h_{i}’s, and since each G-orbit is of bounded size, the action of [h_{1}, …, h_{s}] restricted to a G-orbit Ω_{i} can be computed by a bounded width branching program. Hence the iterated commutator can be computed in FL (in fact ever in NC^{1}). Thus we have the following proposition.

Proposition 5.20. Let G be a permutation group with bounded-size orbits. Given h_{1}, …, h_{n} ∈ G, the iterated commutator [h_{1}, …, h_{n}] can be computed in deterministic logspace.

Using Algorithm 5 and Preposition 5.20, for all 1 ≤ k ≤ s, we compute in FL a permutation g_{k} ∈ N_{s} such that ϕ_{i_{k}}(g_{k}) ≠ 1 and for all 1 ≤ j ≤ s, j ≠ k ϕ_{i_{j}}(g_{k}) = 1.

Finally from the permutations g_{k}, we now describe how the set B_{k} can be computed. Since T_{i_{k}} is simple, T_{i_{k}} = ϕ_{i_{k}} (NCL_{G}(g_{k})). We compute a set B_{k} of distinct inverse images of ϕ_{i_{k}}(NCL_{G}(g_{k})), 1 ≤ k ≤ l. Start with B_{k} = {g_{k}}. The algorithm consists of #T stages in which we update B_{k}. At every stage update B_{k} by adding, for every element g in the generating set for G and x ∈ B_{k}, the elements y = g^{−1}xg to B_{k} if ϕ_{i_{k}}(y) ∉ ϕ_{i_{k}}(B_{k}). We repeat this process till ϕ_{i_{k}}(B_{k}) generates T_{i_{k}}. Since #T_{i_{k}} = #T ≤ c! we require at most c! stages each of which is in FL. Thus the sets B_{k}, 1 ≤ k ≤ s can be computed in FL.

Having computed the sets B_{k}, we compute the strong generator set B = ∪_{k=1}^{s}B_{k} of N_{s} rel N_{s+1}.

Computing sifts:

Finally we explain how to compute Sift(x) for any x ∈ N_{s} with respect to the computed strong generator set B = ∪_{k=1}^{s}B_{k} of N_{s} rel N_{s+1}. Given x ∈ N_{s} in FL we compute for each, 1 ≤ k ≤ s, a permutation y_{k} ∈ B_{k} such that ϕ_{i_{k}}(y_{k}) = (ϕ_{i_{k}}(x))^{−1}. The sift of x is given by Sift(x) = x ∏_{k=1}^{s} y_{k}. This completes the nonabelian case of our induction step.

Computing the strong generating set: abelian case

We are given a set S ⊂ N_{s} such that NCL_{G}(S) = N_{s}. Our task is to compute the strong generator set of N_{s} rel N_{s+1}. Since N_{s}/N_{s+1} is semisimple and abelian, it is 𝔽_{p}-semisimple for some prime p ≤ c. First we describe FL^{Mod_{p}L} algorithms for some basic linear algebraic problems over 𝔽_{p} that follows from the results of Buntrock et al [20] . These will be used as subroutines in our FL^{Mod_{p}L} algorithm for computing the strong generator set of N_{s} rel N_{s+1}.

Proposition 5.21. For a prime p consider the vector space V = 𝔽_{p}^{r} then

1. Let B = {v_{1}, …, v_{n}} be a subset of V. Given v ∈ V, in Mod_{p}L we can check whether v is contained in the subspace U of V spanned by B. Furthermore, if v ∈ U then in FL^{Mod_{p}L} we can compute a_{1}, …, a_{n} ∈ 𝔽_{p} such that v = ∑_{i=1}^{n} a_{i}v_{i}.

2. Let B = {v_{1}, …, v_{n}} be a subset of V not necessarily linearly independent and let U be the subspace of V spanned by B. Then in FL^{Mod_{p}L} we can compute a subset B′ ⊆ B such that B′ is a basis for U.

Proof. Let e_{1}, …, e_{m} denote the standard basis for V = 𝔽_{p}^{r} and let v_{i} = ∑_{j=1}^{m} v_{i,j}e_{j} for 1 ≤ i ≤ n. Let v = ∑_{j=1}^{m} v_{j}e_{j}. Let A be the matrix (v_{i,j}), 1 ≤ i ≤ n and 1 ≤ j ≤ m. Let b the column vector (v_{1}, …, v_{m})^{T}. Then the vector v is in the span of B if and only if the system of linear equation Ax = b has a solution. Furthermore if x_{i} = a_{i}, 1 ≤ i ≤ n is a solution to Ax = b then v = ∑_{i=1}^{n} a_{i}v_{i}. Part 1 then follows from Theorem 2.5.

To prove part 2 consider the FL^{Mod_{p}L} algorithm that cycles over all 1 ≤ i ≤ n and outputs v_{i} if it is not in the span of the set {v_{1}, …, v_{i−1}}. Clearly the output B′ is a basis of the vector space spanned by B.

We fix some notations: Recall that R_{i,s}/R_{i,s+1} is isomorphic to vector space over 𝔽_{p} which we denote by V_{i}. Let V be the direct sum ⊕_{i=1}^{m}V_{i}. Then R_{s}/R_{s+1} is isomorphic to V. For a permutation x ∈ R_{s} let v_{x} denote the image of xR_{s+1} under the above mentioned isomorphism. If x and y are permutations in L then for integers a and b it follows that v_{x^{a}y^{b}} = ãv_{x} +b̃v_{y} where ã and b̃ are the elements a (mod p) and b (mod p) of 𝔽_{p} respectively. Furthermore the vector space structure of R_{s}/R_{s+1} is obtainable effectively in logspace, i.e. for an element x ∈ R_{s} one can compute the image v_{x} of the coset xR_{s+1} in V in FL. This is because each of the groups R_{i,s} are constant sized. Since \frac{N_{s}}{N_{s+1}} ↪ R_{s}/R_{s+1} it is isomorphic to a subspace of V which denote by W. We are given a subset S ⊆ N_{s} such that NCL_{G}(S) = N_{s}.

The group NCL_{G}(S) is the group generated by the set {g^{−1}sg|s ∈ Sg ∈ G} and hence the conjugation action can be seen as a linear action of G on V as we now explain: For each element g ∈ G, g maps v_{h}, h ∈ R_{s}, to the vector v_{h^{∗}} where h^{∗} = g^{−1}hg. Since both R_{s} and R_{s+1} are normalised by G, each g ∈ G is an invertible linear transformation from V to V.

First S ⊆ N_{s} and N_{s} is a normal subgroup of G. Therefore NCL_{H}(S) is a subgroup of N_{s} that is closed under conjugation by elements of H. Thus we have the following observation of Luks and McKenzie [50] about the normal closure NCL_{H}(S).

Proposition 5.22 (Luks and McKenzie). Let H ≤ G and let W be the subspace {v_{x}|x ∈ NCL_{H}(S)}. Then W is the smallest subspace of V containing {v_{s}|s ∈ S} and closed under the action of elements of H

We compute the generator set of NCL_{N_{j}}(S) rel N_{s+1} inductively starting with j = s down to j = 0 using the SGS of N_{j} rel N_{s} that is already computed. Let U_{j} denote the subspace of V associated to NCL_{N_{j}}(S)/N_{s+1} then it follows from 5.22 that U_{j} is the closure of {v_{s}|s ∈ S} under N_{j}. We compute a basis for U_{j}.

To begin with since N_{s}/N_{s+1} is commutative. It follows that S ∪ N_{s+1} is a generating set for NCL_{N_{s}}(S) and hence U_{s} is spanned by {v_{s}|s ∈ S}. Assume that we have already computed a basis for U_{j+1}. Our task is to compute a basis for U_{j} using the basis for U_{j+1} and the strong generator set C of N_{j} rel N_{j+1}. The vector space U_{j} is the span of gU_{j+1} where g ranges over the distinct coset representative of N_{j+1} in N_{j}.

Proposition 5.23. Given a basis for U_{j+1} we can compute a basis for U_{j} in Mod_{p}L.

Proof. Recall that N_{j}/N_{j+1} is T -semisimple for some simple group T. Since U_{j+1} is stabilised by N_{j+1} we can assume that N_{j}/N_{j+1} is acting on U_{j+1}. Depending on whether T_{j} is abelian or not we have two cases.

T is non-abelian We prove that in this case it is sufficient to find the closure of U_{j+1} under all monomials M over C which are of degree bounded by a constant c′ that depends only on c. Recall that R_{j}/R_{j+1} = T_{1} × … × T_{n} for some integer n and there is a partition I = {I_{1} … I_{r}} such that N_{j}/N_{j+1} is product of diagonal groups Diag (∏_{i∈I_{k}} T_{i}), 1 ≤ i ≤ r. Each of

the diagonal component Diag (∏_{i∈I_{k}} T_{i}) is isomorphic to T and the strong generator set C is the union C = ∪C_{k} where C_{k} consists of one element g ∈ N_{j} for each gN_{j+1} ∈ Diag (∏_{i∈I_{k}} T_{i}).

Consider any element g ∈ C. We say that g is trivial on Ω_{i} if g|_{Ω_{i}} ∈ R_{i,j+1}. For each g ∈ C there exists h_{g} ∈ N_{j+1} such that g|_{Ω_{i}} = h|_{Ω_{i}} for all Ω_{i} for which g is trivial. Consider the elements μ_{g} = h_{g} −g, g ∈ C. Then U_{j} is the space spanned by MU_{j+1} where M ranges over all (non-commutative) monomial in {μ_{g} : g ∈ C}. If g ∈ C_{i} and h ∈ C_{j}, i ≠ j then since gh = hgx for some x ∈ N_{j+1} we can assume that P (g) and Q(h) commutes for any two polynomials P (X) and Q(X). Any monomial M in μ_{g}’s can therefore be assumed to be in the form μ_{1} … μ_{n} where μ_{i} is either 1 or h_{g} − g for some g ∈ C_{i}.

For any i if g is trivial on Ω_{i} then μ_{g}V_{i} = 0. Since each orbit Ω_{i} is of cardinality at most c there exists a constant c′ that depends only on c such that for any orbit Ω_{i} there are at most c′ distinct μ_{g}’s that are non-zero on V_{i}. Consider a monomial M = μ_{1} … μ_{n} of degree n > c′. For any V_{i} there is a μ_{k} such that μ_{k}V_{i} = 0. Therefore since V is the direct sum V_{1} ⊕ … ⊕ V_{m}, MV = 0. As a consequence to obtain U_{j} it is sufficient to take the closure of U_{j+1} with respect to monomials in {μ_{g}|g ∈ C} of total degree bounded by c′. In FL we can enumerate all monomials over C of degree bounded by c′. Hence U_{j} is the obtained by taking the span of MU_{j+1} where M is a monomial in C of degree at most c. A basis of for U_{j} can then be computed in FL^{Mod_{p}L} using Proposition 5.21.

T is abelian The vector space U_{j+1} is closed action of N_{j+1}. Therefore as far as computing the closure of U_{j+1} is concerned we assume that the group algebra of the quotient group N_{j}/N_{j+1} is acting on V. In this case the group algebra of N_{j}/N_{j+1} is abelian. Therefore elements g and h can be thought of as commuting linear transformations over V. Also there is a prime q < c such that g^{q} − 1 = 0. In FL^{Mod_{p}L} we can find a set T of elements in the group algebra N_{j}/N_{j+1} such that the U_{j} is the span of {τU_{j+1} : τ ∈ T }.

We now give the FL^{Mod_{p}L} algorithm for computing the strong generator set of N_{s} rel N_{s+1} problem. Let W denote the subspace of {v_{x}|x ∈ N_{s}}. It follows from Proposition 5.23 that a basis B for the space W. We can keep track of the entire permutations: Whenever we add the vector gv_{x} into B we add the corresponding permutation g^{−1}xg into B. We thus have a subset B of N_{s} such that {v_{x}|x ∈ B} spans W. Let B = {x_{1}, …, x_{n}} then, for 1 ≤ i ≤ n, define the set C_{i} = {x_{i}^{a} : 1 ≤ a ≤ p − 1}. The set ∪_{i=1}^{n}C_{i} is the strong generator set of N_{s} rel N_{s+1}. Clearly C can be computed in FL^{Mod_{p}L}.

Finally, we describe how to compute Sift(x) for any x ∈ N_{s} with respect to the above mentioned strong generator set. In logspace compute the vector v_{x} ∈ V corresponding to the permutation x. Using Proposition 5.21 compute a_{i} ∈ 𝔽_{p} such that v_{x} = ∑ a_{i}v_{x_{i}}. The sift of x is given by Sift(x) = x ∏_{i=1}^{r} x_{i}^{−a_{i}}. This completes the abelian case of our induction step.

We have thus shown that the strong generator set of G rel N_{s+1} can be computed inductively starting from s = 0. Since the locally residual series G = N_{0} ⊵ … ⊵ N_{l} is of length l bounded by a constant in c we have the following theorem.

Theorem 5.24. Let G be a permutation group with orbits of size bounded by a constant c. Given a generator set A for G, we can compute the strong generator set for G with respect to the locally residual series in the Mod_{k}Lhierarchy. The constant k is the product of all primes less than c and the level of the hierarchy depends only on c.

5.5 The target reduction procedure

Our goal is to show that PWS_{c} is in the Mod_{k}L-hierarchy. The heart of the algorithm is the target reduction procedure: Given a instance (G, Ω, Δ) of PWS_{c}, we compute a subgroup G′ of G containing G (Δ) such that for each G-orbit Ω′ that contains a point of Δ, G′|_{Ω′} is a proper subgroup of G|_{Ω′}. In this section we show that target reduction can be performed in the Mod_{k}L-hierarchy.

Let Ω_{1}, …, Ω_{m} be the set of G-orbits. We fix some terminologies and conventions local to this section. Points in Δ will be called target points. Target orbits are G-orbits that contain target points, i.e. orbits Ω_{i} such that Ω_{i} ∩ Δ ≠ ∅.

Firstly, if Σ ⊆ Δ then G (Σ) ≥ G (Δ). Let Σ be the subset of Δ that contains exactly one target point from each target orbit. Any target orbit will continue to be a target orbit even if we replace Δ by the subset Σ, i.e. if G′ be the group obtained by performing target reduction on (G, Ω, Σ) then G′ ≥ G (Δ) and G′|_{Ω′} is a proper subgroup of G|_{Ω′} for all target orbit Ω′. Therefore as far as target reduction is concerned, we can assume that the instance (G, Ω, Δ) is such that each G-orbit contains at most one target point.

We make an additional assumption that G acts primitively on each target orbit which we justify now. Consider a structure forest F = {T_{1}, …, T_{m}} of G where T_{i} is the structure tree of the transitive action of G on Ω_{i}. Let Ω^{∗} denote the vertices of F. We identify the set Ω with the set of leaf nodes of F. Recall from Section 3.4 that G’s action on Ω can be extended to Ω^{∗} such that given the action of an element g ∈ G on Ω^{∗}, we can recover its action on Ω. Furthermore, all the G-orbits of Ω^{∗} are of size bounded by c. In FL we can compute the structure forest F of G by separately computing the structure tree T_{i} for each 1 ≤ i ≤ m. Furthermore for a given g in G, in FL we can compute the action of g on the Ω^{∗}.

Let Ω_{i}^{∗} ⊆ Ω^{∗}, 1 ≤ i ≤ m, denote the children of the root of T_{i}. Then for every 1 ≤ i ≤ m, the set Ω_{i}^{∗} is an orbit and G acts primitively on it (Theorem 3.12). Let Δ^{∗} be the ancestors of elements of Δ in ∪_{i=1}^{m}Ω_{i}^{∗}.

Proposition 5.25. The group G (Δ^{∗}) contains G (Δ) and for any subgroup H of G, if H|_{Ω_{i}^{∗}} < G|_{Ω_{i}^{∗}} then H|_{Ω_{i}} < G|_{Ω_{i}}.

Proof. Consider any δ^{∗} ∈ Δ^{∗}. There is a δ ∈ Δ such that δ^{∗} is the ancestor of δ in the structure forest of G. Let Σ be the leaves of the structure tree rooted at δ^{∗} then Σ is a G-block that contains δ (Section 3.4). Thus for a g ∈ G if δ^{g} = δ then Σ^{g} = Σ and hence δ^{∗}^{g} = δ^{∗}. This proves that G (Δ^{∗}) ≥ G (Δ).

Consider any subgroup H of G. Recall that the action of G on the structure tree T_{i} depends only on the action of G|_{Ω_{i}} on Ω_{i}. Hence if H|_{Ω_{i}} = G|_{Ω_{i}} then H|_{Ω_{i}^{∗}} = G|_{Ω_{i}^{∗}}.

Proposition 5.25 proves that target reduction for the instance (G, Ω, Δ) can be achieved by performing target reduction on (G, Ω^{∗}, Δ^{∗}). Summarising the above discussions, for target reduction we assume that the given instance (G, Ω, Δ) has the following properties.

1. All G-orbits are of size bounded by a constant c.

2. G acts primitively on each target orbit.

3. Each target orbit contains a unique target point.

In this section we use the following notation: X denotes the set of all i such that Ω_{i} is a target orbit. For each index i ∈ X, δ_{i} denotes the unique target point in Ω_{i}. Identifying the indices of X, the corresponding target orbits and the target points leads to no confusion. Hence for a subset of Z of X, by target orbits of Z we mean the collection {Ω_{i}|i ∈ Z}. Similarly by target points of Z we mean the set {δ_{i}|i ∈ Z}.

Overview of the target reduction step

First we use Theorem 5.24 to compute the strong generator set of G with respect to the locally residual series G = N_{0} ⊵ … ⊵ N_{l} = {1}. In fact in the Mod_{k}L-hierarchy we obtain the following.

1. For each i a residual series G_{i} = R_{i,0} ⊵ … ⊵ R_{i,l} = 1 such that, R_{i,s+1} = Res_{T_{s}} (R_{i,s}).

2. The product group R_{s} = ∏_{i} R_{i,s} and

3. The groups N_{s} = G ∩ R_{s}.

Consider any target orbit Ω_{i}. Recall that N_{s}|_{Ω_{i}} = R_{i,s} (Proposition 5.17) and hence G_{i} = N_{0}|_{Ω_{i}} ⊵ … ⊵ N_{l}|_{Ω_{i}} = {1} is a residual series for G_{i}. Since G_{i} acts primitively on Ω_{i}, the last nontrivial group in this series is Soc (G_{i}) (Lemma 5.15). Let X_{s} denote the set of all i such that N_{s}|_{Ω_{i}} = Soc (G_{i}) and N_{s+1}|_{Ω_{i}} = {1}. We have ∪X_{s} = X.

The target reduction is done inductively in l stages where in the sth stage we handle the target orbits in X_{s}. Inductively we compute the generator sets of the sequence of groups G = H_{0} ≥ … ≥ H_{l+1} such that for all s, H_{s} ≥ G (Δ) and H_{s}|_{Ω_{i}} is a proper subgroup of G|_{Ω_{i}} for each i in ∪_{j=0}^{s−1}X_{s}. In fact the group H_{s} that we compute in the sth stage will contain N_{s}. Since X = ∪_{j=0}^{l}X_{s}, the group H_{l+1} is the required group G′.

To begin with H_{0} = G. Inductively assume that we have computed a generator set A_{s} of H_{s}. To compute H_{s+1} we first identify a subset Y_{s} ⊆ X_{s} of critical indices. A subset Y of X is said to be critical if it has the following properties:

1. Let N be the subgroup of N_{s} that fixes all the target points in Y then N|_{Ω_{i}} < N_{s}|_{Ω_{i}} for all i ∈ X_{s}.

2. For any x ∈ G there is a y ∈ N_{s} such that x^{∗} = xy fixes all the points of Y.

Proposition 5.26. Let H be the subgroup of H_{s} that fixes all the target points in a critical subset Y of X_{s} then H_{s} ≥ H ≥ G (Δ) and for all i ∈ X_{s} H|_{Ω_{i}} < G_{i}.

Proof. Let Δ′ be the subset of Δ containing all the target points of Y. By induction hypothesis H_{s} ≥ G (Δ) and hence H = H_{s} (Δ′) ≥ G (Δ). The group H_{s} ∩ R_{s} = N_{s} we have H ∩ R_{s} = N. Since N|_{Ω_{i}} < R_{i,s} for all i ∈ X_{s}, H ∩ R_{s}|_{Ω_{i}} < R_{i,s}. Therefore by Proposition 5.17 we have H|_{Ω_{i}} < G_{i} for all i ∈ X_{s}.

Recall that our goal is to compute a subgroup H_{s+1} of H_{s} that contains G (Δ) and is strictly smaller that G_{i} on Ω_{i} for each i ∈ X_{s}. By Proposition 5.26 it is sufficient to choose H_{s+1} to be the subgroup of H_{s} that fixes all the target points in Y for some critical subset Y of X_{s}. In the sth stage of the algorithm we identify a critical subset Y_{s} which is effective, i.e. given any x ∈ G, in FL^{Mod_{k}L} we can compute a y ∈ N_{s} such that x^{∗} = xy fixes all the points in Y_{s}. The subgroup H_{s+1} is the subgroup of H_{s} that fixes all the target points of Y_{s}.

We now show how a generator set for H_{s+1} can be computed. Let A_{s} be the a generator set for H_{s}. Since Y_{s} is critical for each x ∈ A_{s} there is a y ∈ N_{s} such that x^{∗} = xy fixes all the target points in Y_{s}. Let A_{s}^{∗} denote the set {x^{∗}|x ∈ A_{s}}.

Proposition 5.27. Let N be the subgroup of N_{s} that fixes all the target points of Y_{s} and let B be a generator set for N. Then A_{s}^{∗} ∪ B generates the subgroup H_{s+1}.

Proof. First, we claim that A_{x}^{∗}N_{s} generates H_{s}. Consider any g ∈ H_{s}. Since A_{s} generates H_{s}, for some integer t ≥ 0 there exists t elements x_{1}, …, x_{t} in A_{s} such that g is the product ∏_{i=1}^{t} x_{i}. For any x ∈ A_{s} there is an element y ∈ N_{s} such that x^{∗} = xy is contained in A_{s}^{∗}, Therefore we have for 1 ≤ i ≤ t elements x_{i}^{∗} ∈ A_{s}^{∗} and y_{i} ∈ N_{s} such that g = x_{1}^{∗}y_{1} … x_{t}^{∗}y_{t}. This proves our claim.

The group N_{s} is a normal subgroup of G and hence is also a normal subgroup of H_{s}. Therefore every element g ∈ H_{s} can be written as g = g_{1}g_{2} where g_{1} is contained in the group generated by A_{s}^{∗} and g_{2} ∈ N_{s}. Furthermore, since every element of A_{x}^{∗} fixes all the target points of Y_{s}, so does g_{1}. As a consequence any element of H_{s+1}, the subgroup of H_{s} that fixes the target points of Y_{s}, is of the form uv where u is in the group generated by A_{s}^{∗} and v ∈ N. Hence A_{s}^{∗}N generates the group H_{s+1} and if B is a generator set of N, A_{s}^{∗} ∪ B generates H_{s+1}.

To complete the inductive procedure for target reduction it is thus sufficient to perform the following subtasks.

1. Compute a critical subset Y_{s} ⊆ X_{s}.

2. Given x ∈ G compute a y ∈ N_{s} such that xy fixes each of the target points of Y_{s}.

3. Compute a generator set of the subgroup N of N_{s} that fixes each of the target points of Y_{s}.

Depending on whether N_{s}/N_{s+1} is abelian or not we have two case. When N_{s}/N_{s+1} is abelian then N_{s}/N_{s+1} is 𝔽_{p}-semisimple for some prime p ≤ c. In this case we show that the steps 1, 2 and 3 can be done in FL^{Mod_{p}L}. On the other hand when N_{s}/N_{s+1} is nonabelian then the steps 1, 2 and 3 can be done in FL. We explain these two case in the next two subsections.

5.5.1 Computing the critical orbits: abelian case

In this case the quotient group N_{s}/N_{s+1} is 𝔽_{p}-semisimple for some prime p ≤ c. Let Ω_{1}, …, Ω_{m} be the G-orbits and let G_{i} = G|_{Ω_{i}}. Then by the O’Nan-Scott theorem Soc (G_{i}) is regular on Ω_{i}, i.e. Soc (G_{i}) is transitive on Ω_{i} and for any δ ∈ Ω_{i}, the subgroup of Soc (G_{i}) that fixes δ is the trivial group. As a consequence we have the following property.

Proposition 5.28. Let Y be any subset of X_{s} and let K be the subgroup of N_{s} that fixes the target points of Y. Then we have.

1. K ⊴ G.

2. For any i in X_{s} either K|_{Ω_{i}} is trivial or is Soc (G_{i}).

3. For any i ∈ X_{s} such that K|_{Ω_{i}} is nontrivial and for any two elements δ and δ′ of Ω_{i}, there is an element h of K such that δ^{h} = δ′.

Proof. The group K is a subgroup of N_{s} and hence for all i ∈ X_{s}, K|_{Ω_{i}} is a subgroup of Soc (G_{i}). Moreover K fixes the target point δ_{i} of Ω_{i} for each i ∈ Y. Therefore the projection of K onto Ω_{i} is the subgroup of Soc (G_{i}) that fixes δ_{i}. However since Soc (G_{i}) is regular on Ω_{i}, K|_{Ω_{i}} is trivial for all i ∈ Y. Thus K is the intersection of the groups N_{s} and ∏_{i∉Y} R_{i,s}. The group G normalises the group ∏_{i∉Y} R_{i,s}. Also N_{s} ⊴ G. Hence their intersection K is a normal subgroup of G. This proves part 1.

Consider an i ∈ X_{s}. As argued before since K ≤ N_{s}, K|_{Ω_{i}} is a subgroup of Soc (G_{i}). Suppose that K|_{Ω_{i}} is nontrivial. Then since K is a normal subgroup of G and since G|_{Ω_{i}} = G_{i}, it follows that K|_{Ω_{i}} is a normal subgroup of G_{i}. However by the O’Nan-Scott theorem Soc (G_{i}) is the unique minimal normal subgroup of G_{i}. Therefore K|_{Ω_{i}} = Soc (G_{i}) which proves part 2.

Finally consider an i in X_{s} such that K|_{Ω_{i}} is nontrivial. The group Soc (G_{i}) is regular on Ω_{i} (O’Nan-Scott theorem). Hence for any two elements δ and δ′ of Ω_{i} we have an element g ∈ Soc (G_{i}) such that δ^{g} = δ′. Since K|_{Ω_{i}} = Soc (G_{i}), part 3 then follows as there is an element g^{∗} ∈ K such that g^{∗}|_{Ω_{i}} = g.

We fix the following notation for this subsection. Recall that N_{s} is the intersection of the product group R_{s} = ∏_{i=1}^{m} R_{i,s} and G (Subsection 5.4.1). The quotient groups R_{i,s}/R_{i,s+1} is 𝔽_{p}-semisimple and hence is a vector space V_{i} over 𝔽_{p}. Let V be the direct sum ⊕_{i=1}^{m}V_{i} then R_{s}/R_{s+1} is isomorphic to V. We identify the vector space V with the quotient group R_{s}/R_{s+1} under this isomorphism, i.e. for every element x ∈ R_{s} we associate isomorphic image v_{x} of x in V. Clearly for any x and y in R_{s}/R_{s+1} the vector v_{x+y} is v_{x} + v_{y} and for any integer a v_{x^{a}} = ãv_{x}, where ã ∈ 𝔽_{p} is the element a (mod p).

Proposition 5.29. Given any element x ∈ R_{s}, in FL we can compute the vector v_{x}.

Proof. Let w_{i} denote the projection of v_{x} onto the vector space V_{i}. Since the vector space V is the direct sum of the subspaces V_{i}, v_{x} = ∑_{i=1}^{m} w_{i}. The order of the group R_{i,s} is at most c! as the size of the orbit Ω_{i} is less than c. Hence in FL we can compute the projection w_{i} and thus compute v_{x}.

The quotient group N_{s}/N_{s+1} is a subgroup of the R_{s}/R_{s+1} (more precisely N_{s}/N_{s+1} ↪ R_{s}/R_{s+1}) and hence is a subspace U of V.

Proposition 5.30. Given the strong generator set C of N_{s}, in FL^{Mod_{p}L} a subset B = {x_{1}, …, x_{r}} of C can be computed such that the vectors v_{x_{1}}, …, v_{x_{r}} forms a basis of U.

Proof. The subset C = {v_{x}|x ∈ C} of V spans U. Using Proposition 5.21 in FL^{Mod_{p}L} compute a subset B of C that forms a basis of U. For each v ∈ B pick a permutation x ∈ C, say the lexicographically least such that v_{x} = v and form the subset B of C. Clearly B can be computed in FL^{Mod_{p}L}.

Our goals are (1) to compute a critical subset Y_{s} of X_{s}, (2) compute a generator of the subgroup N of N_{s} that fixes all the points of Y_{s} and (3) give a x ∈ G compute a y ∈ N_{s} such that x^{∗} = xy fixes all the target points of Y_{s}. By Proposition 5.28 it follows that the subgroup K of N_{s} that fixes some of the target points of X_{s} is such that for all i either K|_{Ω_{i}} = 1 or K|_{Ω_{i}} = Soc (G_{i}). The subset Y_{s} of X_{s} that we choose will be a minimal subset of target points such that the subgroup of N_{s} that fixes the points of Y_{s} will be trivial on all the target orbits of X_{s}. First we prove the following proposition that will be used to identify Y_{s} and later on to compute the set N.

Proposition 5.31. Given any subset Y of X_{s} there is a FL^{Mod_{p}L} algorithm to compute the generator set of the subgroup K of N_{s} that fixes all the target points of Y.

Proof. Since N_{s+1} is trivial on all the target orbits it follows that K contains N_{s+1}. Let W denote the vector space associated with the quotient group K/N_{s+1}. From Proposition 5.28 it follows that K is trivial on all the orbits of Y. Therefore K is the intersection of the groups N_{s} and ∏_{j∉Y} R_{i,s}. Hence W is the subspace U ∩ ⊕_{i∉Y_{s}}V_{i}.

In FL^{Mod_{p}L} we first compute the set B = {x_{1}, …, x_{r}} such that B = {v_{x_{1}}, …, v_{x_{r}}} is a basis for U (Proposition 5.30). Consider the projection of U on to the space ⊕_{i∈Y_{s}}V_{i}. Then W is the kernel of this projection. Let A be the matrix associated to this projection with respect to the basis B. The subspace W consists of all vectors ∑ a_{i}v_{x_{i}} which are solutions of the linear equation Ax = 0. Using Theorem 2.5 we can compute a basis u_{1}, …, u_{t} for W. In fact the algorithm outputs the elements a_{ij} ∈ 𝔽_{p} such that u_{i} = ∑_{j=1}^{r} a_{ij}v_{x_{j}}. Let g_{i} = ∏_{j=1}^{r} x_{j}^{a_{ij}} then clearly the set D = {g_{1}, …, g_{t}} generates the quotient group K/N_{s+1}. As part of the strong generator set of G we have already computed a strong generator set C′ of N_{s+1}. The set C′ ∪ D gives a generator set for K.

We now present the FL^{Mod_{p}L} algorithm (Algorithm 6) for computing Y_{s}.

Y ← ∅.

foreach i ∈ X_{s} do

Let K_{i} be the subgroup of N_{s} that fixes target points of Y. 1 if K is nontrivial on Ω_{i} then Y ← Y ∪ {i}

end

Return the set Y_{s} = Y.

Algorithm 6: Computing Y_{s}

For the step 1 in FL^{Mod_{p}L} we first compute the generator set D_{i} of K_{i} (Proposition 5.31). The group K_{i} is trivial on i if and only if all the elements of D_{i} is trivial on Ω_{i}. Thus step 1 can be performed by making a query to a Mod_{p}L oracle and hence Algorithm 6 is a FL^{Mod_{p}L} procedure. Having computed Y_{s} using Proposition 5.31 we compute in FL^{Mod_{p}L} the generator set of the subgroup N of N_{s} that fixes all the target points of Y_{s}. To complete the abelian case we show that for each x ∈ G, x^{∗} can be computed in FL^{Mod_{k}L}.

Proposition 5.32. Given any x ∈ G there is a FL^{Mod_{p}L} algorithm to compute an element y of N_{s} such that xy fixes all the points of Y_{s}.

Proof. Without loss of generality assume that Y_{s} = {1, …, t} for some integer t. Let δ_{i} denote the target point in Ω_{i}. Let K_{0} = N_{s} and for 1 ≤ i ≤ t let K_{i} denote the subgroup of N_{s} that fixes the target points δ_{1}, …, δ_{i}.

First, we prove by induction that there are elements h_{i} ∈ K_{i}, 0 ≤ i < t, such that xh_{0} … h_{i} fixes every element of the set {δ_{1}, …, δ_{i+1}}. Let x map δ_{1} to δ′_{1}. Since K_{0}|_{Ω_{1}} is transitive on Ω_{1} there is an element h_{0} ∈ K_{0} that maps δ′_{1} to δ_{1}. Hence xh_{0} fixes δ_{1}. Inductively assume that there exists elements h_{j}, 0 ≤ j < i such that xh_{0} …, h_{i−1} fixes the target points δ_{1}, …, δ_{i}. Let xh_{0} … h_{i−1} map δ_{i+1} to δ′_{i+1}. Since K_{i} is nontrivial on Ω_{i+1}, it follows from part 3 of Proposition 5.28 that there is an element h ∈ K_{i} that maps δ′_{i+1} back to δ_{i+1}. Let h_{i} = h. The group K_{i} is trivial on all the G-orbits Ω_{1}, …, Ω_{i} and therefore xh_{1} … h_{i} fixes all the points in the set {δ_{1}, …, δ_{i+1}}. The element y = h_{0} … h_{t−1} ∈ N_{s} is such that xy fixes all the target points of Y_{s}. We now give the FL^{Mod_{p}L} algorithm for computing y.

Let x map δ_{i} to ν_{i}. We want to compute an element y ∈ N_{s} that maps ν_{i} to δ_{i} for all i ∈ Y_{s}. To this end consider the vector space V′ = ⊕_{i∈Y_{s}}V_{i} and let U′ be the projection of U onto V′. Recall that the groups R_{i,s} and N_{s+1}|_{Ω_{i}} are trivial for all i ∈ Y_{s}. Therefore the vector spaces V′ and U′ are isomorphic to the groups R_{s} and N_{s} restricted to the target orbits of Y_{s}. For an element x ∈ R_{s} let u_{x} be the image of x in V′ under this restriction. In fact u_{x} is the projection of v_{x} onto V′. Analogues to Proposition 5.30, using Proposition 5.21 we compute in FL^{Mod_{p}L} a subset B′ = {x_{1}, …, x_{t}} of B such that B′ = {u_{x_{1}}, …, u_{x_{t}}} forms a basis for U′. First we show that u_{y} can be computed in FL and then we recover the permutation y in FL^{Mod_{p}L}.

Consider an i ∈ Y_{s}. Since R_{i,s} is a constant sized transitive permutation group on Ω_{i}, in FL^{Mod_{p}L} we can compute an element y_{i} ∈ R_{i,s} that maps ν_{i} back to δ_{i}. The group N_{s}|_{Ω_{i}} = Soc (G_{i}) and by the O’Nan-Scott theorem Soc (G_{i}) has a regular action on Ω_{i}. The element yy_{i}^{−1} ∈ R_{s} fixes the point ν_{i} and therefore restricted to Ω_{i} is trivial. As a result if w_{i} denotes the projection of u_{y} onto V_{i} then w_{i} = v_{y_{i}}. Since R_{i,s} is a group of order bounded by c!, in FL we can compute the vector w_{i}. The vector u_{y} is given by ∑_{i∈Y_{s}} w_{i} which can also be computed in FL.

To complete the algorithm we need to recover y from the vector u_{y}. Using Proposition 5.21 we compute, in FL^{Mod_{p}L}, elements a_{1}, …, a_{t} ∈ 𝔽_{p} such that u_{y} = ∑_{i=1}^{t} a_{i}u_{x_{i}}. The permutation y = ∏_{i=1}^{t} x_{i}^{a_{i}} is the required element of N_{s}.

5.5.2 Computing the critical orbits: nonabelian case

Consider any i ∈ X_{s}. By O’Nan-Scott theorem Soc (G_{i}) is either K (type 2) for some minimal normal subgroup K of G_{i} or is of the form K_{1}×K_{2} (type 3) where K_{1} and K_{2} are the only minimal normal subgroups of G_{i}. For each i ∈ X_{s}, by a socle part associated to i we mean a minimal normal subgroup of G_{i}. For a T -semisimple group L = T_{1} ×…×T_{r} by a simple part we mean one of the subgroup T_{i}.

The quotient group N_{s}/N_{s+1} is a subgroup of the T_{s}-semisimple group R_{s}/R_{s+1}. Hence by Scott’s Lemma (Lemma 3.6), N_{s}/N_{s+1} is a product of diagonals of simple parts of R_{s}/R_{s+1}. Consider two simple parts T′ and T′′ of R_{s}/R_{s+1}. As before we say that T′ and T′′ are linked if in N_{s}/N_{s+1}, T′ and T′′ are in the same diagonal component. We now extend the “linking” relation to socle parts. Any socle part K is the product of certain subset of simple parts of R_{s}/R_{s+1}. We say that the socle parts K′ and K′′ are linked if K′ = …×T′ ×… and K′′ = …×T′′ ×… such that T′ and T′′ are linked. For socle parts K′ and K′′ we prove that either they are fully linked or are unlinked.

Proposition 5.33. Let K′ = T′_{1} × … × T′_{u} and K′′ = T′′_{1} × … × T′′_{v} be two socle parts. If K′ and K′′ are linked then u = v and there is a permutation π ∈ S_{u} such that T′_{i} is linked to T′′_{i^{π}}.

Proof. Let K′ and K′′ be socle parts corresponding to orbits Ω′ and Ω′′. Let us assume without loss of generality that T′_{1} is linked to T′′_{1}. Since K′ is the minimal subgroup of G|_{Ω′}, for any i there is an element g ∈ G such that g^{−1}T′_{1}g = T′_{i} (Lemma 5.7). The element g maps via conjugation T′′_{1} to some T′′_{i}. Thus for any simple part T′_{i} in K′ there is a simple part T′′_{i} in K′′ such that T′_{i} and T′′_{i} are linked. However no two simple parts of K′ are linked. Each simple part of K′ therefore, is linked to distinct simple part of K′′. By interchanging the role of K′ and K′′ we can prove the converse. As a result, we have u = v and π ∈ S_{u} is the permutation that maps i to j if T′_{i} is linked to T′′_{j}.

Recall that for target reduction our goal is to (1) compute the set Y_{s} of critical orbits, (2) compute a generator set of subgroup N of N_{s} that fixes all the points of Y_{s} and (3) for each x ∈ G an element y ∈ N_{s} such that x^{∗} = xy is trivial on all the target points of Y_{s}. We now show that each of these three tasks can be achieved by an FL algorithm.

Computing Y_{s}

Let K be the collection of socle parts of orbits of X_{s}. To construct critical subset Y_{s} of X_{s} consider the graph G = (K, E) where the edge set E is partitioned into the set of red edges R and the set of blue edges B. The red edges R consists of all unordered pairs {K_{1}, K_{2}} where K_{1} and K_{2} are linked. On the other hand the blue edges consists of all unordered pairs {K_{1}, K_{2}} such that K_{1} and K_{2} are distinct socle parts of the same G-orbit. We have the following proposition about the structure of the graph G.

Proposition 5.34. The red subgraph, i.e. G_{red} = (K, R), consists of disconnected cliques and any blue edge is between two disconnected red cliques.

Proof. The “linking” relation is an equivalence relation and hence the red subgraph consists of disconnected red cliques. Any blue edge is between two socle parts of the same G-orbit. Hence they cannot be linked. Therefore blue edges are always between two disconnected red cliques in the red subgraph.

In logspace we compute the set C of red cliques in the red subgraph G_{red}. We partition the set C into subsets C′ and C′′, where a red clique C is put in C′ if C contains an element K = Soc (G_{i}) for some i ∈ X_{s}. The remaining cliques are put in C′′. We now construct the subset of critical orbits Y_{s} as the union of Y′_{s} and Y′′_{s}.

The set Y′_{s} consists of one index i per clique C ∈ C′ such that K = Soc (G_{i}) ∈ C. Shrink all the red cliques in G and delete all vertices (and blue edges incident on them) that corresponds to cliques in C′. Call the new graph G′. In G′, compute the lexicographically first spanning forest of blue edges. Let B′ be the blue edges in the spanning forest. Recall that each e ∈ B′ corresponds to the orbit Ω_{i} where Soc (G_{i}) = K × K′. The subset Y′′_{s} of the critical subset X′′_{s} consist of such indices i corresponding to edges in B′. We prove the following proposition

Proposition 5.35. The set Y_{s} = Y′_{s} ∪ Y′′_{s} can be computed in logspace. Let N be the subgroup of N_{s} that fixes all the target points of Y_{s} then N|_{Ω_{i}} ≤ R_{i,s} for all i ∈ X_{s}.

Proof. The sets Y′_{s} and Y′′_{s} can be computed in logspace as this involves reachability in undirected graphs (Lemma 2.1).

Let Δ′ be the subset containing all the target points of Y_{s} and let N = N_{s} (Δ′). Depending on whether Soc (G_{i}) has one or two socle parts we have the following two cases.

Case 1: The socle Soc (G_{i}) is itself a socle part K. Consider the red clique C ∈ C′ that contains K. By the construction of Y′_{s} there is a j ∈ Y′_{s} such that Soc (G_{j}) = K′ ∈ C. Since K′ and K are linked, any h ∈ N_{s} when restricted to Ω_{i} ∪ Ω_{j} is of the form ⟨ϕ(h′), h′⟩, h′ ∈ K′, for some isomorphism ϕ from K′ to K. Therefore N when restricted to Ω_{i} is ϕ(K′_{δ_{j}}). By O’Nan-Scott’s theorem K′ is transitive and hence K′_{δ_{j}} is a proper subgroup of K′. Thus N restricted to Ω_{i} is also a proper subgroup of K = R_{i,s}.

Case 2: The socle Soc (G_{i}) is of the form K × K′. Then there is blue edge e = {K, K′} in the graph G. Firstly if e is one of the edges in the maximal spanning forest B′ then N fixes the target point corresponding to e. The group N|_{Ω_{i}} is a diagonal group Diag (K × K′) (O’Nan-Scott theorem) and hence a proper subset of K × K′. Thus we have disposed the case when e is an edge of the spanning forest B′.

We now handle the case when e is not an edge of the spanning forest B′. Suppose that the edge e = {K, K′} connects the distinct red cliques C_{1} and C_{2} with K ∈ C_{1} and K′ ∈ C_{2}. If C_{1} (or C_{2}) is a clique in C′ then there is a j ∈ Y′_{s} such that Soc (G_{j}) = K_{j} ∈ C_{1} (or C_{2}). By an argument similar to the Case 1 it follows that N restricted to K is a strict subgroup K′′ isomorphic to the subgroup of K_{j} that fixes δ_{j}. Hence N restricted to Ω_{i} is K′′ × K′ which is a strict subgroup of R_{i,s} = K × K′.

Suppose that both C_{1} and C_{2} are cliques of C′′. Then since B′ forms a maximal spanning forest, adding edge e to B′ gives a cycle e_{1}, …, e_{r}, e (see the figure below).

[figure: •; K_{2}; K′_{r−1}; •; e_{r}; K_{r}; K′_{r}; •; e_{1}; K_{1}; K′_{1}; K; •; K′; e]

Let Ω_{j_{t}} be the orbit that corresponds to the edge e_{t} and let Soc (G_{j_{t}}) = K_{t} × K′_{t}. The group N fixes all the points δ_{j_{t}} ∈ Ω_{j_{t}}. By case 3 of O’Nan-Scott theorem it follows that N|_{Ω_{j_{t}}} is the diagonal group Diag (K_{t} × K′_{t}). Note that K_{1} and K′_{t} are linked to K and K′ respectively in N_{s}. Hence the group N restricted to Ω_{i} is a diagonal group Diag (K × K′) which is a strict subgroup of R_{s,t} = K × K′.

Computing x^{∗}

Given an x ∈ G we give an FL algorithm to compute a y ∈ N_{s} such that x^{∗} = xy fixes all target points in Y_{s}. For any i ∈ Y_{s} let the target point δ_{i} of Ω_{i} be mapped to ν_{i}. Then we want to find a y in N_{s} that maps ν_{i} back to δ_{i}.

Proposition 5.36. Given an i ∈ X_{s}. There is an FL algorithm to compute a subset D_{i} ⊆ N_{s} elements such that (1) the projection of D_{i} to Soc (G_{i}) is one-to-one and (2) for any socle part K′ of Soc (G_{j}), j ∈ X_{s}, D_{i} projected to K′ is trivial if K′ is not linked to any of the socle parts of Soc (G_{i}).

Proof. Let R_{s}/R_{s+1} = T_{1} × … × T_{u} where each T_{i} is isomorphic to T. Since N_{s}/N_{s+1} ↪ R_{s}/R_{s+1} there exists a partition I = {I_{1}, …, I_{t}} of indices 1, …, u such that N_{s}/N_{s+1} is the product ∏_{k=1}^{t} Diag (∏_{j∈I_{k}} T_{j}). We have computed the strong generator set C of N_{s} rel N_{s+1} as part of the SGS of G. Recall that the strong generator set C of N_{s} rel N_{s+1} consists of subset C_{1}, …, C_{t} where the subset C_{k} corresponds to the diagonal group Diag (∏_{j∈I_{k}} T_{j}), i.e. the projection of C_{k} on T_{j} is the group T_{j} if j ∈ B_{i} and 1 otherwise.

Let x_{1}, …, x_{r} be the elements of C whose action on Ω_{i} is nontrivial. Then for any other socle part K_{j} that is not linked to any of the socle parts of Soc (G_{i}), x_{i}’s are trivial on K_{j}. Furthermore if z_{i} denotes the projection of x_{i} onto Soc (G_{i}), then z_{1}, …, z_{r} generates Soc (G_{i}). For each element z ∈ K we express z as a product z = z_{i_{1}} … z_{i_{k}}. Include into D_{i} the element x_{z} = x_{i_{1}} … x_{i_{k}}. Since Soc (G_{i}) is a constant sized group and each x_{i}’s are elements of the group G with constant sized orbits, D_{i} can be computed in FL.

Remark 5.37. Consider the SGS C = ∪_{k=1}^{t}C_{k} of N_{s} rel N_{s+1} where C_{k} corresponds to the diagonal component Diag (∏_{j∈I_{k}} T_{j}). For a j ∈ X_{s} the elements of C_{k} is nontrivial on Ω_{j} if and only if a Soc (G_{j}) = … × T_{r} × … and r ∈ I_{k}. It follows from the proof of Proposition 5.36 that we can ensure C_{k} ⊆ D_{j} for any j such that C_{k} is nontrivial on Ω_{j}. Therefore the set ∪_{i∈X_{s}}D_{i} ∪ C′ is a generator set for N_{s} rel N_{s+1} where C′ denotes the elements of C that are trivial on all the target orbits.

We now prove that given any x ∈ G we can compute in FL an element y ∈ N_{s} such that x^{∗} = xy fixes all the target points of Y_{s}. Intuitively we want to choose an element y in N_{s} that “negates” the effect of x on δ_{i} for all i ∈ Y_{s}

First we handle the target points in Y′_{s}. Each i ∈ Y′_{s} can be handled independent of the other target points in Y_{s}, i.e. we can compute elements y_{i} such that xy_{i} fixes δ_{i} and for all j in Y_{s} \ {i}, y_{i}|_{Ω_{j}} is 1. That such an element exists follows from the fact that (1) Soc (G_{i}) is transitive and (2) none of the socle parts of Soc (G_{j}) is linked to K_{i} = Soc (G_{i}) for all j ∈ Y_{s} \ {i}. We compute y_{i} in FL using Proposition 5.36.

The target points in Y′′_{s} however cannot be handles independently, i.e. the choice of a y_{i} for some i ∈ Y′′_{s} will have a nontrivial action on some of the other target orbits in j ∈ Y′′_{s} as illustrated below. Recall that for each i ∈ Y′_{s} there is an edge e_{i} ∈ B′. The difficulty arises for i and j in Y′′_{s} for which the edges e_{i} and e_{j} share a common vertex in G′ (see figure below).

• ^{e_{i}}_{Ω_{i}}_{K′_{i}}  _{K_{i}}• ^{e_{j}}_{Ω_{j}}_{K_{j}}  _{K′_{j}}•

In such a case Soc (G_{i}) = K_{i} × K′_{i} and Soc (G_{j}) = K_{j} × K′_{j} and K_{i} and K_{j} are linked. Thus any nontrivial element chosen from K_{i} will have a nontrivial action on Ω_{j}. Any element y_{j} that we choose for the orbit Ω_{j} has to negate this “propagated” effect. The main idea therefore is to systematically choose elements y_{e} for each edge in B′ keeping in view this propagated effect.

Recall that we have computed a lexicographically least maximal spanning forest F of G′ with edge set B′ ⊆ B. Each tree T in the forest F can be considered as a rooted tree with root at the lexicographically least vertex of T . Thus each edge in B acquires a direction: the tail at the vertex closer to the root (see figure below). This gives a partial order on B′: edges e < e′ if e and e′ belong to the same tree and the unique path from the root to the tail of e′ contains the edge e.

[figure: •; e′; •; •; •; e; •]

Since the vertices of G′ corresponds to red-cliques in G which in turn corresponds to linked socle parts the following proposition is direct.

Proposition 5.38. Let e be any edge with tail at K_{1} and head at K_{2}. Fix an edge e′ ≯ e and let Ω_{i} be the orbit corresponding to e′. Then the socle part K_{2} is not linked to any of the socle parts of Soc (G_{i}).

Consider any edge e ∈ B′ and let T_{e} be rooted tree in the forest B′ containing e. We give an FL algorithm (Algorithm 7) to compute a permutation y_{e} ∈ N_{s} that is trivial on all orbits corresponding to edges e′ ≯ e and for the unique path e_{1}, …, e_{t} from the root of T_{e} to the tail of e, negates the action of xy_{e_{1}} … y_{e_{t}} on the target point corresponding to e. In fact y_{e} will be trivial on all orbits other than those that corresponds to e and edges going out of the head of e (indicated by a double arrow in the figure).

[figure: •; •; e_{1}; •; •; e_{t}; •; e; •; •; •]

The main idea behind algorithm is that once the path e_{1}, …, e_{t} is computed (which can be done in FL using Reingold’s algorithm [57]), the propagated effect of y_{e_{i}}’s on the orbit associated to e can be kept track of using constant amount of space. This is because for each i since e_{i} < e_{j} the permutation y_{e_{i}} is trivial on all the orbits associated to e_{j} for j > i+1. Let e be the directed edge (K_{1}, K_{2}) then since K_{2} is transitive on the orbit associated to e, the permutation y_{e} will be chosen such that y_{e} does not effect any of the orbits associated to edges e′ ≯ e. Proposition 5.38 guarantees that such a y_{e} exists.

Proposition 5.39. Algorithm 7 is a FL algorithm.

Proof. The algorithm can be seen as the composition of two stages (1) computing the paths e_{1}, …, e_{t} (step 1 of Algorithm 7) and (2) computing y_{e} (loop 2 of Algorithm 7). Computing the path involves applying Reingold’s s-t connectivity algorithm [57] (also Lemma 2.1) repeatedly and hence is in FL. The permutation y_{i} (step 3 of Algorithm 7) is computed by first computing the set D_{i} (using Proposition 5.36). Recall that D_{i} projects onto Soc (G_{i}) = K_{1} × K_{2} and K_{2} is transitive (O’Nan-Scott). Hence in FL by examining all the #Soc (G_{i}) elements of D_{i} we can find a desired y_{i}. All these can be achieved by logspace bounded computations.

Let e_{1}, …, e_{r} denote a topological sorting of edges in B′ and let y′′ = y_{e_{1}} … y_{e_{r}} then y′′ is trivial on all orbits of Y′_{s} and xy′′ fixes all the target points in Y′′_{s}. Recall that we have already computed a y′ such that y′ is trivial on all the orbits in Y′′_{s} and xy′ fixes all points of Y′_{s}. Let x^{∗} = xy′y′′.

Proposition 5.40. The element x^{∗} ∈ G fixes all the points in Y_{s}.

Proof. We prove by induction. Let z = xy′ then as argued before z fixes all the target points on Y′_{s}. Consider any topological ordering e_{1}, …, e_{r} of Input: The permutation x ∈ G and an edge e ∈ B′ Output: The permutation y_{e}

1 Compute a path e_{1}, …, e_{t} = e from the corresponding root of the tree containing e to e. Let Σ_{i} be the G-orbit associated to e_{i}. Let δ_{i} be the target point associated with the edge e_{i}. y^{∗} ← 1.

2 for i = 1 to t do δ ← δ_{i}^{xy^{∗}}. if δ = δ_{i} then y_{i} ← 1. else

Let e_{i} be the directed edge (K_{1}, K_{2}) (tail at K_{1} and head at K_{2}).

3 Using Proposition 5.36 compute y_{i} such that δ^{y_{i}} = δ_{i} with the additional property that y_{i} is trivial and all socle parts not linked to K_{2}.

end

if i < t then y^{∗} = y_{i}|_{Σ_{i+1}}. end return y_{t}

Algorithm 7: Computing the permutations y_{e}.

edges in B′. Let Ω_{i} denote the G-orbit corresponding to e_{i}. Let 0 ≤ k ≤ r+1 be the largest index such that the permutation z fixes the target points of ∪_{j=1}^{k−1}Ω_{j}. If k = r +1 then we are through. Otherwise Algorithm 7 computes a y_{e_{k}} such that zy_{e_{k}} fixes δ_{k}, the target point of Ω_{k}. Let e_{k} be the directed edge (K_{1}, K_{2}) with the head at K_{2}. By step 3 we have ensured that y_{e_{k}} projected onto Ω_{k} is in K_{2}. Since e_{1}, …, e_{r} is a topological sort, e_{i} ≯ e_{k} for every i < k. Therefore for any i < k, the socle parts of Soc (G_{i}) is not linked to K_{2} (Proposition 5.38). Hence y_{i} is trivial on all Ω_{i} for 1 ≤ i < k and z′ = zy_{e_{k}} fixes all the target points in ∪_{j=1}^{k}Ω_{j}. We now repeat the argument with z replaced with z′ = zy_{e_{k}}. At each stage k increase by 1 and hence after r steps k = r + 1 are we are through.

Remark 5.41. Consider any x ∈ G and x^{∗} = xy where y ∈ N_{s} be the permutation computed by our algorithm such that x^{∗} fixes all points in Y_{s}. Let e = (K_{1}, K_{2}) be a minimal edge in the < order (or in other words an edge going out of a root node) with head at K_{2}. Then it is straight forward to verify that y restricted to K_{1} is trivial. This follows from the choice of y_{i}’s in Algorithm 7.

Given an element x ∈ G we have associated for each i ∈ Y_{s} an element y_{i} such that x ∏_{i∈Y_{s}} y_{i} (note the order in which the indices of Y′′_{s} are taken does matter; the corresponding edges should be topologically sorted). We can ensure that the choice of y_{i}’s depended only on the action of x on the target points of Y_{s}. In other words for two elements x_{1} and x_{2} in G and let {y_{i}}_{i∈Y_{s}} and {y′_{i}}_{i∈Y_{s}} be the elements chosen. Then if δ^{x_{1}} = δ^{x_{2}} for all target point δ of Y_{s}, y_{i} = y′_{i} for all i ∈ Y_{s} and

∏_{i∈Y_{s}} y_{i} = x_{1}^{∗}^{−1}x_{1} = x_{2}^{∗}^{−1}x_{2} = ∏_{i∈Y_{s}} y′_{i}.

Furthermore we can assume that if x fixes all the target points of Y_{s} then each of the y_{i} = 1 for all i ∈ Y_{s}. We will make this additional assumption which will be helpful in computing the generator set for N.

Computing N

Finally we give the FL algorithm to compute the generator set of N, the subgroup of N_{s} that fixes all the target points in Y_{s}. To this end we examine the strong generator C of N_{s} rel N_{s+1} which we have computed as part of the generator set of G.

Let R_{s}/R_{s+1} = T_{1} × … × T_{u} where each T_{i} is isomorphic to a nonabelian simple group T. We have a partition I = {I_{1}, …, I_{t}} of indices {1, …, u}, such that the quotient group N_{s}/N_{s+1} is the product of diagonals ∏_{k=1}^{t} Diag (∏_{j∈I_{k}} T_{j}). Recall that the strong generator set C of N_{s} rel N_{s+1} consists of subset C_{1}, …, C_{t} where each C_{k} corresponds to the diagonal group Diag (∏_{j∈I_{k}} T_{j}).

Without loss of generality we assume that Y_{s} = {1, …, r_{1}, r_{1} + 1, …, r} where Y′_{s} = {1, …, r_{1}} and Y′′_{s} = {r_{1} + 1, …, r}. We assume further without loss of generality that the ordering r_{1} + 1, …, r of elements of Y′′_{s} is compatible with the ordering of edges in the forest F, i.e. if e_{j} is the edge associated to j > r_{1} then e_{r_{1}+1}, …, e_{r_{2}} is a topological sort of edges of F.

Using Proposition 5.36 in FL for each i ∈ Y_{s} compute the sets D_{i} such that (1) the projection of D_{i} on to Soc (G_{i}) is one-to-one and (2) for any socle part K of Soc (G_{j}) not linked to socle parts of Soc (G_{i}) the projection of D_{i} is 1.

Recall that for each x ∈ G we gave an FL to compute x^{∗} = xy, y ∈ N_{s} such that x^{∗} fixes all the target points of Y_{s}. This we achieved by computing for each i ∈ Y_{s} an element y_{i} ∈ N_{s} such that xy_{1} … y_{r_{1}+r_{2}} = x^{∗}. Furthermore we assume that the y_{i}’s are canonical as described in Remark 5.41. For each i ∈ Y_{s} let D_{i}^{∗} = {x^{∗}|x ∈ D_{i}}.

Proposition 5.42. Let A be a generator set of N_{s+1} and let C′ be the elements of C that is trivial on the target orbits of Y_{s}. Then D^{∗} = (∪_{i∈Y_{s}}D_{i}^{∗}) ∪ C′ ∪ A is a generator set of N, the subgroup of N_{s} that fixes all the target points of Y_{s}.

Proof. Clearly every element of D^{∗} is contained in N therefore N^{∗}, the group generated by D^{∗}, is contained in N. We now prove the converse.

It follows from Remark 5.37 that D = (∪_{i∈Y_{s}}D_{i}) ∪ C′ forms a generator set of N_{s}. Hence any element x ∈ N can be written as x = x_{1} … x_{r}yz where x_{i} ∈ D_{i}, y is in the group generated by C′ and z ∈ N_{s+1}.

For any i ∈ Y′_{s} notice that x_{i} is trivial on all target orbits in Y_{s} \ {i}. Hence x_{i} fixes all the target points of Y_{s}. By Remark 5.41 it follows that x_{i}^{∗} = x_{i} ∈ D_{i}^{∗}. Thus to prove that x is in N^{∗} it is sufficient to prove that z = x_{r_{1}+1} … x_{r} ∈ N^{∗}. Let e_{j} denote the edge corresponding to the point j ∈ Y′′_{s}. Let k ≤ r + 1 be the largest integer such that x_{j} restricted to Ω_{j} is 1 for all r_{1} < j < k. By the construction of D_{k}^{∗} we have x_{k}^{∗} ∈ D_{k}^{∗} such that x_{k}^{∗} = x_{k}y fixes all the target points of Y_{s} where y satisfies the properties of Remark 5.41.

Consider the permutation z′ = x_{k}^{∗}^{−1}z = yx_{k+1} … x_{r}. Since both z and x_{k}^{∗}^{−1} fixes the target points of Y_{s} so does z′. We show that z′ is trivial on all orbits Ω_{j}, 1 ≤ j ≤ k. First for any 1 ≤ i < k, x_{j} is trivial for all j > k. Recall that if e_{k} be the directed edge (K_{1}, K_{2}) with the head at K_{2} then y is trivial on Ω_{j} for all j < k and projected to Ω_{k}, is an element of the subgroup K_{2} (this follows from Remark 5.41). Therefore z′ = yx_{k+1} … x_{r} is trivial on Ω_{j} for all r_{1} < j < k. Furthermore note that none of the socle parts of Soc (G_{j}) is linked to K_{1} for k < j ≤ r and hence x_{j} projected on Ω_{k} is also an element of K_{2}. This proves that z′ projected to Ω_{k} is an element of K_{2}. However by the O’Nan-Scott theorem K_{2} is regular. This is possible if and only if z′ restricted to Ω_{k} is 1 as z′ fixes the target point of Ω_{k}.

We repeat this argument with z replaced with z′ and in each step k increases by at least 1. Thus it follows that there exists element x_{j}^{∗} ∈ D_{j}^{∗}, r_{1} < j ≤ r, such that z ∏_{j=r_{1}+1}^{r} x_{j}^{∗} is 1 on all the target orbits of Y_{s} and hence is of the form gh where g is in the group generated by C′ and h is in N_{s+1}. It follows that x is in the group generated by D^{∗}.

Given x ∈ G since x^{∗} can be computed in FL it follows that a generator set for N can be computed in FL. This completes the algorithm for target reduction in the nonabelian case.

Theorem 5.43. Given an instance (G, Ω, Δ) of PWS_{c} subgroup G′ of G satisfying the properties (1) G ≥ G′ ≥ G (Δ) and (2) for all G-orbit Σ such that Σ ∩ Δ ≠ ∅, G|_{Σ} > G′|_{Σ} can be computed in the Mod_{k}L hierarchy where k is the product of all primes less than c and the level of the hierarchy is a constant that depends only on c.

5.6 Complexity of BCGI_{b}

We now show that PWS_{c} is in the Mod_{k}L-hierarchy. The complete algorithm is given below (Algorithm 8). Each iteration of the loop 1 is in the Mod_{k}Lhierarchy: step 2 uses Theorem 5.24 and step 3 uses Theorem 5.43. Since the G-orbits are of size bounded by c, we will have to iterate through the loop 1 at most c. log c times before each point in Δ is a G-orbit in itself (i.e. H is G (Δ)).

Input: An instance (G, Δ) of PWS_{c}

Output: A generator set for G (Δ).

H ← G. 1 repeat 2 Compute a strong generator set for H with respect to a locally

residual series. 3 Compute the generator set of H′ such that H ≥ H′ ≥ H (Δ) and

such that H′|_{Σ} < H|_{Σ} for each H-orbit Σ containing a point of Δ. H ← H′

until H fixes all points in Δ;

return the generator set for H Algorithm 8: Complete algorithm for PWS_{c}

Using Proposition 5.4 we have the main theorem of this chapter.

Theorem 5.44. The PWS_{c}, AUT_{b} and BCGI_{b} are in the Mod_{k}L-hierarchy.

5.7 Discussion

We have proved the BCGI is in the Mod_{k}L-hierarchy. In fact we proved this by proving that PWS_{c} is in the Mod_{k}L-hierarchy. The algorithm involved two stages; computing the strong generator set and the target reduction.

Both these stages handled the abelian and non-abelian quotients separately. It is surprising that even though the group theory is more involved the non-abelian quotients could be handled in logspace where as the abelian quotient required Mod_{p}L as an oracle for some appropriate prime p. Thus if the composition series of G had only nonabelian simple groups then PWS_{c} for (G, Ω, Δ) can be solved in logspace. In view of the hardness result of Torán [68], we cannot improve on the complexity of handling the abelian quotients unless Mod_{p}L is in L.

There is a gap between our upper bound for BCGI and the lower bound that follows from Torán’s results [68]. It follows from Torán’s result that BCGI_{b} is hard for the lth level Mod_{k}L where b is exponential in k and l. Our upper bound however places BCGI_{b} is a higher lever of the Mod_{k}L-hierarchy.

Computational Galois theory

We now move on to the next part of this thesis where we show upper bounds on certain computational problems in Galois theory. Given a polynomial f(X) of degree n over ℚ we are interested in the following three fundamental tasks.

1. Compute the Galois group as a permutation group on the roots of f(X),

2. Compute the order of the Galois group of f(X) or equivalently the degree [ℚ_{f} : ℚ] of the splitting field extension of f(X).

3. Check whether the Galois group of f(X) satisfies certain properties.

Given a polynomial f(X) over ℚ, in Chapter 7 we give polynomial time algorithms for (1) checking whether the Galois group of f(X) is nilpotent and (2) checking whether the Galois group of f(X) is in Γ_{d}. Chapter 8 deals with computing the order of the Galois group of a polynomial. We prove certain upper bounds assuming the generalised Riemann hypothesis. Finally in Chapter 9 we give some algorithms for computing the Galois group of certain special polynomials.

For a polynomial f(X), the Galois group G can be seen as a permutation group on the set of roots of f(X). Combinatorial structures like orbits and blocks associated with the Galois group G play an important role in our results. The Galois correspondence between blocks and subgroups on one hand (Theorem 3.11) and subgroups and subfields on the other hand (Theorem 6.1) gives us a Galois correspondence (Theorem 7.1) between subfields, subgroups and blocks. This interplay between fields and permutation group theoretic structures is crucial for our upper bounds. Apart from the permutation group theory we require, for our conditional results of Chapter 8 and 9, an effective version of the Chebotarev density theorem proved assuming the generalised Riemann hypothesis (Section 8.1).

In this chapter we give a brief description of the Galois theory and algebraic number theory required for our results in Chapters 7, 8 and 9. In Section 6.1 we describe the required Galois theory and in Section 6.3 some algebraic number theory. In Section 6.4 we explain some fundamental algorithmic results that we require in this thesis. To measure the complexity of various algorithms we need a precise formulation of sizes of various algebraic entities. This is explained in Section 6.4. Finally, in Section 6.5, we prove some bounds that will be needed in analysing the complexity of various algorithms in this thesis.

6.1 Galois theory

We recall some basic facts from Galois theory required for this thesis. A detailed account is available in any standard text book on Galois theory or Algebra for example Lang [40, Chapter VI]. By ℚ, ℝ and ℂ we mean the field of rational, real and complex numbers respectively. The ring of integers will be denoted by ℤ. For primes p, 𝔽_{p^{r}} denotes the unique finite field of p^{r} elements.

Let K be a field. A field L is said to be a field extension of K, denoted by L/K, if L ⊇ K. For a field extension L/K, L is a vector space over K and its dimension, denoted by [L : K], is the degree of L/K. An extension L/K is finite if its degree [L : K] is finite. If L/M and M/K are finite extensions then [L : K] = [L : M].[M : K].

Let K be any field. By K[X] we mean the ring of polynomials in X with coefficients from K. The ring K[X] is a unique factorisation domain. A polynomial f(X) ∈ K[X] is irreducible if it has no nontrivial factor.

For a field K the smallest positive integer n such that n.1 = 0, if it exists, is called the characteristic of K. If no such integer exists then we say that K is of characteristic 0. For example the fields ℚ, ℝ and ℂ are of characteristic 0 where as the field 𝔽_{p^{r}} is of characteristic p. For any field K, the characteristic is either 0 or a prime p. If L/K is an extension then the characteristic of L is same as the characteristic of K.

Let L/K be an extension. Then α ∈ L is algebraic over K if there is an f(X) ∈ K[X] such that f(α) = 0. For α algebraic over K, the minimal polynomial of α over K is the unique monic polynomial μ_{α}[K](X) of least degree in K[X] for which α is a root. When K is clear from the context, we simply write μ_{α}(X) instead of μ_{α}[K](X). Elements α, β ∈ L are conjugates over K if they have the same minimal polynomial over K.

Let L/K be an extension and let α ∈ L then K(α) is the smallest subfield of L containing K and α. If α is algebraic over K and if μ_{α}(X) is the minimal polynomial of α over K then K(α) is isomorphic to K[X]/μ_{α}(X), the ring of polynomials over K modulo μ_{α}(x). If L/K is a finite extension then by the primitive element theorem [40, Theorem 4.6, Chapter V] there is an α ∈ L such that L = K(α). Such an element α is called a primitive element of L. A primitive polynomial of an extension L/K is the minimal polynomial of some primitive element of L/K. Thus if T (X) is a primitive polynomial of L/K then the field L is isomorphic to K[X]/T (X).

The splitting field K_{f} of f ∈ K[X] is the smallest extension of K containing all the roots of f. An extension L/K is normal if for all irreducible polynomials f(X) ∈ K[X], either f(X) splits completely into linear factors or has no root in L. Any finite normal extension over K is the splitting field of a polynomial in K[X]. Let L/K be any extension. By normal closure of L over K we mean the smallest normal extension of K that contains L. For a finite extension L/K, let T (X) be any primitive polynomial. The normal closure of L over K is the splitting field over K of T (X).

An extension L/K is separable if for all irreducible polynomials f(X) ∈ K[X] there are no multiple roots in L. In particular all characteristic 0 fields are separable and so are all finite fields. A normal and separable extension L/K is called a Galois extension.

A field K is algebraically closed if every polynomial in K[X] splits over K. For example the field of complex numbers ℂ is algebraically closed. Let K be any field. The algebraic closure of K, denoted by \overline{K}, is the smallest field containing K that is algebraically closed. For every field there is a unique algebraic closure up to isomorphism.

An automorphism of a field L is a field isomorphism σ : L → L. The Galois group Gal (L/K) of a field extension L/K is the subgroup of automorphisms of L that leaves K fixed, i.e. for all α ∈ K, σ(α) = α. The Galois group of a polynomial f ∈ K[X] is Gal (K_{f}/K). Let f(X) be a polynomial over K of degree n. If α is a root of f(X) and σ ∈ Gal (K_{f}/K) then σ(α) is also a root of f(X). Each σ ∈ Gal (K_{f}/K) is thus completely determined by σ(α_{i}), 1 ≤ i ≤ n, where the α_{1}, …, α_{n} are the roots of f. Thus the Galois group of a polynomial f(X) can be seen as a permutation group on the set of roots of f(X) and hence has order at most n!.

For a subgroup G of automorphisms of L, the fixed field Fix (L, G) is the largest subfield K of L such that every element of G restricted to K gives the identity automorphism. We now state the fundamental theorem of Galois theory [40, Theorem 1.1, Chapter VI] which, given a finite Galois extension L/K with Galois group G, gives a Galois correspondence between subgroups of G and subfields of L containing K.

Theorem 6.1. Let L/K be a Galois extension with Galois group G. There is a one-to-one correspondence between subfields E of L containing K and subgroups H of G, given by E ⇌ Fix (L, H). The Galois group Gal (L/E) is H and E/K is a Galois extension if and only if H is a normal subgroup of G. If H is a normal subgroup of G and E = Fix (L, H) then Gal (E/K) is the quotient group G/H.

6.2 Finite Fields

A finite field is a field of finite cardinality. An example for a finite field is 𝔽_{p} = ℤ/pℤ, the field of integers modulo a prime p with addition and multiplication defined modulo p. For any prime p and an integer r there is a unique field of cardinality p^{r} which we denote by 𝔽_{p^{r}}. We have [𝔽_{p^{r}} : 𝔽_{p}] = r and 𝔽_{p^{r}} is the splitting field of f(X) for any irreducible polynomial f(X) ∈ 𝔽_{p}[X] of degree r. For integers n and r, 𝔽_{p^{n}} is an extension of 𝔽_{p^{r}} if and only if r divides n in which case the degree [𝔽_{p^{n}} : 𝔽_{p^{r}}] is given by \frac{n}{r}. Also in this case 𝔽_{p^{n}}/𝔽_{p^{r}} is a Galois extension.

Consider the algebraic closure \overline{𝔽}_{p} of 𝔽_{p}. The map σ : a ↦ a^{p} is an automorphism of \overline{𝔽}_{p} that is identity on 𝔽_{p}. The automorphism σ is called the Frobenius automorphism. The Galois group Gal (𝔽_{p^{n}}/𝔽_{p^{r}}) is a cyclic group of order \frac{n}{r} and is generated by σ^{r}. In terms of the Frobenius we can give a different characterisation of the field 𝔽_{p^{r}}. The field 𝔽_{p^{r}} is the fixed field of \overline{𝔽}_{p} under the group of automorphisms generated by σ^{r}. Equivalently, 𝔽_{p^{r}} is the set of roots of the polynomial X^{p^{r}} − X in \overline{𝔽}_{p}.

Let f(X) be any polynomial in 𝔽_{q}, q a power of prime p. Let f(X) factorise as f_{1} … f_{r} over 𝔽_{q} and let d_{i} denote the degrees of f_{i}. The splitting field of f is 𝔽_{q^{m}} where m is the least common multiple of the integers d_{1}, …, d_{r}.

6.3 Algebraic numbers and number fields

We now recall some algebraic number theory. A detailed presentation is available in any standard textbook on algebraic number theory like for example the one due to Neukirch [55].

Algebraic numbers are roots of polynomials over ℚ and algebraic integers are roots of monic polynomials in ℤ[X]. The set of rational algebraic integers, i.e. algebraic integers in ℚ, is exactly ℤ. For an algebraic number α there is an integer m ∈ ℤ such that mα is an algebraic integer. A number field is a finite extension of ℚ.

Let α be an algebraic number and let K be the number field ℚ(α). Since ℂ is algebraically closed and contains ℚ, K can be seen as a subfield of ℂ, i.e. there is an isomorphism from K to a subfield of ℂ. Such an isomorphism from K to ℂ is called an embedding of K. If K is of degree n then there exists n distinct embeddings of K into ℂ. An embedding σ of K is a real embedding if the image of K under σ is contained in ℝ, otherwise it is a complex embedding. The height of α, denoted by H (α), is max{|σ(α)|^{c_{σ}}}, where σ varies over all embeddings of K and c_{σ} is either 1 or 2 depending on whether σ is a real or complex embedding. Let μ_{α}(X) ∈ ℚ[X] be the minimal polynomial of α then H (α) is max{|η|^{c_{η}}} where η runs over all roots of μ_{α} in ℂ and c_{η} is 1 if η is a real root and 2 otherwise. If α′ is a conjugate of α then H (α) = H (α′). The height of an algebraic number is a measure of its size. Using Cauchy-Schwartz the following inequalities can be derived.

Lemma 6.2. For any two algebraic numbers α and β:

1. H (α + β) ≤ H (α) + H (β).

2. H (αβ) ≤ H (α) H (β).

6.3.1 Ring of Algebraic Integers

Let K be a number field of degree n and let 𝕆_{K} denote the ring of algebraic integers of K. There exist ω_{1}, …, ω_{n} ∈ 𝕆_{K} such that 𝕆_{K} = ℤω_{1}+…+ℤω_{n}. Such a set of elements in 𝕆_{K} is a basis for 𝕆_{K}. If ω_{1}, …, ω_{n} is a basis for 𝕆_{K} then K = ℚω_{1} + … + ℚω_{n}, i.e. the set {ω_{1}, …, ω_{n}} is a basis of K as a vector space over ℚ. For two bases θ_{1}, …, θ_{n} and ω_{1}, …, ω_{n} of 𝕆_{K} there is a unimodular matrix A = (a_{ij}) such that ω_{i} = ∑ a_{ij}θ_{j} for all 1 ≤ i ≤ n..

Let K be a number field of degree n. Recall that K has n distinct embedding σ_{1}, …, σ_{n} into ℂ. Let ω_{1}, …, ω_{n} be a basis for 𝕆_{K}. Then the discriminant d_{K} of K is the positive integer |det(σ_{j}(ω_{i}))|^{2}. The discriminant is independent of the basis chosen for 𝕆_{K}.

An ideal 𝔞 of 𝕆_{K} is an additive subgroup of 𝕆_{K} such that for every α ∈ 𝕆_{K} and β ∈ 𝔞 αβ ∈ 𝔞. Let 𝔞 be an ideal of 𝕆_{K}. For an algebraic integer α ∈ 𝕆_{K}, the set α𝕆_{K} = {αβ|β ∈ 𝕆_{K}} is an ideal. Such ideals are called principal ideals. Often we will denote the principal ideal α𝕆_{K} as α.

A principal ideal domain is a ring where all ideals are principal. An example for a principal ideal domain is ℤ.

We define the sum and product of ideals of 𝕆_{K}. For ideals 𝔞 and 𝔟 of 𝕆_{K}, by 𝔞 + 𝔟 we mean {α + β : α ∈ 𝔞, β ∈ 𝔟}. Similarly by 𝔞𝔟 we mean {∑_{i} α_{i}β_{i} : α_{i} ∈ 𝔞, β_{i} ∈ 𝔟}. Furthermore 𝔞 + 𝔟 is the smallest ideal that contains 𝔞 and 𝔟 and 𝔞𝔟 is the ideal 𝔞 ∩ 𝔟.

We say that 𝔞 divides 𝔟, denoted by 𝔞 | 𝔟, if 𝔞 ⊇ 𝔟. Unlike ℤ, for number fields K, 𝕆_{K} need not be a unique factorisation domain (for example in the ring ℤ[\sqrt{−5}], 21 has two factorisations [55, Chapter I, §3]). However ideals of 𝕆_{K} have the unique factorisation property, i.e. any ideal 𝔞 has a unique factorisation into prime ideals as 𝔞 = 𝔭_{1}^{a_{1}} … 𝔭_{r}^{a_{r}}, where a_{i} is the highest power k such that 𝔭_{i}^{k} divides 𝔞 (𝕆_{K} is a Dedekind domain).

For any ideal 𝔞, the ring 𝕆_{K}/𝔞 is a finite ring. The norm of 𝔞, denoted by N (𝔞), is the number of elements in 𝕆_{K}/𝔞. Consider a number field K of degree n. Let σ_{1}, …, σ_{n} be the n distinct embeddings of K into ℂ. For any α ∈ 𝕆_{K}, the norm of the principal ideal α𝕆_{K}, which we denote by N (α), is equal to the product ∏_{i} σ_{i}(α).

Let p ∈ ℤ be any prime. For a number field K, the principal ideal p𝕆_{K}, which we denote by p, need not be a prime ideal. Knowing how the principal ideal p factorise is important and Kummer-Dedekind theorem is algorithmically useful for this purpose (see [22, Theorem 4.8.13] for a proof).

Theorem 6.3 (Kummer-Dedekind). Let K = ℚ(θ), where θ is an algebraic integer with minimal polynomial T (X) ∈ ℤ[X]. Let p ∈ ℤ be a prime that does not divide the index [𝕆_{K} : ℤ[θ]]. Suppose T = T_{1}^{e_{1}} … T_{k}^{e_{k}}(mod p) is the factorisation of T over 𝔽_{p} into its irreducible factors. Then p𝕆_{K} factors into prime ideals as p𝕆_{K} = 𝔭_{1}^{e_{1}} … 𝔭_{k}^{e_{k}}. Moreover the prime ideals 𝔭_{i} are given by 𝔭_{i} = p𝕆_{K} + T_{i}(θ)𝕆_{K} and 𝕆_{K}/𝔭_{i} ≅ ℤ[θ]/(p, T_{i}(θ)).

6.4 Basic algorithms

In this section we give an overview of the algorithmic results required for this thesis. For a detailed presentation of various algorithmic aspects of algebraic number theory we refer the reader to the textbook of Cohen [22]. The algorithms we describe take various algebraic entities like algebraic numbers and number fields as inputs. We need to encode these algebraic entities over a finite alphabet Σ typically {0, 1}. The complexity of these algorithms are measured in terms of the size of these encodings. Our first goal is to make this precise.

6.4.1 Encoding algebraic entities

For integers c we use the standard binary encoding. The size of an integer c is therefore ⌈lg c⌉. A rational number r is given by a pair of coprime integers (a, b) such that r = \frac{a}{b}. Thus, size (r) = size (a) + size (b). Elements of the finite field 𝔽_{p}, for prime p, will be represented as integers in between 0 and p. Hence an element of 𝔽_{p} is of size lg p.

The fields that we encounter in this thesis are either finite fields or number fields. Recall that any field K is a vector space over the associated base field which is either ℚ, if the characteristic is 0, or 𝔽_{p}, if the characteristic is p. We follow the approach of Lenstra [43, 44] for encoding fields. Here we describe how number fields are presented. A similar approach can be taken for finite fields for which we refer to the article of Lenstra [43].

There are two algorithmically equivalent ways of presenting a number field K, (1) by explicit data and (2) by presenting a primitive polynomial for K. Let K be a number field of degree n. By explicit data we mean a linearly independent basis e_{1}, …, e_{n} for K as a vector space over ℚ together with n^{3} rationals {c_{ijk}}_{1≤i,j,k,≤n} such that e_{i}e_{j} = ∑_{k} c_{ijk}e_{k}. In addition by multiplying each e_{i}’s by suitable rational integers we assume, with out loss of generality, that e_{i}’s are algebraic integers. Thus the field can be presented by giving the list {c_{ijk}}_{1≤i,j,k≤n} and by size of K we mean ∑ size (c_{ijk}).

Any α ∈ K can be expressed uniquely as a summation α = ∑ a_{i}e_{i}, a_{i} ∈ ℚ. By size (α) we mean ∑ size (a_{i}). A polynomial of degree d over K is presented by giving the ordered list of all its d coefficients and hence for f(X) = a_{0} + … + a_{d}X^{d} in K[X] by size (f) we mean ∑ size (a_{i}).

Recall that K = ℚ(X)/μ(X) for some primitive polynomial μ(X) over ℚ. Thus a number field K can be presented by giving a primitive polynomial μ(X) ∈ ℚ[X]. If μ(X) = c_{0}+c_{1}X +…+c_{n−1}X^{n−1}+X^{n} then by size (K) we mean ∑ size (c_{i}). As before we can ensure that μ(X) is a monic polynomial with coefficients from ℤ.

A primitive polynomial μ(X) for K directly gives explicit data for K: choose e_{i} to be X^{i−1} (mod μ(X)). Conversely we show that given explicit data, one can compute a primitive polynomial. We first prove the following lemma.

Lemma 6.4. Let K be a number field of degree n presented via explicit data {c_{ijk}}_{1≤i,j,k≤n}. Let e_{1}, …, e_{n} denote the corresponding basis for K. Given an algebraic number α = ∑_{i=1}^{n} a_{i}e_{i} there is an algorithm to compute the minimal polynomial of α that runs in time bounded by a polynomial in size (K) and ∑ size (a_{i})

Proof. Recall that K is a vector space over ℚ with a basis {e_{i}}_{i=1}^{n} and any algebraic number α in K is a vector ∑ a_{i}e_{i}. The degree d of α is the largest i such that the set {1, …, α^{i−1}} is a linearly independent set of vectors. It follows that −α^{d} can be written as a linear combination −α^{d} = c_{0} + … + c_{d−1}α^{d−1}. Using the explicit data we can compute the vectors α^{i} = ∑_{j} a_{ij}e_{j} in time polynomial in size (K) and ∑ size (a_{i}). Furthermore in polynomial time we can compute d and the rationals {c_{i} : 0 ≤ i < d} as it involves solving linear equations over ℚ. The minimal polynomial of α is therefore c_{0} + c_{1}X + … + c_{d−1}X^{d−1} + X^{d}.

We require the following effective version of primitive element theorem (see Section 6.10 of van der Waerden’s book [71]).

Lemma 6.5. Let α and β be algebraic numbers of degrees m and n respectively. Let {α_{i}}_{i=1}^{m} and {β_{j}}_{j=1}^{n} be their ℚ-conjugates. Let c be any integer such that α_{i} +cβ_{j} ≠ α_{r} +cβ_{s} for all (i, j) ≠ (r, s). Then α+cβ is a primitive element of ℚ(α, β).

Consider the set A = \{\frac{α_{i}−α_{r}}{β_{s}−β_{j}} |s ≠ j\} of \binom{m}{2}.\binom{n}{2} + 1 algebraic numbers. It follows from Lemma 6.5 that if c ∉ A then α + cβ is a primitive element of ℚ(α, β). Therefore there exists an integer c, 1 ≤ c ≤ m^{2}n^{2} + 1 such that α + cβ is primitive. We summarise this in the following proposition.

Proposition 6.6. Let α and β be algebraic numbers of degree m and n respectively. There exists an integer c ∈ {1, …, m^{2}n^{2} + 1} such that α + cβ is a primitive element of ℚ(α, β).

Computing the primitive polynomial for K is now straight forward. Let K be presented via explicit data {c_{ijk}}_{1≤i,j,k≤n} and let e_{1}, …, e_{n} be the corresponding basis. We compute constants 1 ≤ c_{i} ≤ n^{4} + 1, 1 ≤ i ≤ n, such that ∑_{i=1}^{n} c_{i}e_{i} is a primitive element for K.

Let K_{r} denote the field ℚ(e_{1}, …, e_{r}). We compute the primitive element γ_{i} of K_{i} inductively. To begin with γ_{1} = e_{1}. Assume that we have computed γ_{i−1}. We choose an integer c_{i} from the set {1, …, n^{4} + 1} such that the minimal polynomial of γ_{i−1} + c_{i}e_{i} is of maximal degree. The algebraic number γ_{i} = γ_{i−1} + c_{i}e_{i} is a primitive element for K_{i}. Having computed γ_{n} we can compute the minimal polynomial for γ_{n} using Lemma 6.4. This gives a primitive polynomial for K.

We have thus proved that presenting number fields via explicit data or via a primitive polynomial are polynomial time equivalent. The size of K in each of these presentation might differ but only up to a polynomial factor. Thus we can assume without loss of generality either of the two presentation.

6.4.2 Factoring polynomials and related problems

Recall that for a field K, the ring K[X] is a unique factorisation domain. Polynomials f(X) over ℚ can be factored into irreducible factors in polynomial time using the celebrated Lenstra-Lenstra-Lovász [42] algorithm. A key step in this algorithm is lattice basis reduction. A. K. Lenstra [41] generalised this basis reduction to give a polynomial time algorithm for factoring polynomials over number fields. Using norms of polynomials, Landau [38] gave a polynomial time reduction from factoring over K to factoring over ℚ. We summarise these results in the following theorem.

Theorem 6.7. Given a number field K and a polynomial f(X) in K[X] there is an algorithm that computes the irreducible factors of f(X) in time bounded by a polynomial in size (f) and size (K).

Let K be a finite field of characteristic p. Berlekamp [16] gave a deterministic polynomial time algorithm for factoring polynomials over K for small primes p. However for large characteristic only randomised algorithms are known. Given a polynomial f(X) ∈ 𝔽_{q}, there are randomised algorithms that run in time polynomial in size (f) and lg q [17, 21] for factoring f(X). We summarise these results in the following theorem.

Theorem 6.8. Given a polynomial f(X) over the finite field K of characteristic p there is a deterministic algorithm that runs in time polynomial in size (f) and p for factoring f(X). Given a polynomial f(X) ∈ 𝔽_{q} there is a randomised algorithm that runs in time polynomial in size (f) and lg q to factor f(X).

Even though factoring polynomials over finite fields do not have efficient deterministic algorithms, there are efficient deterministic irreducibility tests. More generally given a polynomial f(X) ∈ 𝔽_{q}[X] and an integer d there is a polynomial time deterministic algorithm to compute the product of all irreducible factors of f(X) of degree d (see Section 14.2 of [73]). In particular, for a give number d one can compute the number of irreducible factor of f(X) of degree d and thus we have an efficient irreducibility test. We summarise this result in the following theorem.

Theorem 6.9. Given a polynomial f(X) ∈ 𝔽_{q}[X] of degree n and an integer d ≤ n, there is a deterministic algorithm that runs in time polynomial in size (f) and lg q that computes the product of all the irreducible factors of f(X) of degree d. In particular there is a deterministic algorithm that runs in time polynomial in size (f) and lg q that computes for each d the number of irreducible factors of f(X) of degree d.

6.4.3 Algorithms for Galois group computation

Let L/K be a field extension. Recall that the Galois group Gal (L/K) is the group of automorphisms of L that are identity when restricted to K. In this section we describe known algorithms for computing the Galois group of a polynomial and related problems.

Firstly from a computational point of view if K is a finite field then the problem is trivial as the Galois group is generated by an appropriate power of the Frobenius (see Section 6.2). Let q = p^{r}. Given a polynomial f(X) over a finite field 𝔽_{q} recall that if d_{1}, …, d_{k} are the set of degrees of irreducible factors of f(X) then the Galois group of f(X) is a cyclic group of order m where m is the least common multiple of d_{1}, …, d_{k} and is generated by the rth power of the Frobenius. By Theorem 6.9 we can compute the degrees d_{1}, …, d_{k} in time polynomial in size (f) and lg q.

For polynomials f(X) over number fields the best known algorithm for computing the Galois group is due to Landau [37]. Given a polynomial f(X) ∈ K[X] Landau’s algorithm computes the Galois group Gal (K_{f}/K) in time polynomial in size (f) and [K_{f} : K]. Since [K_{f} : K] could be as large as n!, this is an exponential time algorithm. We give a brief sketch of this algorithm.

Let K be any number field and let L/K be an extension, not necessarily Galois. There exists a primitive element α such that L = K(α). Let μ(X) ∈ K[X] be the minimal polynomial of α over K. Using Theorem 6.7 we first factorise μ(X) over L. Any root of μ(X) can be expressed as a polynomial in α. Let P_{1}(α), …, P_{r}(α), P_{i}(X) ∈ K[X], be the distinct roots of μ(X) over L then the Galois group Gal (L/K) consists of exactly r elements given by the linear maps α ↦ P_{i}(α). Thus the Galois group L/K can be computed in time polynomial in size (L). Thus the problem of computing the Galois group amounts to computing a primitive polynomial for the splitting field of f(X).

Given a polynomial f(X) ∈ K[X] of degree n. Let α_{1}, …, α_{n} be the roots of f(X). Using Theorem 6.7 we compute the fields L_{i} = K(α_{1}, …, α_{i}) inductively. Start with L_{0} = K. Assume that we have already computed the explicit data for L_{i}. If f(X) splits completely over L_{i} we stop otherwise let g(X) be an irreducible factor of f(X) of degree greater than 1 over L_{i} which we obtain using Theorem 6.7. Then the field L_{i+1} = L_{i}[X]/g(X) contains at least one more root of f(X) than L_{i} and the explicit data for L_{i+1} can be computed. Having computed the splitting field L of f we can compute the Galois group Gal (L/K) as described above. We summarise the above discussion in the following theorem.

Theorem 6.10 (Landau). Given a polynomial f(X) over a number field K and a positive integer N. There is a deterministic algorithm running in time bounded by a polynomial in N and size (f) that checks whether the splitting field of f is of degree less than N and if yes computes the entire multiplication table for Gal (K_{f}/K). In particular given a number fields L/K and an integer N, there is an algorithm running in time polynomial in size (L), size (K) and N that decides whether the normal closure L̃ of L is of degree less than N over K and if yes computes the explicit data for L̃.

The algorithm of Theorem 6.10 outputs the entire multiplication table of the Galois group of f(X). There is a much more succinct way of presenting the Galois group. Recall that the Galois group of f(X) is completely specified by its action on the roots of f(X). If n is the degree of f(X), by suitably naming the roots of f(X) the Galois group of f(X) can be seen as a subgroup of S_{n}. In other words there is a faithful representation of Gal (K_{f}/K) as a permutation group over a cardinality n set Ω. Recall that subgroups of S_{n} can be presented succinctly via a generator set. Moreover several natural algorithmic tasks for a permutation group G given a generator set for it can be accomplished efficiently. For example it is possible to determine if G is solvable in polynomial time, or to determine a composition series for G in polynomial time among several other tasks (a survey of important results is available in the article of Luks [49]). Thus determining the Galois group by its action on the roots of f is a reasonable way of describing the output.

For polynomials f(X) with small Galois group Theorem 6.10 gives an efficient algorithm for Galois group computation. For example if f(X) is irreducible and f(X) splits in K[X]/f(X) then we have a polynomial time algorithm for computing the Galois group of f(X). In particular Theorem 6.10 gives a polynomial time algorithm to compute the Galois group of an irreducible polynomial f(X) with abelian Galois group. This is because an abelian transitive subgroup of S_{n} is of size n.

Proposition 6.11. Let G be a transitive abelian permutation group on Ω then for any α ∈ Ω G_{α} = 1 and #G = #Ω.

Proof. Fix any α ∈ Ω. Since G is transitive for any β ∈ Ω there is a g_{β} ∈ G such that α^{g_{β}} = β. The group G_{β} is given by g_{β}^{−1}G_{α}g_{β} and since G is abelian is equal to G_{α}. This implies any element that fixes α fixes all elements β pointwise and hence is identity. Therefore G_{α} = 1. By Orbit-Stabiliser formula (Theorem 3.8) we have #G = #Ω.#G_{α} = #Ω.

Proposition 6.11 and Theorem 6.10 can be used to give a polynomial time algorithm to test whether the Galois group of a polynomial f(X) ∈ K[X] is abelian [37]. Given a polynomial f(X) we first compute all its irreducible factors over K[X]. For each irreducible factor g(X) we to compute the Galois group Gal (K_{g}/K) using Theorem 6.10. If Gal (K_{g}/K) is too large, i.e. Gal (K_{g}/K) is of order greater than the degree of g(X) then clearly it is not abelian (Proposition 6.11). Having computed the Galois group Gal (K_{g}/K) explicitly we can check whether it is abelian. The Galois group of f(X) is abelian if the Galois groups of each of its irreducible factor is abelian.

Theorem 6.12 (Landau). Let f(X) ∈ K[X] be any polynomial. There is an algorithm that runs in time polynomial in size (f) and size (K) that checks whether the Galois group of f(X) is abelian. If in addition the polynomial f(X) is irreducible, there is an algorithm that runs in time polynomial in size (f) and size (K) that computes the Galois group of f.

Even though the Galois group of an irreducible polynomial f(X) ∈ ℚ[X] with abelian Galois group can be computed efficiently, there are no efficient algorithms when f(X) is reducible. In fact even when f(X) is a product of quadratic polynomials nothing better than the exponential algorithm is known ([44, Problem 3.4]). In Chapter 9, assuming the generalised Riemann hypothesis, we give a randomised polynomial time algorithm for this problem.

We now consider another important task, computing the fixed field of a field L given a set of automorphism of L. Given an automorphism σ of L, the fixed field of L under automorphisms generated by σ is the kernel of the map σ − 1. Let L be any field of degree n presented via explicit data {c_{ijk}}_{1≤i,j,k≤n}. Let e_{1}, …, e_{n} be the corresponding basis for L. Then any automorphism σ is a linear map on L as a vector space over ℚ. Having fixed a basis e_{1}, …, e_{n}, each σ can be represented by an n × n matrix A_{σ} over ℚ. The subspace of solutions for the linear equation A_{σ}x = x is exactly the fixed field of L under σ. A basis for this field can be computed in polynomial time and thus we have its explicit data.

To find the fixed field of L under the automorphisms generated by S = {σ_{1}, …, σ_{r}}, consider the fixed field L_{i} of L under the automorphisms generated by {σ_{1}, …, σ_{i}}. Starting from L_{0} = L we compute the fields L_{i} inductively. Having computed a basis for L_{i−1}, we compute L_{i} by computing a basis of the kernel of σ_{i} − 1 over L_{i} as described above. This inductive algorithm is evidently polynomial time. Thus we have the following theorem.

Theorem 6.13. Given a field L via explicit data {c_{ijk}}_{1≤i,j,k≤n} and a set S of automorphisms of L. There is a deterministic algorithm running in time polynomial in #S and size (L) to compute the fixed field of L under the group generated by S.

6.5 Some useful bounds

In this section we prove certain bounds that will be useful in analysing the algorithms of this thesis. Given a number field K of degree n presented via explicit data. Our first goal is to give a bound on the height of algebraic numbers of K in terms of its size.

Lemma 6.14. Let K be a number field of degree n presented via explicit data {c_{ijk}}_{1≤i,j,k≤n}. Let e_{1}, …, e_{n} be the corresponding basis for K. Then for each i, H (e_{i}) ≤ n.2^{size(K)}. It follows that for any α in K, H (α) ≤ n^{2}.2^{size(α)+size(K)}.

Proof. Let 1 ≤ i ≤ n be such that H (e_{i}) is maximum. We have e_{i}e_{i} = ∑_{k=1}^{n} c_{iik}e_{k}. Each c_{ijk} is less than 2^{size(K)}. Hence it follows that H (e_{i})^{2} ≤ nH (e_{i}) 2^{size(K)} (Lemma 6.2) and H (e_{i}) ≤ n.2^{size(K)}.

Let α = ∑_{k=1}^{n} a_{i}e_{k}. Recall that size (α) = ∑ size (a_{k}) and hence a_{k} ≤ 2^{size(α)}. Therefore H (α) ≤ n.2^{size(α)}.H (e_{i}) = n^{2}.2^{size(α)+size(K)}.

Conversely, in many cases we would like to bound the sizes of algebraic numbers given a bound on its height. The following lemma serves this purpose.

Lemma 6.15. Let K be a number field of degree n and α ∈ 𝕆_{K}. Then size (α) ≤ n^{3}(lg H (α) + size (K)).

Proof. Let {c_{ijk}}_{1≤i,j,k≤n} be the explicit data for K and let e_{1}, …, e_{n} be the corresponding basis. Let σ_{1}, …, σ_{n} be the n distinct embeddings of K into ℂ and let e_{ij} = σ_{i}(e_{j}). Consider the algebraic integer α = ∑_{j} c_{j}e_{j}. If α_{i} = σ_{i}(α) = ∑_{j} c_{j}e_{ij} then |α_{i}| ≤ H (α).

Consider the system of linear equations ∑ c_{j}e_{ij} = α_{i}, 1 ≤ i ≤ n. By Cramer’s rule, we have c_{j} = \frac{det(A_{j})}{det(A)} where A is the n × n matrix (e_{ij})_{1≤i,j≤n} and A_{j} is the matrix obtained by replacing the j^{th} column of A by α_{i}’s. The number det(A)^{2} is a symmetric function on the algebraic integers e_{ij}’s. It follows that det(A)^{2} is in ℤ and therefore |c_{j}| ≤ det(A_{j}) for each i.

For an n × n matrix M, the determinant of M is bounded by n^{n}λ^{n} where λ is the largest entry of M. Therefore |det(A_{i})| ≤ n^{n}.λ^{n} where λ = max(H (e_{i}) , H (α)) (H (e_{ij}) = H (e_{i})). We have thus proved that size (c_{i}) ≤ n.(lg n+lg H (α)+lg H (e_{i})) ≤ n.(lg H (α)+size (K)+2 lg n). We then obtain

size (α) = ∑_{i=0}^{n−1} size (c_{i}) ≤ n^{3}(lg H (α) + size (K)).

We now prove a bound on the size of the minimal polynomial of an algebraic integer α in terms of its height.

Proposition 6.16. Let α be an algebraic integer of degree n and let μ_{α}(X) be the minimal polynomial of it over ℚ. Then size (μ_{α}(X)) ≤ n^{2}(1 + lg H (α)).

Proof. Let α_{1}, …, α_{n} be the conjugates of α then the minimal polynomial is give by μ(X) = ∑_{i=0}^{n} s_{i}X^{i} where s_{i} is the ith symmetric function over α_{1}, …, α_{n}, i.e. s_{i} is the sum of all possible products of elements in \{α_{1}, …, α_{n}\} taken i at a time. Since H (α_{i}) = H (α) we have |s_{i}| ≤ \binom{n}{i}H (α)^{i} . Therefore

size (μ_{α}(X)) ≤ ∑_{i} lg [\binom{n}{i}H (α)^{i}] ≤ n^{2}(1 + lg H (α)).

Conversely, given and algebraic number α, we often need a bound on H (α) in terms of the size of its minimal polynomial μ_{α} over ℚ. For this purpose we state an inequality due to Landau [36] (a proof of this inequality is available in [73, Theorem 6.31]). Consider a polynomial f(X) = ∑ a_{i}X^{i} ∈

ℂ[X]. Define ∥f∥_{2} as \sqrt{∑ |a_{i}|^{2}}. We use the following inequality to bound the sizes of algebraic numbers.

Lemma 6.17 (Landau). Let f(X) = a_{0} + … + a_{d}X^{d} ∈ ℂ[X] of degree d, and let α_{1}, …, α_{d} ∈ ℂ be its roots. Then,

|a_{d}| ∏_{i=1}^{d} max(1, |α_{i}|) ≤ ∥f∥_{2}.

Let α be an algebraic integer of degree n and let μ_{α}(X) = c_{0} + c_{1}X + … + c_{n}X^{n−1} + X^{n} be its minimal polynomial. For all i, c_{i} ≤ 2^{size(μ_{α})} and therefore ∥μ_{α}∥_{2} ≤ \sqrt{n}2^{size(μ_{α})}. Recall that H (α) is the maximum over |η|^{c_{η}} where η ranges over the roots of μ_{α} and c_{η} is either 1 or 2 depending on whether η is real or complex. Together with Landau’s inequality we thus have the following bound.

Proposition 6.18. Let α be an algebraic integer with minimal polynomial μ_{α} over ℚ. Then H (α) ≤ n.4^{size(μ_{α})}.

We now prove a bound on the discriminant of a number field. For a polynomial T (X) ∈ ℚ[X] with roots θ_{1}, …, θ_{n} by discriminant, which we denote by d_{T} we mean the product ∏_{i≠j}(θ_{i} − θ_{j}). For an algebraic number α, by the discriminant of α, denoted by d_{α}, we mean the discriminant of the minimal polynomial μ_{α}(X) of α over ℚ. Consider a number field K = ℚ(θ) where θ is an algebraic integer. The discriminant d_{K} of K divides d_{θ} and \frac{d_{θ}}{d_{K}} = [𝕆_{K} : ℤ[θ]]^{2}. Therefore to bound d_{K} it is sufficient to give a bound on the discriminant d_{θ}. We use of this to show the following bound on the discriminant.

Theorem 6.19. Let f(X) be a monic polynomial over ℤ of degree n with roots α_{1}, …, α_{n}. There exists an algebraic integer θ = ∑ c_{i}α, c_{i} ∈ ℤ such that the θ is a primitive element for the extension ℚ_{f}/ℚ and lg d_{θ} ≤ (n!)^{3}.size (f). As a result we have lg d_{ℚ_{f}} ≤ (n!)^{3}.size (f).

Proof. Let N ≤ n! be the degree of the splitting field K = ℚ_{f}. Let α_{1}, …, α_{n} be the roots of f(X) then K = ℚ(α_{1}, …, α_{n}). By Proposition 6.6 there are integer constant 1 ≤ c_{i} ≤ N^{4} + 1 such that θ = ∑_{i} c_{i}α_{i} is a primitive element of K. Since f(X) is a monic polynomial over ℤ it follows that α_{i}’s are algebraic integers and so is θ.

By Landau’s inequality we have |α_{i}| ≤ \sqrt{n}2^{size(f)} and therefore we have H (θ) ≤ n.N^{4}4^{size(f)}. Therefore we have

lg d_{K} ≤ lg d_{θ} ≤ N^{2}(1 + 2 lg n + 4 lg N + 2size (f)).

Since N ≤ n! we have the required bound.

6.6 Discussion

Computing the Galois group of f(X) is hard both in theory and in practice. No polynomial time algorithm is known. Current computer algebra systems can compute typically the Galois group of polynomials of degree in the range 20 to 25. Apart from their mathematical significance many computational problems that arise in algebraic number theory have wide range of application especially in cryptography. Hence algorithms that run efficiently in practice are of utmost importance. For a detailed presentation of algorithms from a practical point of view we refer to the book of Cohen [22].

However, in this thesis our focus is not directed on these issues. A polynomial time algorithm will be considered efficient although practical implementations might turn out to be too slow. In this sense our approach is similar to the approach of Lenstra in his survey article [44]. In the absence of efficient algorithms our attempt would be to give nontrivial complexity upper bounds.

As mentioned before, to prove nontrivial complexity theoretic results one often require novel techniques. A striking example is the recent AKS algorithm for primality testing [1]. Although the algorithm runs in polynomial time, as far as testing primality of large numbers in practical contexts like for example in cryptographic application, the randomised tests are still preferred. However the techniques developed could lead to solutions of other interesting questions.

Often complexity theoretic classification of natural problems have been fruitful in understanding the inherent intractability of these problems. For example showing hardness results for a problem say for NP in some sense shows that the problem is computationally hard. Even though computing Galois groups are hard in practice, no hardness results (in the complexity theoretic sense) is yet known. Showing such hardness results could be challenging and probably need considerable mathematical techniques.

Attempts to understand the complexity of natural problems have led to considerable progress in complexity theory as well. For example study of one-way functions led Valiant to define the complexity class UP [69]. Algebraic number theory and Galois theory is a rich source of natural computational problems and studying the complexity of these problems might lead to considerable progress in complexity theory as well. What makes these problems particularly attractive is the availability of powerful mathematical tools. Unfortunately even though the mathematics is fairly well understood virtually nothing is known about the computational complexity of many of the fundamental problems in this area. On one hand even for polynomials with abelian Galois group no efficient algorithms are know unconditionally. On the other hand there is no hardness result known despite the fact that the best known algorithm for computing the Galois group is exponential time.

Testing nilpotence of Galois group

Given a polynomial f(X) over ℚ in this chapter we study the following two problems (1) checking whether the Galois group is nilpotent and (2) checking whether the Galois group is in Γ_{d}. As mentioned before knowing certain properties of the Galois group of a polynomial f(X) gives information about its roots. For example the seminal work of Galois shows that a polynomial f(X) is solvable by radicals if and only if its Galois group is solvable. However algorithmically this does not give a satisfactory answer as computing the Galois group is hard. Landau and Miller [39] achieved a remarkable breakthrough by giving a polynomial time algorithm for checking solvability.

First, we show that given a polynomial f(X) ∈ ℚ[X], we can test whether the Galois group of f(X) is nilpotent in polynomial time. Recall that a group G is nilpotent if all its Sylow subgroups are normal. Even though every nilpotent group is solvable, the Landau-Miller solvability test does not give a nilpotence test. This is because knowing the composition factors of a group G alone is not enough to decide whether G is nilpotent.

We generalise the Landau-Miller test and show that Γ_{d}-testing for constant d is in polynomial time. Recall that a group G is in Γ_{d} if there is a composition series G = G_{0} ▷…▷G_{t} = 1 such that G_{i}/G_{i+1} is either abelian or is isomorphic to a subgroup of S_{d}.

An important idea used in both these tests is the Galois correspondence between blocks, fields and groups that we now explain. Let f(X) be an irreducible polynomial in ℚ[X] and let G be the Galois group of f(X). Since f(X) is irreducible, G is a transitive permutation group on Ω, the set of roots of f(X). For a block Δ recall that G_{Δ} is the subgroup of G that setwise stabilises Δ. Let ℚ_{Δ} denote the fixed field Fix (ℚ_{f}, G_{Δ}).

Theorem 7.1. Let f(X) ∈ ℚ[X] be an irreducible polynomial with Galois group G. Let Ω be the roots of f(X) and let α ∈ Ω be any particular root. There is a one-to-one correspondence between G-blocks containing α, subgroups of G containing G_{α} and subfields between ℚ(α) and ℚ given by

Δ ⇌ G_{Δ} ⇌ ℚ_{Δ}.

Furthermore if {α} = Δ_{0} ⊆ … ⊆ Δ_{m} = Ω is an increasing chain of blocks then ℚ(α) = ℚ_{Δ_{0}} ⊇ … ⊇ ℚ_{Δ_{m}} = ℚ is a decreasing tower of number fields between ℚ(α) and ℚ.

The first is the Galois correspondence between G-blocks and subgroups of G containing G_{α} (Theorem 3.11) and the second correspondence is via the fundamental theorem of Galois theory (Theorem 6.1). The crucial observation of Landau and Miller is that even though the Galois group G is unknown, the field ℚ_{Δ} can be computed in polynomial time. Knowing the structure of the fields ℚ_{Δ} gives us valuable information about the groups G_{Δ}. Consider a permutation group G on the set Ω. Let Δ ⊆ Σ be two G-blocks recall that B (Σ/Δ) denotes the set of blocks {Δ^{g}|g ∈ G Δ^{g} ⊆ Σ}. The group G (Σ/Δ) is the subgroup of G_{Σ} that fixes all the blocks in B (Σ/Δ) and G^{Δ} = G (Ω/Δ).

Proposition 7.2. Let Δ ⊆ Σ be two G blocks then.

1. The normal closure of the field ℚ_{Δ} over ℚ_{Σ} is exactly the fixed field Fix (ℚ_{f}, G (Σ/Δ)). In particular the normal closure of ℚ_{Δ} is the fixed field Fix (ℚ_{f}, G^{Δ}).

2. The index of G-blocks [Σ : Δ] is equal to the degree [ℚ_{Δ} : ℚ_{Σ}].

Proof. Recall that the normal closure of ℚ_{Δ} over ℚ_{Σ} is the smallest field containing ℚ_{Δ} that is normal over ℚ_{Σ}. The field ℚ_{f} is a Galois extension of ℚ_{Σ} with Galois group G_{Σ}. Since ℚ_{Δ} is contained in ℚ_{f} it follows that the normal closure of ℚ_{Δ} over ℚ_{Σ} is contained in ℚ_{f}. Let L ⊆ ℚ_{f} be any normal extension of ℚ_{Σ} containing ℚ_{Δ}. By the fundamental theorem of Galois theory (Theorem 6.1), L is the fixed field Fix (ℚ_{f}, H) for some subgroup H of G_{Δ} that is normal in G_{Σ}. The group G (Σ/Δ) is the largest subgroup of G_{Δ} that is normal in G_{Σ} (Theorem 3.12). Therefore Fix (ℚ_{f}, G (Σ/Δ)) is the smallest normal extension of ℚ_{Σ} that contains ℚ_{Δ} and is thus the normal closure of ℚ_{Δ} over ℚ_{Σ}. Let Σ = Ω then we have ℚ_{Σ} = ℚ_{Ω} = ℚ.

Hence the normal closure of ℚ_{Δ} is Fix (ℚ_{f}, G^{Δ}). This completes the proof of part 1.

For G-blocks Δ ⊆ Σ, by the Galois correspondence of blocks (Theorem 3.11), the index [Σ : Δ] = [G_{Σ} : G_{Δ}]. Consider any G-block Ψ. The extension ℚ_{f}/ℚ_{Ψ} is Galois with Galois group G_{Ψ}. Therefore [ℚ_{f} : ℚ_{Ψ}] = #G_{Ψ}. It follows that [G_{Σ} : G_{Δ}] = \frac{[ℚ_{f}:ℚ_{Σ}]}{[ℚ_{f}:ℚ_{Δ}]} = [ℚ_{Δ} : ℚ_{Σ}]. This proves part 2.

Proposition 7.2 will play an important role in our algorithms for nilpotence and Γ_{d} testing. We give polynomial time algorithm for computing the fields ℚ_{Δ} in Section 7.1. In Section 7.2 we study the block structure of transitive nilpotent permutation groups. Using these properties we give a nilpotence test. Finally the Γ_{d}-test is given in section 7.3.

7.1 Computing the fields ℚ_{Δ}

The goal of this section is to prove the following theorem that plays an important role in both the property testing algorithms we are going to describe.

Theorem 7.3. Let f(X) be an irreducible polynomial over ℚ with Ω as its set of roots. Let G ≤ Sym (Ω) be its Galois group. Let Δ be any G-block of Ω such that α ∈ Δ for some α ∈ Ω. There is an algorithm that given the field ℚ_{Δ} as a subfield of ℚ(α), runs in time polynomial in size (f) and size (ℚ_{Δ}) and computes the field ℚ_{Σ} for all G-blocks Σ such that Δ is a maximal G-subblock of Σ. Moreover size (ℚ_{Σ}) is at most a polynomial in size (f) and is independent of the size of the presentation of ℚ_{Δ}.

Although stated differently, this algorithm is due Landau and Miller [39] and is used in their polynomial-time solvability test. Through a sequence of lemmas we prove this theorem in the rest of this section.

For a G-block Δ let T_{Δ}(X) be the polynomial defined by

T_{Δ}(X) = ∏_{η∈Δ}(X − η).

Proposition 7.4. If T_{Δ}(X) = δ_{0} + δ_{1}X + … + δ_{r−1}X^{r−1} + X^{r} then field ℚ_{Δ} is the field ℚ(δ_{0}, …, δ_{r−1}).

Proof. For any automorphism σ ∈ G we have σ(T_{Δ}) = T_{Δ^{σ}}. Therefore if σ is in G_{Δ} then σ(T_{Δ}) = T_{Δ}. Let T_{Δ}(X) = δ_{0} + δ_{1}X + … + δ_{r−1}X^{r−1} + X^{r}.

Comparing the coefficients of X^{i} we have σ(δ_{i}) = δ_{i} for all 0 ≤ i < r. Conversely if for some σ ∈ G, if σ(δ_{i}) = δ_{i}, 0 ≤ i < r, then σ(T_{Δ}) = T_{Δ} and hence σ ∈ G_{Δ}. Thus we have the following proposition.

In view of Proposition 7.4, to compute ℚ_{Δ} it is sufficient to compute the polynomial T_{Δ}(X). The algebraic integers δ_{i}’s are symmetric functions on the roots of f(X) in Δ and hence using Lemma 6.15 and Proposition 6.18, size (δ_{i}) is bounded by a polynomial in size (f). Having computed the polynomial T_{Δ}, one can compute the field ℚ_{Δ} in time polynomial in size (f).

We prove the following important lemma on the irreducible factors of f(X) over ℚ_{Δ}.

Lemma 7.5. Let Δ be a G-block containing α. There is a one-to-one correspondence between irreducible factors of f(X) over ℚ_{Δ} and orbits of G_{Δ} given by

Ω′ ⇌ ∏_{η∈Ω′}(X − η), Ω′ a G-orbit.

Proof. Let g(X) be an irreducible factor of f(X) over ℚ_{Δ}. Then G_{Δ} = Gal (ℚ_{f}/ℚ_{Δ}) acts transitively on the roots of g(X). Hence for any two roots η and η′ of g(X) there is an element σ ∈ G_{Δ} such that σ(η) = η′. Therefore η and η′ belong to the same G_{Δ}-orbit. Conversely if η and η′ belong to the same G_{Δ} orbit then there is a σ ∈ G_{Δ} such that σ(η) = η′ and they are ℚ_{Δ}-conjugates. This is possible if and only if η and η′ are the roots of the same irreducible factor g of f(X) over ℚ_{Δ}.

The above lemma has the following important corollary.

Lemma 7.6. Let Δ be any G-block containing α. The polynomial T_{Δ} is the irreducible factor of f over ℚ_{Δ} which has α as its root. Let Σ be any G-block such that Σ ⊇ Δ. If g is an irreducible factor of f over ℚ_{Δ} then Σ contains a root of g if and only if it contains all the roots of g.

Proof. In the correspondence of Lemma 7.5, T_{Δ} corresponds to the orbit of α under G_{Δ}. Hence T_{Δ} is the factor of f(X) that has α as a root.

Let Δ ⊆ Σ be any two G-blocks and let g(X) be an irreducible factor of f(X) over ℚ_{Δ}. Suppose that Σ contains a root η of g. Any other root η′ of g is in the same G_{Δ} orbit, i.e. η′ ∈ η^{G_{Δ}}. However since Δ ⊆ Σ we have G_{Δ} ≤ G_{Σ}. Hence η′ ∈ η^{G_{Σ}} = Σ.

The above theorem gives a polynomial time algorithm to identify the polynomial T_{Δ}(X). Recall that ℚ_{Δ} is a subfield of ℚ(α). The polynomial T_{Δ}(X) is that irreducible factor g(X) of f(X) for which g(α) = 0. We now prove an important lemma from which the proof of Theorem 7.3 is more or less direct.

Lemma 7.7. Let Δ be a G-block containing α. Given the field ℚ_{Δ} as a subfield of ℚ(α) and an irreducible factor g of f over ℚ_{Δ}, we can compute in polynomial time T_{Σ} as a polynomial in ℚ(α)[Y], where Σ is the smallest G-block containing Δ and the roots of g.

Proof. Let the factorisation of f over ℚ_{Δ} be f = g_{0} … g_{r}, where g_{0} = T_{Δ} and g = g_{1}. Denote the set of roots of g_{i} by Φ_{i}, for each i. Then by Lemma 7.5, Φ_{i}’s are the orbits of G_{Δ} and the polynomial T_{Σ}(X) is precisely the product of g_{i} such that Φ_{i} ⊆ Σ. Let β be any root of g(X), and σ ∈ Gal (ℚ_{f}/ℚ) be an automorphism that maps α to β. The map σ is in fact an isomorphism between the fields ℚ(α) and ℚ(β). Let Σ be the smallest G-block containing Δ and Φ_{1}. It follows from the Galois correspondence of blocks (Theorem 3.11) that G_{Σ} is generated by G_{Δ} ∪ {σ}. If we knew the permutation σ and the orbits Φ_{i} explicitly then the following transitive closure procedure would give us Σ.

S ← {Δ, Φ_{1}}

repeat S′ ← {Φ^{σ} | Φ ∈ S} foreach orbit Φ_{j} do

1 if Φ_{j} ∩ Φ^{σ} ≠ ∅ for some Φ^{σ} ∈ S′ then S ← S ∪ {Φ_{j}}

end until S is unchanged; Output ⋃{Φ | Φ ∈ S})

Algorithm 9: Computing Σ

Our goal is to “simulate” Algorithm 9. The key ideas is that the orbit Φ_{i} corresponds to the irreducible factor g_{i} of f(X) over ℚ_{Δ} and testing whether Φ_{j} ∩ Φ_{i}^{σ} ≠ ∅ (step 1 of the Algorithm 9) amounts to checking whether the g.c.d of g_{j} and g_{i}^{σ} is nontrivial. We give a polynomial time algorithm for computing the g.c.d of g_{j} and g_{i}^{σ}.

First, we compute the extension field ℚ(α, β). We factor the polynomial g(X) over the field ℚ(α) into irreducible factors. Let h be any irreducible factor of g over ℚ(α) then ℚ(α, β) = ℚ(α)[X]/h(X). Since [ℚ(α, β) : ℚ] ≤ n^{2} and the heights H (α) = H (β) is bounded by 2^{O(size(f))} (Proposition 6.18), we can compute in polynomial time the explicit data of ℚ(α, β). Furthermore, in polynomial time we compute a primitive element γ = α + cβ, 1 ≤ c ≤ n^{8} + 1, of the field ℚ(α, β) and polynomials a(X) and b(X) in ℚ[X] such that α = a(γ) and β = b(γ).

Any irreducible factors g_{i}(X) can be written as a bivariate polynomial g_{i}(X, α). Hence symbolically g_{i}^{σ}(X) is the bivariate polynomial g_{i}(X, β). In g_{i}(X, α) and g_{i}(X, β) we replace α and β by a(γ) and b(γ) respectively to get the polynomials g_{i}(X) and g_{i}^{σ}(X) as polynomials of over ℚ(γ) = ℚ(α, β). Having computed the polynomials g_{i}^{σ} and g_{j} as polynomials over the same field ℚ(γ), one can compute their g.c.d in polynomial time. The complete algorithm to compute the polynomial T_{Σ} is given below (Algorithm 10). Clearly Algorithm 10 runs in time bounded by a polynomial in the input size. The correctness of the algorithm follows from the correctness of Algorithm 9.

S ← {T_{Δ}, g}

repeat S′ ← {g_{i}^{σ} | g_{i} ∈ S}. foreach factor g_{j} do

if gcd(g_{j}, h^{σ}) is nontrivial for some h^{σ} ∈ S′ then S ← S ∪ {g_{j}}

end until S is unchanged; Output T_{Σ} = ∏_{g_{i}∈S} g_{i}

Algorithm 10: Computing T_{Σ}

We now complete the proof of Theorem 7.3. By Proposition 7.4, it suffices to compute the set S of polynomials T_{Σ} such that Σ is a minimal G-block properly containing Δ. Let f(X) factor as f(X) = g_{0} … g_{r} over ℚ_{Δ} with g_{0} = T_{Δ}.

Let Σ_{i} be the smallest G-block containing Δ and all the roots of g_{i}. For any G-block Σ such that Δ is a maximal G-subblock of Σ, there is an i, 1 ≤ i ≤ r such that Σ = Σ_{i}. Using Lemma 7.7 we compute T_{Σ_{i}}’s for each 1 ≤ i ≤ r. The G-block Σ_{j} ⊆ Σ_{i} if and only if T_{Σ_{j}} divides T_{Σ_{i}} and hence Σ_{i} is a minimal G-block properly containing Δ if and only if T_{Σ_{i}} is not divisible by T_{Σ_{j}} for all j ≠ i. The set S is the collection of all the polynomials T_{Σ_{i}} such that for all j ≠ i, T_{Σ_{j}} ∤ T_{Σ_{i}}. Clearly computing S is in polynomial time.

Having computed the set S we compute the fields ℚ_{Σ_{i}} for all polynomials T_{Σ_{i}}(X) ∈ S. Recall that ℚ_{Σ_{i}} is obtained by adjoining the coefficients of the polynomial T_{Σ_{i}} each of which are symmetric functions of roots of f(X) in Σ_{i}. Thus although computing ℚ_{Σ_{i}} takes time proportional to size (f) and size (ℚ_{Δ}), the size of the explicit data computed for the field ℚ_{Σ_{i}} is polynomial in size (f) and is independent of the size of presentation of ℚ_{Δ}. This completes the proof of Theorem 7.3.

Remark 7.8. That the size of the computed presentation of ℚ_{Σ} is bounded by a polynomial in size (f) and is independent on the size of ℚ_{Δ} is important because Theorem 7.3 will be used repeatedly in our algorithms to compute a tower of fields ℚ_{Δ_{0}} ⊃ … ⊃ ℚ_{Δ_{m}} for a maximal chain of G-blocks Δ_{0} ⊂ … ⊂ Δ_{m}. The length m of such a chain of G-blocks could be as large as lg n where n is the degree of f. If the size of ℚ_{Δ_{i}} depended on the size of presentation of ℚ_{Δ_{i−1}} then the presentation of ℚ_{Δ_{m}} could be as large as n^{lg n}.

7.2 Nilpotence testing for Galois groups

In this section we give a polynomial time algorithm for testing whether the Galois group of a given polynomial is nilpotent. We give a characterisation of transitive nilpotent groups which can be tested in polynomial time. Recall that a finite group G is nilpotent if and only if every Sylow subgroup of G is normal (see Lemma 3.5 for other equivalent definitions). For a nilpotent group G and a prime p that divides #G, there is a unique p-Sylow subgroup which we denote in this section by G_{p}. In fact G_{p} is the set of all element of G that has order a power of p. Moreover any subgroup H of G is also nilpotent and the p-Sylow subgroup of H is G_{p} ∩ H. If {p_{1}, …, p_{k}} are the set of prime factors of #G then G = G_{p_{1}} × … × G_{p_{k}}.

Lemma 7.9. Let G be a transitive nilpotent permutation group on Ω then

1. For all primes p, p divides #G if and only if p divides #Ω.

2. For any prime p | #G and α ∈ Ω there is a block Σ_{p}^{α} containing α such that #Σ_{p}^{α} is the highest power of p that divides #Ω.

3. Let Δ be any G-block containing α such that #Δ = p^{l} for some prime p dividing #G. Then Δ ⊆ Σ_{p}^{α}. Also for all q different from p the q-Sylow subgroup of G_{Δ} is same as the q-Sylow subgroup of G_{α}, i.e. G_{q} ∩ G_{Δ} = G_{q} ∩ G_{α}.

Proof. As G is transitive on Ω, #Ω divides #G by Orbit-Stabiliser formula (Theorem 3.8). Hence, each prime factor of #Ω divides #G. Conversely let p be a prime factor of #G. For α ∈ Ω, the set Σ_{p}^{α} = α^{G_{p}} is a nontrivial Gblock as G_{p} is a normal subgroup of G (Lemma 3.13). Since G_{p} is transitive on Σ_{p}^{α}, it follows from the Orbit-Stabiliser formula that #Σ_{p}^{α} divides #G_{p}. Hence #Σ_{p}^{α} is p^{l} for some l > 0. Since p divides the cardinality of a G-block Σ_{p}^{α}, p must divide #Ω. This proves part 1.

Next, we prove (2). From the Galois correspondence of G-blocks (Theorem 3.11) we have [Ω : Σ_{p}^{α}] = [G : G_{Σ_{p}^{α}}]. The prime p does not divide [G : G_{p}] as G_{p} is the p-Sylow subgroup of G. Therefore p does not divide [G : G_{Σ_{p}^{α}}] either as G_{p} is a subgroup of G_{Σ_{p}^{α}}. Hence p is not a factor of [Ω : Σ_{p}^{α}] and #Σ_{p}^{α} is the highest power of p that divides #Ω.

To prove part 3 notice that G_{Δ} is a nilpotent group with the unique normal q-Sylow subgroup G_{q} ∩ G_{Δ}. Therefore we have G_{Δ} = ∏_{q}(G_{q} ∩ G_{Δ}). By the Galois correspondence (Theorem 3.11) of blocks we have

#Δ = [G_{Δ} : G_{α}] = ∏_{q}[G_{q} ∩ G_{Δ} : G_{q} ∩ G_{α}].  (7.1)

Since G_{q} ∩ G_{Δ} is a q-group, the prime p divides the index [G_{q} ∩ G_{Δ} : G_{q} ∩ G_{α}] if and only if q = p. However, in Equation 7.1 #Δ is a power of p. This is possible if and only if [G_{q} ∩ G_{Δ} : G_{q} ∩ G_{α}] = 1 for all q ≠ p. Thus G_{q} ∩ G_{Δ} = G_{q} ∩ G_{α} for all q different from p.

The group G_{Δ} is therefore the product group G_{p} ∩ G_{Δ} × ∏_{q≠p} G_{q} ∩ G_{α}. Since the group G_{Σ_{p}^{α}} contains both G_{p} and G_{α} we have G_{Σ_{p}^{α}} ≥ G_{Δ}. Thus by Galois correspondence of blocks (Theorem 3.11), Δ is a G-subblock of Σ_{p}^{α}.

Nilpotent groups behave almost like p-groups. Let G be a transitive nilpotent permutation group on Ω and let p be a prime dividing #G. We prove that as far as G-blocks contained in Σ_{p}^{α} are concerned, G behaves like G_{p}. The following lemma makes this precise.

Lemma 7.10. Let G be a transitive nilpotent permutation group acting on Ω. Let p be any prime that divides #G and let G_{p} be the corresponding p-Sylow subgroup. Consider any element α ∈ Ω and let Σ_{p}^{α} be the G-block α^{G_{p}}. A set Δ ⊆ Σ_{p}^{α} is a G-block if and only if Δ is a G_{p}-block under the transitive action of G_{p} on Σ_{p}^{α}.

Proof. Clearly any G-block contained in Σ_{p}^{α} is a G_{p}-block as G contains G_{p}. Conversely consider a G_{p}-block Δ of Σ_{p}^{α}. The group G_{p} ∩ G_{Δ} contains G_{p} ∩ G_{α}. To see this consider the transitive action of G_{p} restricted to Σ_{p}^{α}. The restriction action is a homomorphism ψ : G_{p} → Sym (Σ_{p}^{α}). Let H denote the image ψ(G_{p}) = G_{p}|_{Σ_{p}^{α}}. The groups G_{p} ∩ G_{Δ} and G_{p} ∩ G_{α} are the pullbacks ψ^{−1}(H_{Δ}) and ψ^{−1}(H_{α}) respectively. Since the subset Δ is a H-block of Σ_{p}^{α} and contains α, H_{Δ} ≥ H_{α}. Therefore G_{p} ∩ G_{Δ} ≥ G_{p} ∩ G_{α}.

Consider the group G′ = (G_{p} ∩ G_{Δ}) × ∏_{q≠p} G_{q} ∩ G_{α}. The group G_{α} is nilpotent and hence G_{α} = (G_{p} ∩ G_{α}) × ∏_{q≠p} G_{q} ∩ G_{α}. Since G_{p} ∩ G_{Δ} ≥ G_{p} ∩G_{α} we have G′ ≥ G_{α}. Therefore by the Galois correspondence of blocks (Theorem 3.11) we have Δ = α^{G′} is a G-block between {α} and Σ_{p}^{α}.

We now study the structure of blocks of a p-group. We state the following result due to Luks [46, Lemma 1.1].

Lemma 7.11 (Luks). Let G be a p-group acting transitively on Ω and let Δ be a maximal G-block. Then the index [Ω : Δ] is exactly p and G_{Δ} = G (Ω/Δ) = G^{Δ} is a normal group of index p in G.

Proof. Let Δ be a maximal G-block. By Galois correspondence of blocks we have [Ω : Δ] = [G : G_{Δ}]. Suppose that [G : G_{Δ}] = p^{l} for l ≥ 1. The group G being a p-group, it follows that there is a subnormal series G = G_{0} ▷ G_{1} … ▷ G_{l} = G_{Δ} such that [G_{i} : G_{i+1}] = p [30, Theorem 4.3.2]. Let α be any element of Δ. Since G_{Δ} ≥ G_{α}, (G_{i})_{α} = G_{α}. Therefore by Orbit-Stabiliser formula \frac{#α^{G}}{#α^{G_{1}}} = \frac{#G}{#G_{1}} = [G : G_{1}] = p. However G_{1} is a normal subgroup of G and α^{G_{1}} ≠ Ω. Therefore α^{G_{1}} is the maximal block Δ and G_{Δ} = G_{1}.

Recall that G^{Δ} = G (Ω/Δ) is the largest normal subgroup of G = G_{Ω} contained in G_{Δ} (Theorem 3.12. However G_{Δ} = G_{1} itself is normal. Hence G_{Δ} = G^{Δ}.

Applying Lemma 7.11 repeatedly we have the following lemma.

Lemma 7.12. Let G be a transitive p-group acting on Ω and α ∈ Ω. Let {α} = Δ_{0} ⊂ … ⊂ Δ_{t} = Ω be any maximal chain of G-blocks. Then

1. [Δ_{i+1} : Δ_{i}] = p for all 0 ≤ i < t.

2. G (Δ_{i+1}/Δ_{i}) = G_{Δ_{i}}.

3. The group G_{Δ_{i}} is a normal subgroup of G_{Δ_{i+1}} and the quotient group G_{Δ_{i+1}}/G_{Δ_{i}} is cyclic of order p.

In particular any minimal G-block is of cardinality p.

We now prove the following important property of transitive nilpotent permutation groups.

Lemma 7.13. Let G be a transitive nilpotent permutation group on Ω. Let p be any prime dividing #G. Let Δ be any G-block such that #Δ = p^{l} for some integer l ≥ 0. Let m be the highest power of p that divides #Ω. If l < m then we have

1. There exists a G-block Σ such that Δ is a maximal G-subblock of Σ and [Σ : Δ] = p.

2. For all G-blocks Σ such that Δ is a maximal G-subblock of Σ and [Σ : Δ] = p, G_{Δ} is a normal subgroup of G_{Σ}.

Proof. Let Σ_{p}^{α} as before denote the G-blocks α^{G_{p}}. Since #Δ is a power of p it follows that Δ is a G-subblock of Σ_{p}^{α} (Lemma 7.9). The subset Δ is a G_{p}-block on the transitive action of G_{p} on Σ_{p}^{α} (Lemma 7.10). Consider the action of the p-group G_{p} on Σ_{p}^{α}. If l < m there is a G_{p}-block Σ such that Σ_{p}^{α} ⊇ Σ ⊃ Δ and [Σ : Δ] = p. By Lemma 7.10 it follows that Σ is a G-block contained in Σ_{p}^{α}. This proves part 1.

Let α be any element of Δ. It follows from Lemma 7.9 that for all q ≠ p the q-Sylow subgroup of G_{Σ} and G_{Δ} are both G_{q}∩G_{α}. Let Ĝ_{p} be the product group ∏_{q≠p} G_{q}. The groups G_{Σ} and G_{Δ} are (G_{p} ∩ G_{Σ}) × (Ĝ_{p} ∩ G_{α}) and (G_{p}∩G_{Δ})×(Ĝ_{p}∩G_{α}) respectively. Moreover the groups G_{p}∩G_{Σ} and G_{p}∩G_{Δ} are p-groups with index [G_{p} ∩ G_{Σ} : G_{p} ∩ G_{Δ}] = [G_{Σ} : G_{Δ}] = [Σ : Δ] = p. Therefore G_{p} ∩ G_{Δ} is a normal subgroup of G_{p} ∩ G_{Σ}. As a result G_{Δ} = (G_{p} ∩ G_{Δ}) × (Ĝ_{p} ∩ G_{α}) is a normal subgroup of G_{Σ} = (G_{p} ∩ G_{Σ}) × (Ĝ_{p} ∩ G_{α}) and the quotient group \frac{G_{Σ}}{G_{Δ}} = \frac{G_{p}∩G_{Σ}}{G_{p}∩G_{Δ}} is isomorphic to 𝔽_{p}.

We give the following characterisation of transitive nilpotent groups.

Theorem 7.14. Let G be a transitive permutation group on Ω then the following are equivalent.

1. G is nilpotent.

2. For all primes p dividing #G, p divides #Ω and there exists a maximal chain of G-block {α} = Δ_{0} ⊂ … ⊂ Δ_{m} such that

(a) m is the highest power of p dividing #Ω.

(b) G_{Δ_{i}} is a normal subgroup of G_{Δ_{i+1}}.

(c) [Δ_{i+1} : Δ_{i}] = p for all 0 ≤ i < m.

(d) p ∤ [G : G^{Δ_{m}}].

Proof. If G is nilpotent then condition 2 holds. The required maximal chain of G-blocks is any maximal chain between {α} and Σ_{p}^{α}. We now prove the converse.

Consider any prime p dividing #G. The prime p divides #Ω and let m > 0 be the highest power of p dividing #Ω. Let {α} = Δ_{0} ⊂ … ⊂ Δ_{m} be a maximal chain of G-blocks satisfying the conditions 2a–2d. We prove that G^{Δ_{m}} is the unique p-Sylow subgroup for G.

Recall that G (Δ_{i+1}/Δ_{i}) is the largest subgroup of G_{Δ_{i}} that is normal in G_{Δ_{i+1}} (Theorem 3.12). However since G_{Δ_{i}} itself is a normal subgroup of G_{Δ_{i+1}} it follows that G_{Δ_{i}} = G (Δ_{i+1}/Δ_{i}). Moreover [G_{Δ_{i+1}} : G_{Δ_{i}}] = [Δ_{i+1} : Δ_{i}] = p and therefore [G_{Δ_{i+1}} : G (Δ_{i+1}/Δ_{i})] = p.

The group \frac{G^{Δ_{i+1}}}{G^{Δ_{i}}} is a subgroup of the l_{i}-fold product of \frac{G_{Δ_{i+1}}}{G(Δ_{i+1}/Δ_{i})} (The-

orem 3.12). Hence \frac{G^{Δ_{i+1}}}{G^{Δ_{i}}} is of order p^{l} for some l. As a result we have

#G^{Δ_{m}} = [G^{Δ_{m}} : G^{Δ_{m−1}}] … [G^{Δ_{1}} : G^{Δ_{0}}] = a power of p.

The group G^{Δ_{m}} is thus a p-group. Furthermore p ∤ [G : G^{Δ_{m}}] (condition 2d). Therefore G^{Δ_{m}} is a p-Sylow subgroup of G. Moreover the group G^{Δ_{m}} = G (Ω/Δ_{m}) is also a normal subgroup of G = G_{Ω} (part 1 of Theorem 3.12). Thus we have shown that for every prime p that divides #G the p-Sylow subgroup is normal. This proves that G is nilpotent.

7.2.1 The nilpotence test

Given f(X) ∈ ℚ[X] we want to test if the Galois group of f(X) is nilpotent. If f is reducible then the Galois group of f is nilpotent if and only if the Galois group of each of its irreducible factors is nilpotent. This is because nilpotent groups are closed under products and subgroups. Since in polynomial time one can factor polynomials over ℚ (Theorem 6.7), without loss of generality we assume that f(X) is irreducible. Let G be the Galois group of f(X) considered as a subgroup of Sym (Ω), where Ω is the set of roots of f(X). Since f is irreducible, G is transitive on Ω.

We describe the main idea behind the algorithm. It follows from Theorem 7.14 that G is nilpotent if and only if for all primes p that divide the order of G, there is a maximal chain of G-blocks {α} = Δ_{0} ⊂ … ⊂ Δ_{m} satisfying the conditions of part 2 of Theorem 7.14. We do not have access to the sets Δ_{i} and the groups G_{Δ_{i}}. However we prove that conditions in part 2 of Theorem 7.14 can be verified once the fields ℚ(α) = ℚ_{Δ_{0}} ⊃ … ⊃ ℚ_{Δ_{m}} are known. Recall that for a G-block Δ, ℚ_{Δ} is the fixed field of the splitting field ℚ_{f} under the automorphisms of G_{Δ}. Algorithm 11 is the complete algorithm.

Input: A polynomial f(X) ∈ ℚ[X] of degree n.

Result: Accepts f if Galois group of f(X) is nilpotent, Rejects

otherwise. Verify whether f(X) is solvable.

1 Compute the set P of all the prime factors of #Gal (f). Let G denote the Galois group of f thought of as a permutation group on Ω, the set of roots of f.

2 foreach p ∈ P do 3 if p does not divide n then Reject.

Let m be the highest power of p dividing n.

ℚ_{Δ_{0}} ← ℚ[X]/f(X). 4 for i ← 1 to m do

Using Theorem 7.3 compute the set of fields

F = {ℚ_{Σ}|Δ is a maximal G-block of Σ}.

5 Let ℚ_{Σ} be any field of F such that [ℚ_{Σ} : ℚ_{Δ_{i−1}}] = p. If no

such field exists then Reject.

6 if ℚ_{Σ}/ℚ_{Δ_{i−1}} is not normal then Reject.

else ℚ_{Δ_{i}} ← ℚ_{Σ}. end Let μ_{Δ_{m}}(X) be the primitive polynomial for ℚ_{Δ_{m}}.

7 if p divides #Gal (μ_{Δ_{m}}) then Reject.

end

Accept.

Algorithm 11: Nilpotence test

Given a polynomial f(X) with solvable Galois group, as a by product of the Landau-Miller test [39], there is a polynomial time algorithm to compute the prime factors of #Gal (f) (see also Theorem 7.23). Therefore the steps 1 and 7 of Algorithm 11 can be performed in polynomial time. All other steps can clearly be performed in polynomial time. This gives us the following proposition.

Proposition 7.15. Algorithm 11 runs in time polynomial in size (f).

We now argue the correctness of the algorithm in the following two propositions.

Proposition 7.16. Algorithm 11 accepts f(X) if the Galois group of f is nilpotent.

Proof. Let G be the Galois group of f(X) and let p be any prime that divides #G. Let G_{p} be the p-Sylow subgroup of G and let Σ_{p}^{α} be the G-block α^{G_{p}}. The loop in step 4 in fact constructs the tower of fields ℚ_{Σ_{p}^{α}} = ℚ_{Δ_{m}} ⊂ … ⊂ ℚ_{Δ_{0}} = ℚ(α) for a maximal chain of G-blocks {α} = Δ_{0} ⊂ … Δ_{m} = Σ_{p}^{α}. Lemma 7.13 guarantees that the step 5 will never fail.

The extension ℚ_{Δ_{i}}/ℚ_{Δ_{i−1}} is normal because G_{Δ_{i−1}} is a normal subgroup of G_{Δ_{i}}. Let K be the normal closure of ℚ_{Δ_{m}} then it follows form Proposition 7.2 that Gal (ℚ_{f}/K) is G^{Δ_{m}}. The Galois group of μ_{Δ_{m}}(X) is the quotient group \frac{G}{G^{Δm}}. Since G^{Δ_{m}} = G^{Σ_{p}^{α}} = G_{p}, p does not divide the order of the Galois group of μ_{Δ_{m}}(X).

Thus no step in the loop 4 will reject the input if the Galois group of f is nilpotent. This completes the proof.

We now prove the converse.

Proposition 7.17. If Algorithm 11 accepts then the Galois group of f(X) is nilpotent.

Proof. Let Ω be the roots of f(X) and let G be the Galois group of f(X) as a permutation group on Ω. Since the algorithm has accepted f(X) we have the following conditions of the Galois group G of f(X).

1. Every prime p that divides #G also divides n = #Ω. This is verified in step 3.

2. For any prime p dividing #G let m be the highest power of p dividing n. There is a maximal chain {α} = Δ_{0} ⊂ … ⊂ Δ_{m} of G-blocks such that for all 0 ≤ i < m

(a) G_{Δ_{i}} is a normal subgroup of G_{Δ_{i+1}}. We verified this in step 6 by checking that the extension ℚ_{Δ_{i+1}}/ℚ_{Δ_{i}} is a normal.

(b) [Δ_{i+1} : Δ_{i}] = p. This is because [Δ_{i+1} : Δ_{i}] = [ℚ_{Δ_{i+1}} : ℚ_{Δ_{i}}] = p (Proposition 7.2).

(c) The prime p does not divide [G : G^{Δ_{m}}]. As argued before the Galois group of the polynomial μ_{Δ_{m}}, a primitive polynomial of ℚ_{Δ_{m}}, is the Galois group \frac{G}{G^{Δm}}. Thus in step 7 we have verified that p does not divide #\frac{G}{G^{Δm}} = [G : G^{Δ_{m}}].

Hence from Theorem 7.14, G is nilpotent.

Combining Propositions 7.15, 7.16 and 7.17 we have the main theorem of this section.

Theorem 7.18. Given a polynomial f(X) ∈ ℚ[X], there is an algorithm that runs in time polynomial in size (f) that decides whether the Galois group of f is nilpotent.

7.3 Γ_{d}-testing for Galois groups

In this section we show that the technique underlying the Landau-Miller solvability test can be adapted to efficiently solve a more general problem, the problem of testing whether the Galois group of a polynomial f(X) ∈ ℚ[X] is in Γ_{d} for constant d. Recall that a group G is in Γ_{d} if there is a composition series G = G_{0} ▷ … ▷ G_{t} = {1} such that G_{i}/G_{i+1} is either abelian or isomorphic to a subgroup of S_{d}. Given a polynomial f(X) over ℚ of degree n, we give an algorithm that runs in time polynomial in size (f) and n^{d} to check whether the Galois group of f is in Γ_{d}. For constant d this yields a polynomial time Γ_{d}-test. As a byproduct of our polynomial time Γ_{d}-testing, we obtain a polynomial time algorithm to compute the prime factors of #Gal (f) for any polynomial f with Galois group in Γ_{d}. Note that for d < 5, Γ_{d} is the class of solvable groups and hence our result is a generalisation of the result of Landau-Miller [39].

We are given a polynomial f(X) over ℚ. Since the class Γ_{d} is closed under subgroups and quotients and products, without loss of generality assume that f(X) is irreducible of degree n. For describing the Γ_{d} test we fix the following notation for the rest of this section. Let G be the Galois group of f. Consider the faithful action of G as a permutation group on Ω, the set of roots of f. Let {α} = Δ_{0} ⊂ … ⊂ Δ_{m} = Ω be any maximal chain of G-blocks. Recall that for all 0 ≤ i < m the group G (Δ_{i+1}/Δ_{i}) is a normal subgroup of G_{Δ_{i+1}} (Theorem 3.12). We have the following proposition.

Proposition 7.19. The group G is in Γ_{d} if and only if the quotient groups \frac{G_{Δ_{i+1}}}{G(Δ_{i+1}/Δ_{i})}, 0 ≤ i < m, are all in Γ_{d}.

Proof. The series G = G^{Δ_{t}} ▷ … ▷ G^{Δ_{0}} = 1 gives a normal series for G. Hence G is in Γ_{d} if and only if for each 0 ≤ i < m the quotient \frac{G^{Δ_{i+1}}}{G^{Δ_{i}}} is in Γ_{d}. Consider the subgroups G_{Δ_{i+1}} and G (Δ_{i+1}/Δ_{i}) of G. If G is

in Γ_{d} so are G_{Δ_{i+1}} and G (Δ_{i+1}/Δ_{i}) and hence their quotient \frac{G_{Δ_{i+1}}}{G(Δ_{i+1}/Δ_{i})}

(Proposition 3.3). On the other hand, \frac{G^{Δ_{i+1}}}{G^{Δ_{i}}} is isomorphic to a subgroup of (\frac{G_{Δ_{i+1}}}{G(Δ_{i+1}/Δ_{i})})^{l} for some l (Theorem 3.12) and therefore \frac{G^{Δ_{i+1}}}{G^{Δ_{i}}} is in Γ_{d} if

\frac{G_{Δ_{i+1}}}{G(Δ_{i+1}/Δ_{i})} is in Γ_{d}. Hence G is in Γ_{d} if and only if for each 0 ≤ i < m the

quotient group \frac{G_{Δ_{i+1}}}{G(Δ_{i+1}/Δ_{i})} is in Γ_{d}.

We have no access to the groups G_{Δ_{i+1}} and G (Δ_{i+1}/Δ_{i}). However using Theorem 7.3 we can compute the field K_{i} = ℚ_{Δ_{i}}, 0 ≤ i ≤ m, for some maximal chain of G-blocks {α} = Δ_{0} ⊂ … ⊂ Δ_{m} = Ω. Let L_{i} be the normal closure of K_{i−1} over K_{i}. Using Proposition 7.2 and 7.19 we have the following proposition.

Proposition 7.20. The Galois group G is in Γ_{d} if and only the Galois groups Gal (L_{i}/K_{i}), 1 ≤ i ≤ m, is in Γ_{d}. Furthermore, if G is in Γ_{d} then the degree [L_{i} : ℚ] = n^{O(d)}.

Proof. The field L_{i} is the fixed field Fix (ℚ_{f}, G (Δ_{i}/Δ_{i−1})) (Proposition 7.2) and hence the Galois group Gal (ℚ_{f}/L_{i}) is G (Δ_{i}/Δ_{i−1}). Moreover the Galois group of ℚ_{f}/ℚ_{Δ_{i}} is G_{Δ_{i}} and hence by the fundamental theorem of Galois theory (Theorem 6.1), the Galois group Gal (L_{i}/K_{i}) is the quotient group \frac{G_{Δ_{i}}}{G(Δ_{i}/Δ_{i−1})}. It then follows from Proposition 7.19 that G is in Γ_{d} if and only if each of the Galois groups Gal (L_{i}/K_{i}) is in Γ_{d}.

The block Δ_{i−1} is a maximal G-subblock of Δ_{i}. Recall that the group \frac{G_{Δ_{i}}}{G(Δ_{i}/Δ_{i−1})} acts faithfully as a primitive permutation group on the set of G-blocks B (Δ_{i}/Δ_{i−1}) (Theorem 3.12). Moreover if G is in Γ_{d} then so is \frac{G_{Δ_{i}}}{G(Δ_{i}/Δ_{i−1})} and hence by the Babai-Cameron-Pálfy bound (Theorem 3.10) we have

[L_{i} : K_{i}] = #Gal (L_{i}/K_{i}) = #\frac{G_{Δ_{i}}}{G (Δ_{i}/Δ_{i−1})} ≤ [Δ_{i} : Δ_{i−1}]^{O(d)} ≤ n^{O(d)}

Therefore [L_{i} : ℚ] ≤ n^{O(d)}.

The above proposition in particular implies that if G is in Γ_{d} then the fields L_{i} can be computed in time polynomial in size (f) and n^{d}. To see this note that we have computed the explicit data of the fields K_{i} and K_{i−1} which are of size at most a polynomial in size (f). Since the degree of the normal closure L_{i} of K_{i−1} over K_{i} is bounded by a polynomial in n^{d}, we can use Landau’s algorithm (Theorem 6.10) to compute the field L_{i}. Thus we have the following proposition.

Proposition 7.21. If the Galois group G is in Γ_{d} then there is an algorithm that runs in time polynomial in size (f) and n^{d} to compute the fields L_{i}.

We now describe the polynomial time algorithm for Γ_{d}-testing. The algorithm first computes the fields K_{i} in time polynomial in size (f). Let b(n) be the bound on the size of primitive subgroups of S_{n} that are in Γ_{d}. By the Babai-Cameron-Pálfy bound we have b(n) = n^{O(d)}. For each i, using Landau’s algorithm (Theorem 6.10), checks whether the degree [L_{i} : K_{i}] is at most b(n) and if yes computes it. If any of the degrees [L_{i} : K_{i}] is greater than b(n) then clearly G is not in Γ_{d}.

Having computed the fields L_{i} and K_{i}, the Galois groups Gal (L_{i}/K_{i}) are explicitly computed using Landau’s algorithm. In time bounded by a polynomial in n^{d} we verify whether each of the groups Gal (L_{i}/K_{i}) is in Γ_{d} (this is sufficient because of Proposition 7.20). Algorithm 12 is the complete algorithm.

Input: An irreducible polynomial f(X) of degree n over ℚ.

Result: Accept if the Galois group of f(X) is in Γ_{d}, Reject otherwise. Let G be the Galois group of f(X) as a permutation group on Ω, the roots of f(X). Using Theorem 7.3 compute the fields K_{i} = ℚ_{Δ_{i}} for a maximal chain of G-blocks {α} = Δ_{0} ⊂ … ⊂ Δ_{m} = Ω. foreach 1 ≤ i ≤ m do

if [L_{i} : K_{i}] > b(n) then Reject.

else if Gal (L_{i}/K_{i}) is not in Γ_{d} then Reject. end Accept.

Algorithm 12: Γ_{d}-testing

The main theorem of this section follows.

Theorem 7.22. Given a polynomial f(X) ∈ ℚ[X], there is an algorithm running in time polynomial in size (f) and n^{O(d)} that decides whether the Galois group of f is in Γ_{d}.

For any 1 ≤ i ≤ m, we have #G = [ℚ_{f} : ℚ] = [ℚ_{f} : L_{i}].[L_{i} : K_{i}].[K_{i} : ℚ]. Therefore any prime factor of [L_{i} : K_{i}] divides #G. Conversely G^{Δ_{i}}/G^{Δ_{i−1}} is a subgroup of l_{i}-fold product of \frac{G_{Δ_{i}}}{G(Δ_{i}/Δ_{i−1})} (Theorem 3.12) for some in-

teger l_{i} ≥ 0. However by Proposition 7.20 \frac{G_{Δ_{i}}}{G(Δ_{i}/Δ_{i−1})} = Gal (L_{i}/K_{i}). It follows that any prime factor of #G is a prime factor of [L_{i} : K_{i}] for some 1 ≤ i ≤ m. Therefore the set of primes dividing #G is exactly the set {p|p prime and ∃ 1 ≤ i ≤ m p divides [L_{i} : K_{i}]}. If the Galois group G is in Γ_{d}, in time polynomial in size (f) and n^{d} we can compute the fields L_{i} and K_{i}. As a result we have the following theorem.

Theorem 7.23. Given f(X) ∈ ℚ[X] with Galois group in Γ_{d} there is an algorithm running in time polynomial in size (f) and n^{d} that computes all the prime factors of #Gal (f).

7.4 Discussion

We saw that even though computing the Galois group of a polynomial is hard, certain properties of Galois groups can be efficiently tested. Landau and Miller showed that solvability is one such property. We have added nilpotence testing and Γ_{d} testing to this list. A group being solvable is in some sense a “local property”. The solvability of a group G can be established by looking at the composition series of G. The composition series considered for G was G = G^{Δ_{m}} ▷ … ▷ G^{Δ_{0}} = 1 for a maximal chain of G-blocks {α} = Δ_{0} ⊂ … ⊂ Δ_{m} = Ω. The two-way Galois correspondence of Theorem 7.1 and Theorem 3.12 ensured that it was sufficient to compute the fields {ℚ_{Δ_{i}}}_{0≤i≤m}, to infer the solvability of G^{Δ_{i}}/G^{Δ_{i−1}} and hence G. Nilpotence testing cannot be inferred from the composition series. However Theorem 7.14 together with Theorem 7.1 ensured that the nilpotence of G can be tested once the tower of fields {ℚ_{Δ_{i}}}_{0≤i≤m} for a suitable maximal chain of G-blocks {α} = Δ_{0} ⊂ … ⊂ Δ_{m} is computed. In this context an interesting open problem is to test whether the Galois group of a polynomial is supersolvable. A group G is supersolvable if there is a normal series G = G_{0} ▷ … ▷ G_{t} = 1 such that each of the quotient group G_{i}/G_{i+1} is cyclic. (see Chapter 10 of Hall’s book [30]). Super solvable groups are a proper subclass of solvable groups and contain nilpotent groups. However, it is not clear whether the Landau-Miller solvability test or our nilpotence test can be adapted to an efficient supersolvability test. Even conditional results, for example assuming the generalised Riemann hypothesis, would be interesting.

What about nilpotence and Γ_{d} testing Gal (f) for polynomials f(X) over a number field K? It is not difficult to see that our algorithms can be generalised. This is because our test require only certain basic algorithms like factoring of univariate polynomials and gcd computations and efficient algorithms for these basic tasks over arbitrary number field are known.

Chebotarev density theorem and Order finding

In this chapter we study the problem of finding the order of the Galois group of a degree n polynomial f(X) ∈ ℚ[X] [7]. There is a polynomial time Turing reduction from computing the order to computing the Galois group because given a permutation group G ≤ S_{n} via its generators, the order of G can be computed in time polynomial in n (Theorem 3.9). In this chapter we show some conditional results. Assuming the generalised Riemann hypothesis we show better upper bounds for computing the order than the direct exponential time algorithm that follows from Landau’s algorithm (Theorem 6.10).

Assuming the generalised Riemann hypothesis, we prove that there is a polynomial time deterministic algorithm that makes one query to a #P oracle to compute the order of the Galois group Gal (f) In particular, this shows that the order can be computed in PSPACE, which was not known before. Recall that computing the Galois group of a polynomial is not known to be in PSPACE as nothing better than the EXP upper bound is known. From the above result, by an application of Stockmeyer’s result on approximating #P functions, we prove that there is a randomised algorithm with an NP oracle to approximate the order of the Galois group of f(X).

Our next result is on computing the order of polynomials with Galois group in Γ_{d}. We give a polynomial time reduction from exact computation to approximate computation of order of Gal (f) for polynomials f(X) with Galois group in Γ_{d}. Therefore assuming the generalised Riemann hypothesis, there is a randomised algorithm with NP-oracle for computing the order of Gal (f) exactly for polynomials f(X) with Galois group in Γ_{d}.

We can assume that the given polynomial f(X) is a monic polynomial over ℤ. Otherwise by clearing denominator we can assume that f(X) = a_{0} + … + a_{n}X^{n}, a_{i} ∈ ℤ. Consider the polynomial g(X) = a_{0}a_{n}^{n} + … + a_{i}a_{n}^{n−i}X + … + X^{n}. Clearly g(X) is a monic polynomial over ℤ. Moreover g(a_{n}X) = a_{n}^{n}f(X). Hence every root of g(X) is of the form a_{n}α where α is a root of f(X). Therefore ℚ_{g} = ℚ_{f}. Give f(X) we can compute g(X) in polynomial time and hence from now on, with out loss of generality, we will assume that the input polynomial f(X) is a monic polynomial of ℤ.

The main idea underlying these results is the following: For a positive integer x let S^{f}(x) denote the number of primes p ≤ x such that f(X) (mod p) splits completely over 𝔽_{p}. It follows from the Chebotarev density theorem, which we describe in Section 8.1, that S^{f}(x) is asymptotically \frac{x}{#G ln x}. Thus for large enough x, #G is close to \frac{x}{S^{f} (x) ln x}. We prove that the function x ↦ S^{f}(x) is a #P function. The polynomial time algorithm makes a query to and #P oracle and computes S^{f}(x). The effective version of Chebotarev density theorem guarantees that the order #G is then the nearest integer to \frac{x}{S^{f} (x) ln x} . We now describe the Chebotarev density theorem which plays a crucial role in our complexity theoretic results.

8.1 Chebotarev density theorem

Let K be any number field and L/K be an extension of K. Recall that the ring of integers of L, 𝕆_{L}, is a Dedekind domain and ideals of 𝕆_{L} has the unique factorisation property. Let 𝔭 be a prime ideal of 𝕆_{K}. The ideal 𝔭𝕆_{L}, which will also be denoted by 𝔭, need not be a prime ideal of 𝕆_{L}. Let 𝔭 factorise as 𝔭 = 𝔓_{1}^{e_{1}} … 𝔓_{g}^{e_{g}} over 𝕆_{L}. If L/K is a Galois extension then all the exponent e_{i} are the same, i.e. e_{1} = … = e_{g} = e. A prime ideal 𝔭 of 𝕆_{K} is ramified over the extension L/K if e > 1 and unramified otherwise.

We now consider Galois extensions L/K. Let G be the Galois group of L/K. Consider a prime 𝔭 of 𝕆_{K} that is unramified in L. Let 𝔓 be any prime ideal of 𝕆_{L} that divides 𝔭. Since 𝕆_{L} and 𝕆_{K} are Dedekind domains it follows that 𝕆_{L}/𝔓 and 𝕆_{K}/𝔭 are finite fields of cardinality N (𝔓) and N (𝔭) respectively. Furthermore the field 𝕆_{L}/𝔓 is an extension of 𝕆_{K}/𝔭 and the corresponding Frobenius element is given by α(mod 𝔓) ↦ α^{N(𝔭)}(mod 𝔓). For 𝔓 | 𝔭 there is an element (\frac{L/K}{𝔓} ) of Gal (L/K) such that

(\frac{L/K}{𝔓} ) α = α^{N(𝔭)} (mod 𝔓),

for all α in 𝕆_{L}. This element is called the Frobenius element associated with 𝔓 as its action modulo 𝔓 matches with the Frobenius element of the finite field extension \frac{𝕆_{L}}{𝔓} /\frac{𝕆_{K}}{𝔭}.

Let 𝔓_{1}, …, 𝔓_{g} be the primes of 𝕆_{L} that divide 𝔭. The Galois group Gal (L/K) fixes the ideal 𝔭 and act transitively on the set {𝔓_{1}, …, 𝔓_{g}}. In particular, if σ ∈ Gal (L/K) maps 𝔓_{1} to 𝔓_{2} then (\frac{L/K}{𝔓_{2}} ) = σ (\frac{L/K}{𝔓_{1}} ) σ^{−1}.

Thus (\frac{L/K}{𝔓_{𝔦}} ) are all conjugates in Gal (L/K) and the subset Frob_{L/K}(𝔭) of Gal (L/K) defined by

Frob_{L/K}(𝔭) = \{(\frac{L/K}{𝔓} ) : 𝔓|𝔭\}

is a conjugacy class of Gal (L/K). Let C be any conjugacy class of G and let π_{C}(x) denote the function

π_{C}(x) = # {𝔭 : Frob_{L}(𝔭) = C and N(𝔭) ≤ x} .

A remarkable result on the asymptotic value of π_{C}(x) is the Chebotarev density theorem which states that π_{C}(x) ∼ \frac{#C}{#G} \frac{x}{ln x}. To apply this result in a complexity-theoretic setting we need the following effective version of the Chebotarev density theorem due to Lagarias and Odlyzko proved assuming the generalised Riemann Hypothesis [35].

Theorem 8.1 (Lagarias and Odlyzko). Let L/K be a Galois extension and C be any conjugacy class of Gal (L/K). Assuming the generalised Riemann hypothesis we have the following bound for π_{C}(x):

|π_{C}(x) − \frac{#C}{#G} \frac{x}{ln x}| ≤ O (\sqrt{x}. ln x. ln d_{L} + #C\sqrt{x}) .

An unramified prime ideal 𝔭 of K is said to be completely split if the number of prime ideals 𝔓 of L that divide 𝔭 is [L : K]. In this case Frob_{L}(𝔭) is the singleton conjugacy class containing the identity element. The number of completely split primes 𝔭 such that N (𝔭) ≤ x is denoted by π_{1}(x). A direct consequence of Theorem 8.1 is the following.

Proposition 8.2. Assuming the generalised Riemann Hypothesis we have

|π_{1}(x) − \frac{1}{#G} \frac{x}{ln x}| ≤ O (\sqrt{x}. ln x. ln d_{L}) .

We are given a monic polynomial f(X) over ℤ. For an integer x, using the Chebotarev density theorem, we estimate the number of primes p ≤ x for which f(X) (mod p) splits completely over 𝔽_{p}.

Theorem 8.3. Given a monic polynomial f(X) over ℤ with Galois group G let S^{f}(x) denote the number of primes p ≤ x such that f(X) (mod p) splits completely over 𝔽_{p}. Assuming generalised Riemann hypothesis we have

|S^{f}(x) − \frac{1}{#G} \frac{x}{ln x}| ≤ O (\sqrt{x}. ln x.(n!)^{3}.size (f)) .

Proof. Let S^{f}(x) denote the set of all primes p such that f(X) (mod p) splits completely over 𝔽_{p}. Then S^{f}(x) = #S^{f}(x). Let L be the splitting field ℚ_{f}. Roots of f(X) are algebraic integers and hence are contained in 𝕆_{L}. Consider any prime 𝔭 of 𝕆_{L} and let p be the prime in ℤ such that 𝔭 ∩ ℤ = pℤ. Then for any root α ∈ 𝕆_{L} of f(X), α (mod 𝔭) is a root of f(X) (mod p) in the finite field 𝕆_{L}/𝔭. Therefore 𝕆_{L}/𝔭 is the splitting field of f(X) (mod p). If p is unramified and splits completely over L then 𝕆_{L}/𝔭 = 𝔽_{p} for all 𝔭 | p and hence f(X) splits completely over 𝔽_{p}. Therefore all unramified primes p ≤ x that split completely over L/ℚ are contained in the set S^{f}(x).

We now prove that the number of primes p in S^{f}(x) that are not completely split are ≤ (n!)^{3}.size (f). Let α_{1}, …, α_{n} denote the roots of f(X). Then there exists an algebraic integer θ = ∑ c_{i}α_{i} such that θ is a primitive element of L and lg d_{θ} ≤ (n!)^{3}size (f) (Theorem 6.19). Let μ_{θ}(X) be the minimal polynomial of θ. Since θ = ∑ c_{i}α_{i}, for any p if f(X) splits completely over 𝔽_{p} then so does μ_{θ}(X). If in addition p does not divide the discriminant d_{θ} then μ_{θ}(X) splits completely into distinct linear terms. It follows from the Kummer-Dedekind theorem (Theorem 6.3) that p is unramified and splits completely over L/ℚ. Therefore the primes p ∈ S^{f}(x) that are not completely split divide the discriminant d_{θ}. The number of primes that divide d_{θ} is bounded by lg d_{θ} ≤ (n!)^{3}.size (f) (Theorem 6.19). Hence the number of primes in S^{f}(x) that are not completely split over L/ℚ is less that (n!)^{3}.size (f)

We have thus proved that π_{1}(x) ≤ #S^{f}(x) = S^{f}(x) ≤ π_{1}(x) + lg d_{θ}. Also d_{L} ≤ d_{θ}. Thus

|S^{f}(x) − \frac{1}{#G} \frac{x}{ln x}| ≤ |S^{f}(x) − π_{1}(x)| + |π_{1}(x) − \frac{1}{#G} \frac{x}{ln x}|
≤ O (\sqrt{x}. ln x.(n!)^{3}.size (f)) (Proposition 8.2).

8.2 Computing the order of the Galois group

In this section we prove our first result on order computation. We are given a monic polynomial f(X) over ℤ. As in the previous section let S^{f}(x) denote the number primes p ≤ x such that f(X) splits completely over 𝔽_{p}.

Proposition 8.4. Assuming generalised Riemann hypothesis there exists a constant c such that for x ≥ c.(n!)^{10}size (f)^{2k}

|#G − \frac{1}{S^{f}(x)} \frac{x}{ln x}| ≤ \frac{1}{n!.size (f)^{k−1}} .

Therefore if x ≥ c(n!)^{10}size (f)^{2} and n ≥ 2, the integer closest to \frac{1}{S^{f} (x)} \frac{x}{ln x} is #G.

Proof. Let N(x) = \frac{1}{S^{f} (x)} \frac{x}{ln x}. From Theorem 8.3 we have

(1 − ε(x))\frac{1}{#G} \frac{x}{ln x} ≤ S^{f}(x) ≤ (1 + ε(x))\frac{1}{#G} \frac{x}{ln x}

where ε(x) is O (\frac{ln^{2} x.n!^{3}.size(f)}{\sqrt{x}}). Therefore (1 − ε(x))N(x) ≤ #G ≤ (1 +

ε(x))N(x). It follows that N(x) ≤ \frac{#G}{1−ε(x)} ≤ \frac{n!}{1−ε(x)}. For x = Ω(n!^{6}.size (f)^{2}), \frac{1}{1−ε(x)} ≤ 1 + 2ε(x). Therefore

|#G − \frac{1}{S^{f}(x)} \frac{x}{ln x}| = |#G − N(x)| ≤ n!ε(x)(1 + 2ε(x)).

There is a constant c such that for x ≥ c.n!^{10}size (f)^{2k}, ε(x) ≤ \frac{1}{4n!^{2}.size(f)^{k−1}} .

It follows that for x ≥ c.n!^{10}size (f)^{2k}, |#G − \frac{1}{S^{f} (x)} \frac{x}{ln x} | is bounded by

\frac{1}{n!.size(f)^{k−1}} .

Consider the machine M that on input ⟨f(X), x⟩ guesses a prime p ≤ x and checks whether f(X) splits over 𝔽_{p}. Since in time polynomial in size (f) and size (p) one can verify whether f(X) completely splits over 𝔽_{p} (Theorem 6.9), M is an NP machine. The function S^{f}(x) is the number of accepting paths of M on input ⟨f(X), x⟩ and therefore is in #P.

Proposition 8.5. The function ⟨f, x⟩ ↦ S^{f}(x) is in #P.

We now give the FP^{#P} machine M to compute the order of the Galois group. Given the polynomial f(X) the machine M makes a single query to the #P function of Proposition 8.5 and computes S^{f}(x) for x = c.(n!)^{10}.size (f)^{2}, where c is the constant of Proposition 8.4. Having computed S^{f}(x) the machine M in polynomial time finds the integer N closest to \frac{1}{S^{f} (x)} \frac{x}{ln x}. It follows from Proposition 8.4 that N is the order of Gal (f). Thus we have the following theorem.

Theorem 8.6. Given a polynomial f(X) over ℚ, assuming the generalised Riemann hypothesis there is a polynomial time deterministic algorithm with a #P oracle that computes the order of Gal (ℚ_{f}/ℚ).

For an arbitrary function in #P, Stockmeyer proved the following theorem [64].

Theorem 8.7 (Stockmeyer). For every function F in #P and any fixed constant c there is a randomised polynomial time algorithm with NP oracle that on input string x of length n computes a value N_{x} such that

(1 − \frac{1}{n^{c}} ) N_{x} ≤ F (x) ≤ (1 + \frac{1}{n^{c}} ) N_{x}.

Using the above theorem we show that there is a randomised polynomial time algorithm with NP oracle to approximate the order of the Galois group.

Theorem 8.8. Given a polynomial f(X) over ℚ there is a randomised algorithm with an NP oracle that runs in time polynomial in size (f) and approximates the order of the Galois group of f with a error of at most \frac{1}{size(f)^{O(1)}} .

Proof. Since S^{f}(x) is in #P, using the randomised procedure of Theorem 8.7, for any constant k, we can compute a \frac{1}{size(f)^{k}} -approximation S̃^{f}(x)

of S^{f}(x), i.e. compute S̃^{f}(x) such that (1 − ε)S̃^{f}(x) ≤ S^{f}(x) ≤ (1 + ε)S̃^{f}(x) where ε = \frac{1}{size(f)^{k}}. Therefore we have

\frac{1 − ε}{S^{f}(x)} ≤ \frac{1}{S̃^{f}(x)} ≤ \frac{1 + ε}{S^{f}(x)}.

By Proposition 8.4 there is a constant c such that for x ≥ c.n!^{10}size (f)^{2(k+1)} |\frac{1}{S^{f} (x)} \frac{x}{ln x} − #G| is bounded by \frac{1}{n!.size(f)^{k}}. Choosing x = c.n!^{10}size (f)^{2(k+1)} we have

\begin{matrix}|\frac{1}{S̃^{f} (x)} \frac{x}{ln x} − #G| & ≤ & |\frac{1}{S^{f} (x)} \frac{x}{ln x} − #G| + ε.\frac{1}{S^{f} (x)} \frac{x}{ln x} \\ & ≤ & \frac{2}{n!.size(f)^{k}} + #G\frac{1}{size(f)^{k}} \\ & ≤ & #G\frac{2}{size(f)^{k}} . \end{matrix} \}  (8.1)

The above inequality proves that the integer closest to \frac{1}{S̃^{f} (x)} \frac{x}{ln x} is a \frac{2}{size(f)^{k}} - approximation of #G.

We now give the randomised algorithm with NP-oracle to compute an \frac{1}{size(f)^{k}} approximation of #G. For x = c.n!^{10}size (f)^{2(k+1)}, using Theo-

rem 8.7, the algorithm first computes the approximation S̃^{f}(x) of the #P function S^{f}(x). Then compute the integer N closest to \frac{1}{S̃^{f} (x)} \frac{x}{ln x}. It follows

from inequality 8.1 that N is a \frac{2}{size(f)^{k}} -approximation of #G.

8.3 Computing the order of Galois groups in Γ_{d}

Given a polynomial f(X) over ℚ with Gal (ℚ_{f}/ℚ) in Γ_{d}, in this section we show that #Gal (ℚ_{f}/ℚ) can be computed by a randomised polynomial-time algorithm with access to an NP oracle. The algorithm can be seen as a polynomial time Turing reduction from exact order finding to approximate order finding. The result then follows from Theorem 8.8.

First we state an important Lemma from Lang’s book [40, Chapter VI, Theorem 1.12].

Lemma 8.9. Let L/M be a Galois extension and let N be any field that contains M. Then LN/N is Galois and Gal (LN/N) ≅ Gal (L/L ∩ N). Moreover the map that sends τ ∈ Gal (LN/N) to its restriction on L is an isomorphism between the Galois groups Gal (LN/N) and Gal (L/L ∩ N).

[figure: LN; L; N; L ∩ N; M]

Using Lemma 8.9 we prove the following theorem on simple Galois extensions, i.e. Galois extensions L/K such that Gal (L/K) is simple.

Theorem 8.10. Let L/M/N be finite extensions such that L/M is a simple Galois extension. Let E be a finite Galois extension of N containing M and let K be the normal closure of EL over N. Then [K : E] = [L : M]^{l} for some integer l ≥ 0.

Proof. Let L_{1}, …, L_{r} be the conjugate fields of L over N. Fix r automorphisms \{σ_{i}\}_{1≤i≤r} of Gal (\overline{N}/N) such that L_{i} = σ_{i}(L) and let M_{i} = σ_{i}(M).

First we prove that the Galois group Gal (K/E) embeds into the product group ∏_{i=1}^{r} Gal (L_{i}/M_{i}). Let G_{i} be the Galois group Gal (L_{i}/M_{i}). For any τ ∈ Gal (K/E) let τ_{i} denote the element of G_{i} obtained by restricting the action of τ on L_{i}. The homomorphism ψ that maps τ to ⟨τ_{1}, …, τ_{r}⟩ is an embedding from Gal (K/E) to ∏_{i=1}^{r} G_{i}. This is because K is the field EL_{1} … L_{r} and hence for any τ ∈ Gal (K/E) if τ_{i} fixes L_{i} for all 1 ≤ i ≤ r then it fixes K as well.

Having proved that Gal (K/E) embeds into the product group ∏ G_{i} we now prove that the degree [K : E] is a power of [L : M]. We dispose of the case when E contains one of the fields L_{i}. Since E is Galois over N, if E contains L_{i}, it contains all the other conjugate fields L_{j} and hence K = E. Therefore when E contains one of the L_{i}, [K : E] = 1 = [L : M]^{0}.

We now consider the case when E contains none of the fields L_{1}, …, L_{r}. We prove that in this case the projection map τ ↦ τ_{i} from Gal (K/E) to G_{i} is onto. It is sufficient to show that for all σ ∈ G_{i} = Gal (L_{i}/M_{i}) there is an automorphism τ in Gal (K/E) such that τ_{i} = σ, 1 ≤ i ≤ r.

Since K/E is Galois, every element τ ∈ Gal (EL_{i}/E) can be extended to an element τ̃ ∈ Gal (K/E) such that τ̃ restricted to EL_{i} is τ ([40, Theorem 2.8, Chapter V]). Therefore, it is sufficient to prove that for any element σ ∈ Gal (L_{i}/M_{i}) there is an element τ_{i} ∈ Gal (EL_{i}/E) such that τ_{i} restricted to L_{i} is σ.

Consider the extension EL_{i}/E. Since E is Galois and contains M, E ⊇ M_{i}. By Lemma 8.9, Gal (EL_{i}/E) is isomorphic to Gal (L_{i}/L_{i} ∩ E) via the map that send an automorphism Gal (EL_{i}/E) to its restriction on L_{i}. The extensions L_{i}/M_{i} and E/M_{i} are Galois and hence L_{i} ∩ E/M_{i} is also Galois. Therefore Gal (L_{i}/L_{i} ∩ E) is a normal subgroup of Gal (L_{i}/M_{i}) (Theorem 6.1). But Gal (L_{i}/M_{i}) is simple and L_{i} ∩ E ≠ L_{i}. Therefore L_{i} ∩ E = M_{i} and hence Gal (EL_{i}/E) ≅ Gal (L_{i}/M_{i}).

For any σ ∈ Gal (L_{i}/M_{i}), there is an element σ_{i} in Gal (EL_{i}/E) such that σ_{i} restricted to L_{i} is σ. Let τ ∈ Gal (K/E) be any automorphism such that τ restricted to EL_{i} is σ_{i}. Then τ_{i} = σ. As a result we have Gal (K/E) embeds onto the product group ∏_{i=1}^{r} Gal (L_{i}/M_{i}) via the map τ ↦ τ_{i}.

If L_{i}/M_{i} is a simple abelian extension then Gal (L_{i}/M_{i}) ≅ 𝔽_{p} and therefore Gal (K/E) is isomorphic to a vector space over 𝔽_{p}. Hence [K : E] = #Gal (K/E) = p^{l} = [L : M]^{l} for some l. Otherwise if L_{i}/M_{i} is a nonabelian simple extension then using Scott’s Lemma (Lemma 3.6), Gal (K/E) is a product of diagonal subgroups of Gal (L_{i}/M_{i}) and hence [K : E] = [L : M]^{l}.

Given a polynomial f(X) over ℚ of degree n. If the Galois group of f is in Γ_{d} then we show that the order of the Galois group of f can be computed by a randomised algorithm with an NP oracle. We first give a sketch of the algorithm here and defer the detailed description to Algorithm 13. For simplicity we assume that f(X) is irreducible. Algorithm 13 handles reducible f(X) as well.

For a number field K we denote the normal closure of K over ℚ by K̃. Let G be the Galois group of f(X) thought of as a permutation group over Ω the set of roots of f(X). For a G-block Δ recall that ℚ_{Δ} denotes the fixed field Fix (ℚ_{f}, G_{Δ}). Using Theorem 7.3 repeatedly we can compute the number fields K_{i} = ℚ_{Δ_{i}} for maximal chain of G-blocks {α} = Δ_{0} ⊆ … ⊆ Δ_{m} = Ω. Recall that the normal closure K̃_{m} and K̃_{0} are respectively ℚ and ℚ_{f} and #Gal (f) = [ℚ_{f} : ℚ]. For i decreasing from m to 0 we compute the degree [K̃_{i} : ℚ] inductively. To begin with the degree [K̃_{m} : ℚ] = 1. Assuming we have computed the degree [K̃_{i} : ℚ] we show how the degree [K̃_{i−1} : ℚ] can be computed. Let L_{i} denote the normal closure of K_{i−1} over K_{i}. Recall that L̃_{i} = K̃_{i−1} and hence it is sufficient to compute the degree [L̃_{i} : ℚ]. Recall that L_{i}/K_{i} is a Galois extension with small (≤ O(n^{d})) Galois group (Proposition 7.20). Hence we can compute the Galois group H = Gal (L_{i}/K_{i}) using Landau’s algorithm. Furthermore in time polynomial in n^{d} we compute a composition series H = H_{0} ▷ … ▷ H_{t} = 1 for H where each of the quotient group H_{i}/H_{i+1} is simple. Let F_{i} denote the fixed field Fix (L_{i}, H_{i}). Consider the tower of extensions K̃_{i} = F̃_{0} ⊆ … ⊆ F̃_{t} = K̃_{i−1}. We have the following proposition

Proposition 8.11. The extension F_{j+1}/F_{j} is a simple Galois extension and the degree [F̃_{j+1} : F̃_{j}] is a power of the degree [F_{j+1} : F_{j}].

Proof. The group H_{j+1} is a normal subgroup of H_{j} such that H_{j}/H_{j+1} is simple. Hence by fundamental theorem of Galois theory, the extension F_{j+1}/F_{j} is a simple Galois extension. Using Theorem 8.10 for the field extensions F_{j+1}/F_{j}/ℚ, the degree [F̃_{j+1} : F̃_{j}] is a power of the degree [F_{j+1} : F_{j}].

We compute the degree [F̃_{j} : ℚ] inductively for increasing j. To begin with [F̃_{0} : ℚ] = [K̃_{i} : ℚ] which we have already computed. Assume that we already know the degree [F̃_{j} : K̃_{i}]. We can compute a primitive polynomial h(X) of F_{j+1} over ℚ in time polynomial in size (f) and n^{d}. Using Theorem 8.8 for a suitable small ε (say ε = 0.1) we compute an approximation A of the degree [F̃_{j+1} : ℚ] such that (1 − ε)A ≤ [F̃_{j+1} : ℚ] ≤ (1 + ε)A. We have already computed the degrees [F̃_{j} : K̃_{i}] and [K̃_{i} : ℚ] and therefore can compute [F̃_{i} : ℚ] = [F̃_{j} : K̃_{i}][K̃_{i} : ℚ]. Therefore A′ = \frac{A}{[F̃_{j}:ℚ]} gives an

ε-approximation of [F̃_{j+1} : F̃_{j}].

Let r denote the degree [F_{j+1} : F_{j}] which we have already computed. Then by Proposition 8.11, [F̃_{j+1} : F̃_{j}] is a power of r. Let r^{l} be the power of r that is closest to A′. Since A′ is an ε-approximation of [F̃_{j+1} : F̃_{j}], if ε < 0.1 then [F̃_{j+1} : F̃_{j}] = r^{l}.

Having computed A′, r and [F̃_{j} : ℚ], it is easy to find [F̃_{j+1} : F̃_{j}] and thus [F̃_{j+1} : ℚ]. This completes our description of the algorithm. Algorithm 13 is a detailed presentation.

Algorithm 13 can be seen as a polynomial time Turing reduction from exact order finding to approximate order finding. The step 1 can be seen as an oracle query to a function that gives an approximation of the order of the Galois group. We thus have the following theorem.

Theorem 8.12. For polynomials f(X) with Galois group in Γ_{d} there is a polynomial time (polynomial in size (f) and n^{d}) Turing reduction from exact order finding to approximate order finding. Hence there is a randomised algorithm with an NP-oracle to compute the order of Gal (f) for polynomials f(X) with Galois group in Γ_{d}.

8.4 Discussion

In this section we proved upper bounds on order finding for Galois group assuming the generalised Riemann hypothesis. We proved that computing the order of the Galois group of a polynomial f(X) is in FP^{#P}. In addition if the Galois group of f(X) is in Γ_{d}, a fact that can be checked efficiently using Theorem 7.22, then the order of Gal (f) can be computed within the polynomial hierarchy. We can prove similar results for f(X) ∈ K[X] where K is give via explicit data.

Input: A polynomial f(X). Output: The order of Gal (f). if f(X) is a constant polynomial then return 1 Let f factorise as gh where g is an irreducible polynomial over ℚ. Let G be the Galois group Gal (ℚ_{g}/ℚ). Using Theorem 7.3 compute the fields K_{i} = ℚ_{Δ_{i}} for a maximal chain of G-blocks {α} = Δ_{0} ⊆ … ⊆ Δ_{m} = Ω. Recursively compute N_{m} = [ℚ_{h} : ℚ]. N_{i} will denote the degree [ℚ_{h}K̃_{i} : ℚ]. for i ← m downto 0 do

Compute the normal closure L_{i} of K_{i−1} over K_{i}.

Compute H = Gal (L_{i}/K_{i}).

Compute a composition series H = H_{0} ▷ … ▷ H_{t}.

for j ← 0 to t do F_{j} ← Fix (L_{i}, H_{j}) Compute the primitive polynomial f_{j}(X) of F_{j}

end

M_{0} ← 1, M_{j} will be the degree [ℚ_{h}F̃_{j} : ℚ_{h}].

for j ← 1 to t do 1 Compute a 0.1-approximation A of #Gal (hf_{j}).

Let r = [F_{j} : F_{j−1}].

Compute the power r^{l} closest to \frac{A}{M_{j−1}N_{i}}.

M_{j} ← M_{j−1}.r^{l}. end N_{i−1} ← N_{i}.M_{t}

end return N_{0}.

Algorithm 13: Computing order of Galois group in Γ_{d}.

An interesting open problem is to give nontrivial upper bound unconditionally. Another interesting problem is to give better upper bounds for order finding for special polynomials, like for example polynomials with solvable Galois groups. One way to achieve this is to give better upper bounds for approximating the order of the Galois group. Certain #P-complete functions like #DNF can be approximated efficiently (Chapter 11 of the book by Motwani and Raghavan [54] gives a detailed presentation of such #P complete problems). It would be interesting to know whether the number of completely split primes less than a given number x can be approximated efficiently in which case we would have efficient order finding algorithm for polynomials with Galois group in Γ_{d}.

At present computing the Galois group looks harder than computing the order. It would be interesting to know for example whether the Galois group can be computed in PSPACE. Even conditional results will be interesting. For polynomials with solvable Galois group are there better upper bounds ?

Computing Galois groups

In this chapter we give some upper bounds on computing the Galois group of certain special polynomials. Our first result is a randomised algorithm to compute the Galois group of polynomials with abelian Galois group [7]. This result makes use of the effective version of the Chebotarev density theorem and hences is conditional on the validity of the generalised Riemann hypothesis. We then consider polynomials f(X) that are product of polynomials {f_{i}}_{1≤i≤m} having the following properties (1) ℚ_{f_{i}} = ℚ[X]/f_{i}(X) and (2) Gal (f_{i}) is simple and nonabelian. We show that in this case there is deterministic algorithm that runs in time polynomial in size (f) to compute the Galois group of f. This result is unconditional and Scott’s Lemma plays a crucial role in the proof of this result. In particular, for this result the assumption that Gal (f_{i}) is nonabelian is crucial as Scott’s lemma is not true for abelian simple groups.

Recall that if f(X) is irreducible and has abelian Galois group then Gal (f) can be computed in polynomial time using Landau’s algorithm (Theorem 6.12). However, when f(X) is reducible with abelian Galois group, the Galois group can be exponentially large. Hence Landau’s algorithm cannot be used directly. In fact even when the polynomial is a product of quadratic polynomial nothing better than the exponential time algorithm is known (cf. Lenstra [44]).

For polynomials f(X) with abelian Galois group we give a polynomial time almost uniform sampling algorithm for elements of Gal (ℚ_{f}/ℚ). It is easy to see that for a group G a random sample of O(lg G) elements from G is a generator set with high probability.

9.1 Computing abelian Galois groups

Given a polynomial f(X) with abelian Galois group. Our task is to compute the Galois group G of f(X). Let f = f_{1}, …, f_{r} be the factorisation of f into irreducible factors. Let G_{i} be the Galois group of f_{i}. Each of the groups G_{i} can be computed explicitly using Landau’s algorithm. The group G is a subgroup of the product group ∏_{i=1}^{r} G_{i} and projects onto each G_{i}, i.e. G embeds into the product group ∏ G_{i}. Hence any σ ∈ G can be considered as a tuple σ = ⟨σ_{1}, …, σ_{r}⟩ where σ_{i} ∈ G_{i}.

There are two important properties of abelian extensions that we require. Firstly, each conjugacy class of G is a singleton set. Secondly, by factoring each of the irreducible factors f_{i} over 𝔽_{p} we can recover the Frobenius element associated to p (Proposition 9.2).

Let L denote the splitting field ℚ_{f}. Recall that for each prime p we can associate a conjugacy class Frob_{L/ℚ}(p) (see Section 8.1). Since G is abelian the conjugacy class Frob_{L/ℚ}(p) is a singleton set {σ_{p}}. We show that for a given σ ∈ G the probability that σ_{p} = σ for a random prime is close to \frac{1}{#G}. This follows from the Chebotarev density theorem. Hence picking primes p at random and recovering the corresponding Frobenius gives us an almost uniform sampler for elements of G. A polynomial size sample will then generate G.

Let p be any prime. To recover the Frobenius σ_{p}, we recover the corresponding Frobenius’ σ_{p,i} of G_{i}. Then σ_{p} = ⟨σ_{p,1}, …, σ_{p,r}⟩. The following important property of polynomials with abelian Galois group is useful in recovering the Frobenius element σ_{p}.

Lemma 9.1. Let g ∈ ℚ[X] be an irreducible polynomial of degree d with abelian Galois group. Let θ be any root of g and let g(X) = ∏_{i=1}^{d}(X −A_{i}(θ)) be the factorisation of g over ℚ(θ) where A_{i}(X) are polynomial over ℚ. For any σ ∈ Gal (ℚ_{g}/ℚ) there is a unique index i such that σ maps η to A_{i}(η) for any root η (not necessarily θ) of g.

Proof. Let G be the Galois group of g(X). Since g is irreducible and G is abelian, ℚ_{g} = ℚ(θ) and there is a unique automorphism σ_{i} that maps θ to A_{i}(θ). The automorphisms {σ_{i}}_{i=1}^{d} constitutes the group G. Consider any root η of g. Since G is transitive there is a τ ∈ G such that τ(θ) = η. Now σ_{i}(η) = σ_{i}τ(θ) = τσ_{i}(θ) since G is abelian. Therefore σ_{i}(η) = τ(A_{i}(θ)) = A_{i}(τ(θ)) = A_{i}(η). Therefore σ_{i} maps η to A_{i}(η).

We now show that given a prime p that does not divide the discriminant d_{f}, the automorphism σ_{p} can be recovered efficiently.

Proposition 9.2. Given a prime p that does not divide d_{f}, there is a randomised algorithm running in time polynomial in size (f) and lg p that computes the Frobenius σ_{p} as an r-tuple ⟨σ_{p,1}, …, σ_{p,r}⟩ where σ_{p,i} ∈ G_{i} is the Frobenius element corresponding to p for the extension ℚ_{f_{i}}/ℚ.

Proof. Fix a root θ_{i} of f_{i}(X) over the extension ℚ[X]/f_{i}(X). Let f_{i}(X) factorise as

f_{i}(X) = ∏_{j=1}^{n_{i}}(X − A_{ij}(θ_{i})).

Compute the Galois group G_{i} of f_{i} using Landau’s algorithm. Let σ_{ij} denote the unique automorphism of G_{i} that maps θ_{i} to A_{ij}(θ_{i}). Our task is to identify which of these is σ_{p,i}.

For each i we find the splitting field 𝔽_{q_{i}} of f_{i} over 𝔽_{p}. Since f_{i} is irreducible over ℚ the order of the Frobenius σ_{p,i} divides n_{i}, the degree of f_{i}. Therefore [𝔽_{q_{i}} : 𝔽_{p}] divides n_{i} and hence the splitting field is a small extension (of degree less than the degree of f) over 𝔽_{p}. Let α be any root of f_{i}(X) in 𝔽_{q_{i}}. In polynomial time find the index j such that α^{p} = Ã_{ij}(α) where Ã_{ij}(X) is the polynomial A_{ij}(X) mod p. Since p ∤ d_{f} the index j is unique as there are no multiple roots for f_{i}(X) over 𝔽_{p}. The Frobenius σ_{p,i} = σ_{ij}.

Having computed σ_{p,i} for all 1 ≤ i ≤ r we have σ_{p} = ⟨σ_{p,1}, …, σ_{p,r}⟩.

For our almost uniform sampler we study the distribution of σ_{p} for random primes p. We show that for a random prime p, the distribution of σ_{p} is almost uniform over G.

Proposition 9.3. Let σ be any automorphism in Gal (ℚ_{f}/ℚ). Let P_{σ}(x) denote the probability that for an unramified prime p ≤ x picked uniformly at random σ_{p} = σ. Assuming the generalised Riemann hypothesis, there exists a constant c independent of f(X) such that

\frac{1}{#G} (1 − \frac{1}{n!}) ≤ P_{σ}(x) ≤ \frac{1}{#G} (1 + \frac{1}{n!})

for all x ≥ c.(n!)^{10}.size (f)^{2}.

Proof. Let L be the splitting field ℚ_{f}. For an automorphism σ ∈ G let π_{σ}(x) denote the number of unramified primes p ≤ x such that σ_{p} = σ. By the effective version Chebotarev density theorem (Theorem 8.1) we have |π_{σ}(x) − \frac{1}{#G} \frac{x}{ln x} | ≤ O(\sqrt{x}. ln x. ln d_{L}). Recall that d_{L} ≤ (n!)^{3}size (f). Also by the prime number theorem, the number of primes less than x is given by π(x) = \frac{x}{ln x}. Therefore P_{σ}(x) = \frac{π_{σ}(x)}{π(x)}. It follows that

|P_{σ}(x) − \frac{1}{#G}| ≤ O (\frac{ln x^{2}.n!^{3}size (f)}{\sqrt{x}}) .

Therefore there is a constant c such that for x ≥ c.(n!)^{10}.size (f)^{2}

\frac{1}{#G} (1 − \frac{1}{n!}) ≤ P_{σ}(x) ≤ \frac{1}{#G} (1 + \frac{1}{n!}) .

Proposition 9.3 shows that picking random primes and computing σ_{p} gives an almost uniform sampling procedure. That σ_{p} can be computed given p follows from Proposition 9.2. The only missing result is to show that a polynomial sized sample generates G which we do now.

Lemma 9.4. Let G be any group. Consider a sampling procedure that produces each element g ∈ G with probability at least \frac{1}{λ#G}, for some λ > 1. A sample set of size 4.λ. lg #G where each element is obtained by running the sampling procedure independently will generate G with probability at least \frac{1}{4λ}.

Proof. Let N = 4.λ. lg #G and let g_{1}, …, g_{N} be the group elements sampled by running the procedure N times. Let G_{0} = {1} and let G_{i} denote the group generated by {g_{1}, …, g_{i}}. Define the random variable X_{i} as follows.

X_{i} = \{ \begin{matrix}1 if G_{i−1} ≠ G and g_{i} ∈ G_{i−1} \\ 0 otherwise \end{matrix}

We have Prob[X_{i} = 1 | G_{i−1} = G] = 0. If G_{i−1} ≠ G then #G_{i−1} ≤ \frac{1}{2}#G. Therefore the probability Prob[g_{i} ∉ G_{i−1} | G_{i−1} ≠ G] is at least \frac{1}{2λ}. We now compute the expectation of the variable X_{i}.

E[X_{i}] = Prob[X_{i} = 1]
= Prob[G_{i−1} ≠ G_{i} and g_{i} ∈ G_{i−1}]
= Prob[g_{i} ∈ G_{i−1} | G_{i−1} ≠ G_{i}].Prob[G_{i−1} ≠ G_{i}]
= 1 − Prob[g_{i} ∉ G_{i−1} | G_{i−1} ≠ G]
≤ 1 − \frac{1}{2λ}.

Let X be the random variable ∑_{i=1}^{N} X_{i}. The random variable X is always positive with expectation E[X] = ∑ E[X_{i}] ≤ N.(1 − \frac{1}{2λ}). By Markov’s inequality Prob[X ≥ t] ≤ \frac{E[X]}{t} for all t. Using t = N − lg #G we have

Prob[X ≥ N − log #G] ≤ \frac{1 − \frac{1}{2λ}}{1 − \frac{1}{4λ}}
≤ 1 − \frac{1}{4λ}.

Consider any sample g_{1}, …, g_{N} such that random variable X is less than N − lg #G. Assume that the random group G_{N} generated by g_{1}, …, g_{N} is different from G. Then G_{i} ≠ G for all 1 ≤ i ≤ n. As a result there are at least ⌈lg #G⌉ different indices i such that g_{i} ∉ G_{i−1}. At each such i, #G_{i} ≥ 2#G_{i−1}. Hence #G_{N} ≥ G. But G_{i}’s are all subgroup of G. This contradicts the assumption that G_{N} ≠ G. Therefore if X ≤ N − lg #G − 1 then G_{N} = G. Thus

Prob[G_{N} = G] ≥ Prob[X < N − lg #G]
= 1 − Prob[X ≥ N − lg #G]
≥ \frac{1}{4λ}.

We are ready to give a randomised algorithm to compute the Galois group of f(X). The idea is to pick a prime p ≤ x for some sufficiently large x at random and recover σ_{p} using Proposition 9.2. It follows from Proposition 9.3 that if x ≥ c.(n!)^{10}.size (f)^{2}, an element σ will be obtained by this sampling procedure with probability at least \frac{1}{2#G}. Therefore an 8 lg #G ≤ 8n^{2} sized sample set will generate G with probability at least \frac{1}{8}. Algorithm 14 is the detailed presentation.

We now prove the main result of this section.

Theorem 9.5. Given a polynomial f(X) over ℚ of degree n with abelian Galois group. Assuming the generalised Riemann hypothesis there is a randomised algorithm that runs in time polynomial in size (f) and outputs a strong generator set for Galois group of f with probability 1 − \frac{1}{2^{n.size(f)}}

Proof. Algorithm 14 gives a generator set of G with probability at least \frac{1}{8}. To improve the probability we run Algorithm 14 independently s times to get subsets A_{1}, …, A_{s} each of size 8n^{2}. Since A_{i}’s are picked independently Input: A polynomial f(X) over ℚ. Output: Galois group of f(X). Factorise f into irreducible factors f_{1}, … f_{r}. Let S ← ∅ for i = 1 to 8n^{2} do

Pick a prime p ≤ c.(n!)^{10}size (f)^{2} at random.

Recover the σ_{p} using Proposition 9.2

S ← S ∪ {σ_{p}} end return S.

Algorithm 14: Computing abelian Galois group

at random, the probability that none of A_{i}’s generate G is a at most (\frac{7}{8})^{s}. Hence A = ∪_{i=1}^{k}A_{k} is a generating set for G with at least 1−(\frac{7}{8})^{s}. Choosing s = \frac{n.size(f)}{lg 8−lg 7} we have the desired result. We can reduce the size of the set A to n^{2} by computing a strong generator set for G.

9.2 Computing simple Galois groups

We consider an interesting special case of nonabelian Galois groups computation for which we have a polynomial-time algorithm. Let f(X) be a polynomial such that f(X) factors as f = ∏_{i=1}^{r} f_{i}(X) over ℚ. Suppose the Galois group of f_{i}(X) is small (of order bounded by a polynomial in size (f)), simple and nonabelian. Then there is a polynomial time algorithm to compute the Galois group of f.

Firstly using Landau’s algorithm the groups G_{i} = Gal (K_{f_{i}}/K) can be computed in time polynomial in size (f) as G_{i} is of size bounded by a polynomial in size (f). The Galois group G = Gal (ℚ_{f}/ℚ) is a subgroup of ∏_{i=1}^{r} G_{i}. Moreover since the splitting field ℚ_{f} contains the splitting field ℚ_{f_{i}}, the projection from G to G_{i} is onto. Each of the groups G_{i} is simple and non-abelian. Therefore, by Scott’s Lemma (Lemma 3.6), there is a partition on the set {1, …, r} into subsets I_{1}, …, I_{s} such that G is given by

G = ∏_{k=1}^{s} Diag ( ∏_{j∈I_{k}} G_{j}).

As in Chapter 5 we say that i and j are linked if G_{i} and G_{j} belong to the same partition. In this case G projected to G_{i} × G_{j} is the diagonal group. This implies that i and j are linked if and only if the splitting fields f_{i} and f_{j} are the same. This give a polynomial time algorithm to check whether i and j are linked: Compute the explicit data for the splitting field L_{i} = ℚ_{f_{i}} and factorise f_{j}(X) over L_{i}. The indices i and j are linked if and only if f_{j}(X) splits completely over L_{i}

The partitions I_{1}, …, I_{s} are the equivalence classes of the equivalence relation ∼ defined by i ∼ j if i linked to j. Since i ∼ j can be checked in time polynomial in size (f) the equivalence classes {I_{k}}_{1≤k≤s} can be computed in polynomial time. Putting it all together we have the following theorem.

Theorem 9.6. Let f(X) ∈ ℚ[X] be a polynomial such that f = f_{1}f_{2} … f_{r} where each f_{i} has a non-abelian simple Galois group of size at most N. Then there is an algorithm that runs in time polynomial in size (f) and N to compute the Galois group of f(X). In particular if N is bounded by a polynomial in size (f), there is a polynomial time algorithm for finding the Galois group of f.

Proof. First factorise the polynomial f into f_{1}, f_{2} …, f_{n}. Compute the Galois groups G_{i} = Gal (ℚ_{f_{i}}/ℚ) for each 1 ≤ i ≤ n in time polynomial in size (f) and N using Landau’s algorithm (Theorem 6.10). As described before equivalence classes {I_{k}}_{1≤k≤s} can be computed in time polynomial in size (f) and N. For i and j that are linked, in order to compute the diagonal group, we need to find the right isomorphism between G_{i} and G_{j}. This can be computed by factoring f_{j} over ℚ_{f_{i}}. We then output the group

G = ∏_{k=1}^{t} Diag ( ∏_{j∈I_{k}} G_{j}),

which is the required Galois group.

9.3 Discussion

As all our results on computational Galois theory, we can prove similar results for polynomials f(X) over a number field K given by explicit data. It still remains open whether there is a polynomial time deterministic algorithm to compute the Galois group of a polynomial with abelian Galois group. Even when f(X) is a product of quadratic polynomials we do not have polynomial time deterministic algorithm.

For polynomials f(X) with abelian Galois group, each conjugacy class of G was singleton. Also any prime p that does not divide the discriminant d_{f}, using Lemma 9.1 we could recover the Frobenius associated to the prime p.

These two properties gave us the uniform sampling procedure. However if the Galois group of f(X) is not abelian we do not have a method to recover the action of the Frobenius. By factoring f(X) over 𝔽_{p} for different primes we get only the cyclic structure of element of Gal (f).

Finally, in the absence of any good algorithms, it is of interest to prove hardness results for Galois group computations.

Bibliography

[1] Manindra Agrawal, Neeraj Kayal, and Nitin Saxena. PRIMES is in P. Annals of Mathematics, 160(2):781–793, 2004.

[2] Ákos Seress. Permutation group algorithms. Number 152 in Cambridge Tracts in Mathematics. Cambridge University Press, 2003.

[3] Eric Allender. Arithmetic circuits and counting complexity classes. Quaderni di Matematica series, 2004. To appear.

[4] Eric Allender, Robert Beals, and Mitsunori Ogihara. The complexity of matrix rank and feasible systems of linear equations. Computational Complexity, 8:99–126, 1999.

[5] Eric Allender, K. Reinhardt, and S. Zhou. Isolation, matching, and counting: Uniform and nonuniform upper bounds. Journal of Computer and System Sciences, 59:164–181, 1999.

[6] V. Arvind and Piyush P Kurur. Graph Isomorphism is in SPP. In 43^{rd} Annual Symposium of Foundations of Computer Science, pages 743–750. IEEE, November 2002.

[7] V. Arvind and Piyush P Kurur. Upper bounds on the complexity of some Galois theory problems. In 14^{th} International Symposium on Algorithms and Computation,ISAAC, volume 2906 of Lecture Notes in Computer Science, pages 716–725. Springer, 2003.

[8] V. Arvind, Piyush P Kurur, and T. C. Vijayaraghavan. Bounded color multiplicity Graph Isomorphism is in the #L hierarchy. In 20th Conference on Computational Complexity (CCC 2005), pages 13–27. IEEE, June 2005.

[9] Lázló Babai. Monte carlo algorithms in graph isomorphism testing, 1979. Universitat de Montreal Tech. Report D.M.S 79-10.

[10] Lázló Babai. Bounded round interactive proofs in finite groups. SIAM Journal of Discrete Mathematics, pages 88–111, 1992.

[11] Lázló Babai, Peter J. Cameron, and P. P. Pálfy. On the order of primitive groups with restricted nonabelian composition factors. Journal of Algebra, 79:161–168, 1982.

[12] Lázló Babai and Eugene M. Luks. Canonical labeling of graphs. In Proceedings of the Fifteenth Annual ACM Symposium on Theory of Computing, pages 171–183, 1983.

[13] José Luis Balcázar, Josep Díaz, and Joaquim Gabarró. Structural Complexity I, volume 11 of ETACS monographs on theoretical computer science. Springer-Verlag, Berlin, 1988.

[14] José Luis Balcázar, Josep Díaz, and Joaquim Gabarró. Structural Complexity II, volume 22 of ETACS monographs on theoretical computer science. Springer-Verlag, Berlin, 1990.

[15] David A. Mix Barrington. Bounded-width polynomial-size branching programs recognize exactly those languages in NC. Journal of Computer and System Sciences, 38(1):150–164, 1989.

[16] E. R. Berlekamp. Factoring polynomials over finite fields. Bell System Tehcnical Journal, 46:1853–1859, 1967.

[17] E. R. Berlekamp. Factoring polynomials over large finite fields. Mathematics of Computation, 24(111):713–735, July 1970.

[18] K S Booth. Isomorphism testing for graphs, semigroups and finite automata are polynomially equivalent problems. SIAM Journal on Computing, 7:273–279, 1978.

[19] R. Boppana, J. Hastad, and S. Zachos. Does co-NP have short interactive proofs, May 1987.

[20] G. Buntrock, C. Damm, U. Hertrampf, and C. Meinel. Structure and importance of logspace-MOD classes. Mathematical Systems Theory, 25(3):223–237, 1992.

[21] David G. Cantor and Hans Zassenhaus. A new algorithm for factoring polynomials over finite fields. Mathematics of Computation, 36(154):587–592, April 1981.

[22] Henri Cohen. A Course in Computational Algebraic Number Theory. Springer-Verlag, Berlin, 1993.

[23] Stephen A. Cook. The complexity of theorem-proving procedures. In Proceedings of the 3rd ACM Symposium on Theory of Computing, pages 151–158, 1971.

[24] John D. Dixon and Brian Mortimer. Permutation Groups. Number 163 in Graduate texts in mathematics. Springer-Verlag, 1991.

[25] Jack Edmonds. Paths, trees, and flowers. Canadian Journal of Mathematics, 17:449–467, 1965.

[26] Stephen A. Fenner, Lance Fortnow, and Stuart A. Kurtz. Gap-definable counting classes. In Structure in Complexity Theory Conference, pages 30–42, 1991.

[27] Lance J. Fortnow and S. Homer. A short history of computational complexity. The History of Mathematical Logic, 2003.

[28] Merrick L. Furst, John E. Hopcroft, and Eugene M. Luks. Polynomialtime algorithms for permutation groups. In IEEE Symposium on Foundations of Computer Science, pages 36–41, 1980.

[29] M. Garey and D. Johnson. Computers and Intractability: A guide to the theory of NP-completeness. W. H. Freeman, 1979.

[30] Marshall Hall Jr. The Theory of Groups. The Macmillan Company, New York, first edition, 1959.

[31] Richard Karp. Reducibility among combinatorial problems. Complexity of computer computations, pages 85–104, 1972.

[32] Johannes Köbler, Uwe Schöning, and Jacobo Torán. Graph isomorphism is low for PP. Computational Complexity, 2(4):301–330, 1992.

[33] Johannes Köbler, Uwe Schöning, and Jacobo Torán. The Graph Isomorphism Problem: Its Structural Complexity. Birkhauser, 1993.

[34] Richard E. Ladner. On the structure of polynomial time reducibility. Journal of the ACM, 22(1):155–171, 1975.

[35] J. C. Lagarias and A. M. Odlyzko. Effective versions of the Chebotarev density theorem. In A. Fröhlich, editor, Algebraic Number Fields, pages 409–464. Academic Press, London, 1977.

[36] E. Landau. Sur quelques théorèmes de M. Petrovitch relatifs aux zéros des fonctions analytiques. Bulletin de la Société de France, 33:251–261, 1905.

[37] Susan Landau. Polynomial time algorithms for Galois groups. In John Fitch, editor, EUROSAM 84 Proceedings of International Symposium on Symbolic and Algebraic Computation, volume 174 of Lecture Notes in Computer Sciences, pages 225–236. Springer, July 1984.

[38] Susan Landau. Factoring polynomials over algebraic number fields. SIAM Journal of Computing, 14:184–195, 1985.

[39] Susan Landau and Gary. L. Miller. Solvability by radicals is in polynomial time. Journal of Computer and System Sciences, 30:179–208, 1985.

[40] Serge Lang. Algebra. Addison-Wesley Publishing Company, Inc, third edition, 1999.

[41] Arjen K. Lenstra. Factoring polynomials over algebraic number fields. In Proceedings of the European Computer Algebra Conference on Computer Algebra, pages 245–254, March 1983.

[42] Arjen K. Lenstra, Hendrik W. Lenstra Jr. and László Lovász. Factoring polynomials with rational coefficients. Mathematische Annalen, 261:515–534, 1982.

[43] Hendrik W. Lenstra Jr. Finding isomorphisms between finite fields. Mathematics of Computation, 56(193):329–347, January 1991.

[44] Hendrik W. Lenstra Jr. Algorithms in algebraic number theory. Bulletin of the American Mathematical Society, 26(2):211–244, April 1992.

[45] Leonid A. Levin. Universal sorting problems. Problems of Information Transmission, 9:265–266, 1973.

[46] Eugene M. Luks. Isomorphism of graphs of bounded valence can be tested in polynomial time. Journal of Computer and System Sciences, 25(1):42–65, 1982.

[47] Eugene M. Luks. Parallel algorithms for permutation groups and graph isomorphism. In Proceedings of the IEEE Foundations of Computer Science, pages 292–302. IEEE Computer Society, 1986.

[48] Eugene M. Luks. Lectures on polynomial-time computation in groups. Technical Report NU-CCS-90-16, Northeastern University, 1990. http://www.cs.uoregon.edu/˜ luks/northeasterncourse.pdf.

[49] Eugene M. Luks. Permutation groups and polynomial time computations. DIMACS Series in Discrete Mathematics and Theoretical Computer Science, 11:139–175, 1993.

[50] Eugene M. Luks and Pierre McKenzie. Parallel algorithms for solvable permutation groups. Journal of Computer and System Sciences, 37(1):39–62, 1988.

[51] Meena Mahajan and V. Vinay. Determinant: Old algorithms, new insights. SIAM journal on Discrete Mathematics, 12(4):474–490, 1999.

[52] R Mathon. A note on graph isomorphism counting problem. Information Processing Letters, 8(3):131–132, 15 March 1979.

[53] Gary L. Miller. Graph isomorphism, general remarks. Journal of Computer and System Sciences, 18(2):128–142, 1979.

[54] Rajeev Motwani and Prabhakar Raghavan. Randomized Algorithms. Cambridge University Press, first edition, 1997.

[55] Jürgen Neukirch. Algebraic Number Theory. Springer-Verlag, 1992.

[56] P. P. Pálfy. A polynomial bound for the orders of primitive solvable groups. Journal of Algebra, pages 127–137, July 1982.

[57] Omer Reingold. Undirected ST-connectivity in logspace. In Proceedings of the thirty-seventh annual ACM Symposium on Theory of Computing, STOC, pages 376–385. ACM, 2005.

[58] W L Ruzzo, J Simon, and M Tompa. Space-bounded hierarchies and probabilistic computation. Journal of Computer and System Sciences, 28:216–230, 1984.

[59] Uwe Schöning. Graph isomorphism is in the low hierarchy. Journal of Computer and System Sciences., 37(3):312–323, 1988.

[60] L. L. Scott. Representation in characteristic p. In Santa Cruz Conference on Finite Groups, pages 319–322. American Mathematical Society, 1980.

[61] Peter W. Shor. Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. SIAM Journal on Computing, 26(5):1484–1509, 1997.

[62] C. C. Sims. Computational methods in the study of permutation groups. Computational problems in Abstract Algebra, pages 169–183, 1970.

[63] C. C. Sims. Some group theoretic algorithms. Topics in Algebra, 697:108–124, 1978.

[64] L. Stockmeyer. On approximating algorithms for #P. SIAM Journal of Computing, 14:849–861, 1985.

[65] L. J. Stockmeyer. The polynomial hierarchy. Theoretical Computer Science, 3:1–22, 1976.

[66] Seinosuke Toda. Counting problems computationally equivalent to the determinant. manuscript, 1991.

[67] Seinosuke Toda. PP is as hard as the polynomial-time hierarchy. SIAM J. Comput., 20(5):865–877, 1991.

[68] Jacobo Torán. On the hardness of graph isomorphism. SIAM Journal of Computing, 33(5):1093–1108, 2004.

[69] Leslie G. Valiant. Relative complexity of checking and evaluating. Inf. Process. Lett., 5(1):20–23, 1976.

[70] Leslie G. Valiant. The complexity of computing the permanent. Theor. Comput. Sci., 8:189–201, 1979.

[71] B. L. van der Waerden. Algebra, volume I. Springer-Verlag, seventh edition, 1991.

[72] V. Vinay. Counting auxiliary pushdown automata and semi-unbounded arithmetic circuits. In Proceedings of 6th Structure in Complexity Theory Conference, pages 270–284, 1991.

[73] Joachim von zur Gathen and Jürgen Gerhard. Modern Computer Algebra. Cambridge University Press, first edition, 1999.

[74] Helmut Wielandt. Finite Permutation Groups. Academic Press, New York, 1964.

[75] V. N. Zemlyachenko, N. M. Korneenko, and R. I. Tyshkevich. Graph isomorphism problem. Journal of Soviet Mathematics, 29:1426–1481, 1985.

Index

Γ_{d}, 15

algebraic, 74 algebraic closure, 75 algebraic integers, 77 algebraic numbers, 77 alphabet, 7 automorphism

field automorphism, 75 of a graph, 25

Babai-Cameron-Pálfy bound, 19 block, 18 block system, 19

centraliser, 14 characteristic subgroup, 38 Chebotarev’s theorem, 107–109 colour class, 34 coloured graph, 34 composition series, 15 conjugate, 75

blocks, 19

decision problem, 7 degree, 74 diagonal subgroup, 16 direct product, 15 discriminant

of a number field, 77 of a polynomial, 87

embedding complex embedding, 77 real embedding, 77

empty string, 7

extension Galois extension, 75 normal extension, 75 of a field, 74 separable extension, 75

fixed field, 76 Frobenius, 76, 107 functional problems, 7

Galois correspondence of blocks, 19 of fields, 76 Galois group, 75 gap-definable, 11

height, 77

imprimitive, 19

index of a subgroup, 14 of blocks, 19

irreducible polynomials, 74

Kummer-Dedekind Theorem, 78

language, 7

length of a string, 7

letters, 7

locally residual series, 46 low complexity class, 11 lowness, 11

maximal increasing chain, 19 maximal subblock, 19 minimal polynomial, 74

nilpotent groups, 16 norm, 78 normal

series, 16 subgroup, 14 tower, 16

normal closure, 14, 75 number field, 77

O’Nan-Scott theorem, 39 orbit, 17 Orbit-Stabiliser formula, 17

primitive, 19 element, 75 polynomial, 75

pullback, 15

ramified prime, 107 regular action, 17 residual series, 42 residue subgroup, 40

Scott’s Lemma, 16 semidirect product, 15 semisimple, 16

series, 43 sift, 43 simple, 16 socle, 39 solvable group, 15 splitting field, 75 stabiliser

point-wise, 17 setwise, 17 string, 7 strong generator set, 18, 43–45 structure forest, 22 structure tree, 22 subnormal

series, 15 subgroup, 15 tower of groups, 15 supersolvable group, 105 symmetric group, 17

tower of groups, 15

transitive, 18 traversal, 18