Computation of Galois Groups

As a sample use of Axiom's algebraic number facilities, we compute the Galois group of the polynomial p(x)=x**5-5*x+12

We would like to construct a polynomial f(x) such that the splitting field of p(x) is generated by one root of f(x). First we construct a polynomial r=r(x) such that one root of r(x) generates the filed generatedy by two roots of the polynomial p(x). As it will turn out, the field generate by two roots of p(x) is, in fact, the splitting field of p(x). From the proof of the primitive element theorem we know that if a and b are algebraic numbers, then the field Q(a,b) is equal to Q(a+k*b) for an appropriately chosen integer k. In our case, we construct the minimal polynomial of a[i]-a[j], where a[i] and a[j] are two roots of p(x). We construct this polynomial using resultant. The main result we need is that if f(x) is a polynomial with roots a[1]...a[m] and g(x) is a polynomial with roots b[1]...b[n], then the polynomial h(x)=resultant(f(y),g(x-y),y) is a polynomial of degree m*n with roots a[i]+b[j], 1 <= i <= m, 1 <= j <= n. For f(x) we use the polynomial p(x). For g(x) we use the polynomial -p(-x). Thus, the polynomial we first construct is resultant(p(y),-p(y-x),y).

The roots of q(x) are a[i]-a[j], 1 <= i,j <= 5. Of course, there are five pairs (i,j) with i=j, so 0 is a 5-fold root of q(x). Let's get rid of this factor.

Factor the polynomial q1.

We see that q1 has two irreducible factors, each of degree 10. (The fact that the polynomial q1 has two factors of degree 10 is enough to show that the Galois group of p(x) is the diheral group of order 10. (ref: McKay, Soicher, Computing Galois Groups over the Rationals, Journal of Number Theory 20, 273-281 (1983). We do not assume the results of this paper and we continue with the computation.) Note that the type of factoredQ is Factored Polynomial Integer. This is a special data type for recording factorizations of polynomials with integer coefficients (see Factored). We can access the individual factors using the operation nthFactor.

Consider the polynomial r=r(x). This is the minimal polynomial of the difference of two roots of p(x). Thus, the splitting field of p(x) contains a subfield of degree 10. We show that this subfield is the splitting field of p(x) by showing that p(x) factors completely over this field. First we create a symbolic root of the polynomial r(x). (We replaced x by b in the polynomial r so that our symbolic root would be printed as b.)

We next tell Axiom to view p(x) as a univariate polynomial in x with algebraic number coefficients. This is accomplished with this type declaration:

Factor p(x) over the field Q(beta). (This computation will take some time).

When factoring over number fields, it is important to specify the field over which the polynomial is to be factored, as polynomials have different factorizations over different fields. When you use the operation factor, the field over which the polynomial is factored is the field generated by

1. the algebraic numbers that appear in the coefficients of the polynomial
2. the algebraic numbers that appear in a list passed as an optional second argument of the operation

In our case, the coefficients of p are all rational numbers and only beta appears in the list, so the field is simply Q(beta). It was necessary to give the list [beta] as a second argument of the operations because otherwise the polynomial would have to be factored over the field generated by its coefficients, namely the rational numbers.

We have shown that the splitting field of p(x) has degree 10. Since the symmetric group of degree 5 has only one transitive subgroup of order 10, we know that the Galois group of p(x) must be this group, the dihedral group of order 10. Rather than stop here, we explicitly compute the action of the Galois group on the roots of p(x). First we assign the roots of p(x) as the values of five variables. We can obtain an individual root by negating the constant coefficient of one of the factors of p(x).

We can obtain a list of all of the roots in this way.

The expression -coefficient(nthFactor(algFactors,i),0) is the ith root of p(x) and the elements of roots are the ith roots of p(x) as i ranges from 1 to 5. Assign the roots as the values of the variables a1..a5.

Next we express the roots of r(x) as polynomials in beta. We could obtain these roots by calling the operation factor. factor(r,[beta]) factors r(x) over Q(beta). However, this is a length computation and we can obtain the roots of r(x) as differences of the roots a1,...,a5 of p(x). Only ten of these differences are roots of r(x) and the other ten are roots of the other irreducible factor of q1. We can determine if a given value is a root of r(x) by evaluating r(x) at that particular value. (Of course, the order in which factors are returned by the operation factor is unimportant and may change with different implementations of the operation. Therefore, we cannot predict in advance which differences are roots of r(x) and which are not.) Let's look at four examples (two are roots of r(x) and two are not).

Take one of the differences that was a root of r(x) and assign it to the variable bb. For example, if eval(r,x,a1-a4) returned 0, you would enter this.

Of course, if the difference is equal to the root beta, you should choose another root of r(x). Automorphisms of the splitting field are given by mapping a generator of the field, namely beta, to other roots of its minimal polynomial. Let's see what happens when beta is mapped to bb. We compute the images of the roots a1,...,a5 under this automorphism.

Of course, the values aa1,...,aa5 are simply a permutation of the values a1,...,a5. Let's find the value of aa1 (execute as many of the following five commands as necessary).

Proceeding in this fashion, you can find the values of aa2..aa5. You have represented the automorphism beta -> bb as a permutation of the roots a1,...,a5. If you wish, you can repeat this computation for all the roots of r(x) and represent the Galois group of p(x) as a subgroup of the symmetric group on five letters. Here are two other problems that you may attack in a similar fashion:

1. Show that the Galois group of p(x)=x**4+2*x**3-2*x**2-2*x+1 is the dihedral group of order eight. (The splitting field of this polynomial is the Hilbert class field of the quadratic field Q(sqrt(145)).)
2. Show that the Galois group of p(x)=x**6+108 has order 6 and is isomorphic to the symmetric group on three letters. (The splitting field of this polynomial is the spliting field of x**3-2.)