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
- the algebraic numbers that appear in the coefficients of the polynomial
- 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:
- 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)).)
- 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.)