# General method for finding the degree of a splitting field

When we work on polynomials with low degrees, finding the degree of the splitting field can be done by explicitly calculating the roots of the polynomial and then constructing the minimal field that contains them.

What about higher degree polynomials? Are there algorithms or heuristic approaches that can be adopted?

Clearly it depends on the field we are working on, as for finite fields there is a reliable algorithm (which is very time-consuming).

In general, it seems to me that very often the degree of the splitting field over $\mathbb {Q}$ is the upper bound $n!$ where $n$ is the degree of the polynomial, when does this not happen precisely? Could you provide an example? Does Galois theory give us a hand?

• An often handy tool (when your polynomial $f(x)$ has integer coefficients) is Dedekind's theorem. See Qiaochu Yuan's post for a local explanation of the theorem. The idea is that if you can factor $f(x)$ modulo several prime numbers $p$, then such factorizations give information about the cycle structure of elements of the Galois group (when viewed as permutations of the roots). I have used the technique in several of my answers here. – Jyrki Lahtonen Feb 15 '18 at 15:22
• (cont'd) I like to think I have linked most of them to Qiaochu's answer. This has the useful by-product that you can find those examples from the list of questions Linked to that thread. – Jyrki Lahtonen Feb 15 '18 at 15:24
• Of course, this leads to the follow-up question of how to factor polynomials from $\Bbb{Z}[x]$ modulo $p$? We have several threads explaining some basic techniques for that as well! Of course, if you have a suitable CAS at hand, they often have factorization of polynomials modulo a prime already built-in, and you can take advantage. We also then run into the problem of trying to positively ID a subgroup $G$ of $S_n$ from the existence of elements $\sigma \in G$ with a given cycle structure. In general that would be the most challenging part for me. – Jyrki Lahtonen Feb 15 '18 at 15:30

Alexander Hulpke has a good article on the topic of computing Galois groups. I'm not aware of any ways to find the size of the splitting field any quicker than finding the Galois group.

Starting from your last question, given a "random" polynomial degree $n$ over $\mathbb Q$, its splitting field is extremely likely to be the full symmetric group $S_n$. In order to have a smaller Galois group, its coefficients must satisfy some polynomial equations, and therefore come from a space of dimension less than $n$. For example, it is well known that the Galois group is a subgroup of the alternating group $A_n$ if and only if the discriminant is a square.

As already mentioned in the commends, Dedekind's theorem can give you information about the cycle structure of elements of the Galois group. If the Galois group is $S_n$, then this will quickly find it because $S_n$ is generated by any transposition (2-cycle) and any $n$-cycle. Keith Conrad has some nice notes on this.

If the Galois group is smaller, though, the state-of-the-art general algorithm over $\mathbb Q$ (or a number field) is due to Fieker and Kluners (see their paper) and works very briefly as follows:

• We are given $f(x) \in \mathbb Q[x]$
• Set $W=S_n$
• For each maximal $U \leq W$:
• Find $I \in \mathbb Z[x_1,\ldots,x_n]$ be such that $\operatorname{Stab}_W(I)=U$ (an "invariant")
• Compute $R(t) = \prod_{w \in W//U}(t-I^w(r_1,\ldots,r_n)) \in \mathbb Z[t]$ (a "resolvent") where $r_i \in \bar{\mathbb Q}$ are the roots of $f$.
• Fact: $R(t)$ has a rational root if and only if $\operatorname{Gal}(f) \leq U$.
• If we find a $U$ such that $R(t)$ has a root, then set $W=U$ and start over.
• Otherwise $\operatorname{Gal}(f) = W$.

Observe that $\operatorname{Gal}(f) \leq W$ at all steps of the algorithm. By checking all of its maximal subgroups, we either find a smaller group containing the Galois group, or else the Galois group is not contained in any proper subgroup of $W$, and hence is $W$. The main hard bit of the algorithm is computing $R(t)$, and one way is to compute complex approximations to the roots of $f$ and plug these into the definition of $R$; there are better ways than this, and in fact there are tricks whereby you can avoid computing $R$ at all.

That was over number fields. If you are interested in $p$-adic fields like $\mathbb Q_p$ then there are a number of special cases known (e.g. unramified extensions, tame extensions and "singly ramified" extensions) but so far there is no general algorithm. Shameless plug: this is the subject of my upcoming thesis, in which I present a reasonably general algorithm for this case.

• Thanks for sharing. I have never thought about this way! – Jyrki Lahtonen Feb 16 '18 at 18:47
• Thanks to Doris and Jyrki Lahtonen! – Lucio Tanzini Feb 17 '18 at 12:26