Skip to content
The Lumenary
Advanced undergraduateUndergraduate 150 min

Fields and Galois theory

Measure field extensions by their dimension and study their symmetries. The tower law settles two of the classical Greek construction problems, finite fields exist in exactly the prime-power sizes, and Galois's correspondence explains why the quintic has no formula.

Formally verified · 21 LeanComputationally tested · 2 PythonAI-drafted · awaiting human reviewMathematically reviewed: Awaiting human review
MotivationH

Formulas, constructions and symmetry

Babylonian scribes solved quadratic problems nearly four thousand years ago, and Muḥammad ibn Mūsā al-Khwārizmī systematised the method in Baghdad in the ninth century. Cubic equations resisted much longer. ʿUmar al-Khayyām solved them geometrically, with intersecting conics, in the eleventh century. Scipione del Ferro and Niccolò Tartaglia found a formula in radicals in sixteenth-century Italy, Gerolamo Cardano published it in 1545, and Lodovico Ferrari reduced the quartic to a cubic. Then, for two and a half centuries, every attempt at the quintic failed. Paolo Ruffini (1799) and Niels Henrik Abel (1824) showed why: there is no general formula. Évariste Galois found the deeper reason before he died, aged twenty, in 1832. Whether the roots of a polynomial can be expressed by radicals depends on the group of symmetries of its roots.

A second set of ancient questions came from Greek geometry. With straightedge and compass, can one double the cube (construct 23\sqrt[3]{2}), trisect an arbitrary angle, or construct a regular heptagon? All three are impossible, proved by Pierre Wantzel in 1837. The proof is a short argument about the degree of a field extension, which is a dimension in the sense of linear algebra. In the same circle of ideas, Carl Friedrich Gauss showed in 1796, aged nineteen, that the regular 17-gon can be constructed.

This lesson builds the theory that answers both sets of questions. Fields are studied through their extensions, which are measured by degree; finite fields are built and classified; and Galois's correspondence between intermediate fields and subgroups is stated and applied. We use the language of quotient rings throughout: K[x]/(f)K[x]/(f) is the field obtained by adjoining a root of an irreducible ff.

IntuitionH

Adjoining a root, and permuting roots

Start with Q\Q and adjoin 2\sqrt2. The field Q(2)\Q(\sqrt 2) consists of all a+b2a + b\sqrt2 with a,b∈Qa, b \in \Q: closed under the field operations, since 1a+b2=a−b2a2−2b2\frac{1}{a + b\sqrt2} = \frac{a - b\sqrt2}{a^2 - 2b^2}. As a vector space over Q\Q it has basis 1,21, \sqrt2, so it has degree 22. The map a+b2↦a−b2a + b\sqrt2 \mapsto a - b\sqrt2 is a field automorphism fixing Q\Q. It swaps the two roots of x2−2x^2 - 2, and nothing in the algebra of Q\Q can tell 2\sqrt2 from −2-\sqrt2.

Now adjoin a root of x3−2x^3 - 2. Its three roots are 23\sqrt[3]2, ω23\omega\sqrt[3]2 and ω223\omega^2\sqrt[3]2, where ω=e2πi/3\omega = e^{2\pi i/3}. Over Q\Q these roots are indistinguishable too, and the smallest field containing all three, Q(23,ω)\Q(\sqrt[3]2, \omega), has degree 66. Its automorphisms permute the three roots in all 3!=63! = 6 possible ways. Each subgroup of this symmetry group fixes an intermediate field. The rotation subgroup of order 33 fixes Q(ω)\Q(\omega), and each reflection fixes one of the three cubic fields Q(ωk23)\Q(\omega^k \sqrt[3]2). Galois's theorem says that this matching of subgroups with intermediate fields is a perfect, inclusion-reversing dictionary.

The roots of x³ = 2

Three roots on a circle of radius ∛2. The Galois group of x³ − 2 permutes them like the symmetries of this triangle: all six permutations occur.

Try
120°w₀w₁w₂c

Drag the points, or focus one with Tab and use the arrow keys (hold Shift for small steps).

c =+i

Solutions of wⁿ = c for n = 3:

  • w₀ = 1.26
  • w₁ = −0.63 + 1.091i
  • w₂ = −0.63 − 1.091i

All roots lie on the circle of radius |c|^(1/n) ≈ 1.26.

Neighbouring roots are 120° apart: 360° ÷ 3.

w₀ is the principal root, at the angle (arg c)/n; the others follow by equal turns.

The roots add up to 0, so the regular polygon is balanced around the origin.

DefinitionsH

Extensions, degrees and Galois groups

All rings are commutative with 11. Recall that a ring homomorphism out of a field is injective (Proposition 3 of rings), so a homomorphism K→LK \to L of fields lets us regard KK as a subfield of LL.

Definition— field extension and degree

A field extension L/KL/K is a field LL containing KK as a subfield. Then LL is a vector space over KK, and its dimension [L:K]=dim⁡KL[L : K] = \dim_K L is the degree. The extension is finite if [L:K]<∞[L : K] \lt \infty. A field MM with K⊆M⊆LK \subseteq M \subseteq L is an intermediate field.

Definition— algebraic elements and minimal polynomials

α∈L\alpha \in L is algebraic over KK if f(α)=0f(\alpha) = 0 for some non-zero f∈K[x]f \in K[x], and transcendental otherwise. The minimal polynomial mα∈K[x]m_\alpha \in K[x] of an algebraic α\alpha is the monic polynomial of least degree with mα(α)=0m_\alpha(\alpha) = 0. K(α)K(\alpha) is the smallest subfield of LL containing KK and α\alpha, and K(α1,…,αn)K(\alpha_1, \dots, \alpha_n) is defined in the same way.

Definition— splitting fields, normal and separable

A splitting field of f∈K[x]f \in K[x] is an extension LL in which ff factors into linear factors and which is generated over KK by the roots of ff. A polynomial is separable if its roots in a splitting field are distinct. A finite extension L/KL/K is normal if every irreducible polynomial in K[x]K[x] with a root in LL splits in LL, and separable if every element's minimal polynomial is separable.

Definition— characteristic and Frobenius

The characteristic of a field is the least n≥1n \ge 1 with n⋅1=0n \cdot 1 = 0, or 00 if there is none. It is 00 or a prime pp, because Z/nZ\Z/n\Z embeds in a field only if it is a domain. The prime field is the smallest subfield, either Q\Q or Fp=Z/pZ\mathbb{F}_p = \Z/p\Z. In characteristic pp the Frobenius map is x↦xpx \mapsto x^p.

Definition— automorphism group, fixed field, Galois extension

For an extension L/KL/K, Aut⁡(L/K)\operatorname{Aut}(L/K) is the group of field automorphisms σ:L→L\sigma : L \to L with σ(a)=a\sigma(a) = a for all a∈Ka \in K. For a subgroup HH of automorphisms of LL, the fixed field is LH={x∈L∣σ(x)=x for all σ∈H}L^H = \{x \in L \mid \sigma(x) = x \text{ for all } \sigma \in H\}. A finite extension L/KL/K is Galois if it is normal and separable. Equivalently (Theorem 9), ∣Aut⁡(L/K)∣=[L:K]|\operatorname{Aut}(L/K)| = [L : K], or again, LL is the splitting field over KK of a separable polynomial. Then Gal⁡(L/K)=Aut⁡(L/K)\operatorname{Gal}(L/K) = \operatorname{Aut}(L/K) is its Galois group, and the Galois group of a separable polynomial ff is that of its splitting field.

Worked examplesH

A gallery of extensions

Example— Quadratic and biquadratic extensions

C=R(i)\C = \R(i) has degree 22 over R\R, with basis 1,i1, i. Q(2,3)\Q(\sqrt2, \sqrt3) has degree 44 over Q\Q, with basis 1,2,3,61, \sqrt2, \sqrt3, \sqrt6 (see the exercises). Its automorphisms send 2↦±2\sqrt2 \mapsto \pm\sqrt2 and 3↦±3\sqrt3 \mapsto \pm\sqrt3 independently, giving Gal⁡≅Z/2×Z/2\operatorname{Gal} \cong \Z/2 \times \Z/2. It equals Q(2+3)\Q(\sqrt2 + \sqrt3), a primitive element, whose minimal polynomial is x4−10x2+1x^4 - 10x^2 + 1.

Example— A non-normal extension

Q(23)⊂R\Q(\sqrt[3]2) \subset \R has degree 33, since x3−2x^3 - 2 is irreducible (Theorem 3 below). It contains one root of x3−2x^3 - 2 but not the two complex ones, so it is not normal. An automorphism must send 23\sqrt[3]2 to a cube root of 22 in Q(23)\Q(\sqrt[3]2), and there is only one, so Aut⁡(Q(23)/Q)\operatorname{Aut}(\Q(\sqrt[3]2)/\Q) is trivial: smaller than the degree. The splitting field is Q(23,ω)\Q(\sqrt[3]2, \omega), of degree 66.

Example— Cyclotomic fields

ζn=e2πi/n\zeta_n = e^{2\pi i/n} generates Q(ζn)\Q(\zeta_n), the splitting field of xn−1x^n - 1. For a prime pp, the minimal polynomial of ζp\zeta_p is Φp(x)=xp−1+⋯+x+1\Phi_p(x) = x^{p-1} + \dots + x + 1, which is irreducible (apply Eisenstein's criterion to Φp(x+1)\Phi_p(x + 1)). So [Q(ζp):Q]=p−1[\Q(\zeta_p) : \Q] = p - 1. The automorphism σa:ζp↦ζpa\sigma_a : \zeta_p \mapsto \zeta_p^a is defined for each a∈(Z/pZ)×a \in (\Z/p\Z)^\times, and Gal⁡(Q(ζp)/Q)≅(Z/pZ)×\operatorname{Gal}(\Q(\zeta_p)/\Q) \cong (\Z/p\Z)^\times, which is cyclic.

Example— Transcendental and infinite extensions

π\pi and ee are transcendental over Q\Q (Lindemann 1882, Hermite 1873), so Q(π)≅Q(t)\Q(\pi) \cong \Q(t), the field of rational functions, and [Q(π):Q]=∞[\Q(\pi) : \Q] = \infty. R/Q\R/\Q is infinite too, since R\R is uncountable and every finite extension of Q\Q is countable. The algebraic numbers Q‾⊂C\overline{\Q} \subset \C form an algebraic extension of Q\Q of infinite degree.

Example— Finite fields and an inseparable extension

F4=F2[x]/(x2+x+1)\mathbb{F}_4 = \mathbb{F}_2[x]/(x^2 + x + 1) has degree 22 over F2\mathbb{F}_2, and Frobenius α↦α2=α+1\alpha \mapsto \alpha^2 = \alpha + 1 is its non-trivial automorphism. Separability can fail only in characteristic pp. Over K=Fp(t)K = \mathbb{F}_p(t), the polynomial xp−tx^p - t is irreducible, and in a splitting field it becomes (x−t1/p)p(x - t^{1/p})^p, with a single root of multiplicity pp.

ProofH

Degrees, minimal polynomials and constructions

Theorem— Theorem 1 (tower law)

If K⊆M⊆LK \subseteq M \subseteq L are fields, then [L:K]=[L:M] [M:K][L : K] = [L : M]\,[M : K], in the sense that both sides are finite or both are infinite. If (mi)(m_i) is a basis of MM over KK and (lj)(l_j) a basis of LL over MM, then (milj)(m_i l_j) is a basis of LL over KK.

Proof

Spanning. For x∈Lx \in L write x=∑jbjljx = \sum_j b_j l_j with bj∈Mb_j \in M, and each bj=∑iaijmib_j = \sum_i a_{ij} m_i with aij∈Ka_{ij} \in K. Then x=∑i,jaij miljx = \sum_{i,j} a_{ij}\, m_i l_j. Independence. If ∑i,jaijmilj=0\sum_{i,j} a_{ij} m_i l_j = 0 with aij∈Ka_{ij} \in K, then ∑j(∑iaijmi)lj=0\sum_j \big(\sum_i a_{ij} m_i\big) l_j = 0 with coefficients in MM, so each ∑iaijmi=0\sum_i a_{ij} m_i = 0, and so each aij=0a_{ij} = 0. Count the basis. (If either factor is infinite, the same argument produces arbitrarily large independent sets in LL.)

∎

Theorem— Theorem 2 (simple algebraic extensions)

Let α∈L\alpha \in L be algebraic over KK. Then: (a) mαm_\alpha is irreducible, and f(α)=0  ⟺  mα∣ff(\alpha) = 0 \iff m_\alpha \mid f; (b) K(α)=K[α]≅K[x]/(mα)K(\alpha) = K[\alpha] \cong K[x]/(m_\alpha), with x↦αx \mapsto \alpha; (c) [K(α):K]=deg⁡mα[K(\alpha) : K] = \deg m_\alpha, with basis 1,α,…,αd−11, \alpha, \dots, \alpha^{d-1}. Conversely, a monic irreducible f∈K[x]f \in K[x] with f(α)=0f(\alpha) = 0 is the minimal polynomial.

Proof

The evaluation map ε:K[x]→L\varepsilon : K[x] \to L, f↦f(α)f \mapsto f(\alpha), is a ring homomorphism with image K[α]K[\alpha]. Its kernel is a non-zero ideal of the PID K[x]K[x], so it is (m)(m) for the monic polynomial mm of least degree in it, which is mαm_\alpha. This gives the divisibility in (a). The image K[α]K[\alpha] is a subring of a field, hence a domain, so (mα)(m_\alpha) is a prime ideal; it is non-zero, hence maximal in the PID K[x]K[x], and mαm_\alpha is irreducible. By the first isomorphism theorem K[α]≅K[x]/(mα)K[\alpha] \cong K[x]/(m_\alpha), which is a field. So K[α]K[\alpha] is a field containing KK and α\alpha, and therefore equals K(α)K(\alpha). Part (c) is Corollary 10 of the quotients lesson. Finally, if ff is monic irreducible with f(α)=0f(\alpha) = 0, then mα∣fm_\alpha \mid f forces f=mαf = m_\alpha.

∎

Consequences: α\alpha is algebraic iff [K(α):K]<∞[K(\alpha) : K] \lt \infty. Every element of a finite extension is algebraic, since 1,α,α2,…1, \alpha, \alpha^2, \dots cannot all be independent. If α,β\alpha, \beta are algebraic, then [K(α,β):K]≤[K(α):K][K(β):K][K(\alpha, \beta) : K] \le [K(\alpha) : K][K(\beta) : K] by the tower law, so α±β\alpha \pm \beta, αβ\alpha\beta and α/β\alpha/\beta are algebraic. The algebraic numbers form a field.

Theorem— Theorem 3 (two irreducible cubics)

x3−2x^3 - 2 and 8x3−6x−18x^3 - 6x - 1 are irreducible over Q\Q. Hence [Q(23):Q]=3[\Q(\sqrt[3]2) : \Q] = 3 and [Q(cos⁡20∘):Q]=3[\Q(\cos 20^\circ) : \Q] = 3.

Proof

A cubic that factors over Q\Q has a linear factor, hence a rational root. Rational root test: if rs\frac{r}{s} in lowest terms is a root of a3x3+⋯+a0∈Z[x]a_3x^3 + \dots + a_0 \in \Z[x], then r∣a0r \mid a_0 and s∣a3s \mid a_3. For x3−2x^3 - 2 the candidates ±1,±2\pm 1, \pm 2 give −1,−3,6,−10-1, -3, 6, -10, never 00. For 8x3−6x−18x^3 - 6x - 1 the candidates are ±1,±12,±14,±18\pm 1, \pm \frac12, \pm\frac14, \pm\frac18, and evaluation gives 1,−3,−3,1,−198,38,−11164,−17641, -3, -3, 1, -\frac{19}{8}, \frac{3}{8}, -\frac{111}{64}, -\frac{17}{64}: never 00. Finally cos⁡3θ=4cos⁡3θ−3cos⁡θ\cos 3\theta = 4\cos^3\theta - 3\cos\theta with θ=20∘\theta = 20^\circ gives 4c3−3c=124c^3 - 3c = \frac12, i.e. 8c3−6c−1=08c^3 - 6c - 1 = 0 for c=cos⁡20∘c = \cos 20^\circ. Apply Theorem 2.

∎

Theorem— Theorem 4 (Wantzel: constructible numbers)

If a real number cc can be constructed from 00 and 11 with straightedge and compass, then [Q(c):Q][\Q(c) : \Q] is a power of 22. Consequently the cube cannot be doubled, the angle 60∘60^\circ cannot be trisected, and the regular heptagon cannot be constructed.

Proof

A construction produces points step by step, each an intersection of two lines or circles drawn through points already constructed. Let FkF_k be the field generated over Q\Q by the coordinates of the points after kk steps. A line through two points with coordinates in FF has an equation ax+by=cax + by = c with a,b,c∈Fa, b, c \in F. A circle has an equation x2+y2+dx+ey+f=0x^2 + y^2 + dx + ey + f = 0 with d,e,f∈Fd, e, f \in F. Intersecting two lines means solving linear equations, so the new coordinates lie in FF. Intersecting a line and a circle means substituting the line into the circle, which gives a quadratic equation over FF. Two circles reduce to this case, since subtracting their equations gives a line. So each step has [Fk+1:Fk]∈{1,2}[F_{k+1} : F_k] \in \{1, 2\}, and by the tower law [Fn:Q]=2m[F_n : \Q] = 2^m. If cc is a coordinate of a constructed point, then Q⊆Q(c)⊆Fn\Q \subseteq \Q(c) \subseteq F_n, and [Q(c):Q][\Q(c) : \Q] divides 2m2^m (tower law again).

Doubling a cube of volume 11 means constructing 23\sqrt[3]2, of degree 33. Trisecting 60∘60^\circ would construct cos⁡20∘\cos 20^\circ, of degree 33. A regular heptagon would give cos⁡2π7\cos\frac{2\pi}{7}, a root of the irreducible cubic 8x3+4x2−4x−18x^3 + 4x^2 - 4x - 1. None of these degrees is a power of 22.

∎

The converse direction, together with Gauss's analysis of cyclotomic fields, gives the Gauss–Wantzel theorem: the regular nn-gon is constructible iff n=2kp1⋯prn = 2^k p_1 \cdots p_r with distinct Fermat primes pi=22j+1p_i = 2^{2^j} + 1. The only known Fermat primes are 3,5,17,257,655373, 5, 17, 257, 65537; whether there are more is an open problem. Squaring the circle (constructing π\sqrt\pi) is impossible for a different reason: Lindemann's 1882 theorem that π\pi is transcendental, which is not part of Galois theory.

ProofH

Finite fields

Theorem— Theorem 5 (existence and uniqueness of splitting fields)

Every f∈K[x]f \in K[x] of degree n≥1n \ge 1 has a splitting field LL with [L:K]≤n![L : K] \le n!, and any two splitting fields of ff over KK are isomorphic over KK.

Proof

Existence (Kronecker). Let gg be an irreducible factor of ff. Then K1=K[x]/(g)K_1 = K[x]/(g) is a field containing KK and a root xˉ\bar x of ff, with [K1:K]=deg⁡g≤n[K_1 : K] = \deg g \le n. Over K1K_1, f=(x−xˉ)f1f = (x - \bar x)f_1 with deg⁡f1=n−1\deg f_1 = n - 1. Induct on nn and use the tower law. Uniqueness (sketch). An isomorphism φ:K→K′\varphi : K \to K' extends to K[x]/(g)→K′[x]/(gφ)K[x]/(g) \to K'[x]/(g^\varphi), sending the root to any chosen root of gφg^\varphi. Inducting on the degree, it extends to an isomorphism of splitting fields. Full details: Dummit and Foote, Theorem 13.27.

∎

Theorem— Theorem 6 (finite fields)

Let FF be a finite field.

  1. FF has prime characteristic pp, contains Fp\mathbb{F}_p, and has pnp^n elements where n=[F:Fp]n = [F : \mathbb{F}_p].
  2. Frobenius ϕ(x)=xp\phi(x) = x^p is an automorphism of FF.
  3. For every prime power q=pnq = p^n there is a field with qq elements, namely the splitting field of Xq−XX^q - X over Fp\mathbb{F}_p, which consists exactly of the roots of that polynomial. It is unique up to isomorphism, and is denoted Fq\mathbb{F}_q.
  4. Fq×\mathbb{F}_q^\times is cyclic of order q−1q - 1.
  5. The subfields of Fpn\mathbb{F}_{p^n} are exactly one Fpd\mathbb{F}_{p^d} for each divisor dd of nn.
  6. Gal⁡(Fpn/Fp)\operatorname{Gal}(\mathbb{F}_{p^n}/\mathbb{F}_p) is cyclic of order nn, generated by ϕ\phi.

Proof

(1) The characteristic is not 00, since FF is finite, so it is a prime pp, and the image of Z\Z is Fp\mathbb{F}_p. As an Fp\mathbb{F}_p-vector space of dimension nn, FF has pnp^n elements.

(2) (xy)p=xpyp(xy)^p = x^py^p, and (x+y)p=∑k(pk)xkyp−k=xp+yp(x + y)^p = \sum_k \binom{p}{k}x^ky^{p-k} = x^p + y^p, because p∣(pk)p \mid \binom pk for 0<k<p0 \lt k \lt p. A field homomorphism is injective, and an injective self-map of a finite set is bijective.

(3) f=Xq−Xf = X^q - X has derivative qXq−1−1=−1qX^{q-1} - 1 = -1, so gcd⁡(f,f′)=1\gcd(f, f') = 1 and ff has qq distinct roots in a splitting field EE. The roots form the fixed set of the ring homomorphism ϕn:x↦xq\phi^n : x \mapsto x^{q}, so they are closed under ++, ×\times and inverses: they form a subfield with qq elements, which contains all roots of ff and hence equals EE. For uniqueness, if ∣F∣=q|F| = q, then every x∈F×x \in F^\times satisfies xq−1=1x^{q-1} = 1 by Lagrange's theorem in the group F×F^\times, so every element of FF is a root of ff. As ff has at most qq roots, FF is a splitting field of ff over Fp\mathbb{F}_p, and Theorem 5 applies.

(4) Let N=q−1N = q - 1, and let ψ(d)\psi(d) be the number of elements of order dd in F×F^\times. If ψ(d)≠0\psi(d) \ne 0, take gg of order dd. The dd powers of gg are roots of Xd−1X^d - 1, which has at most dd roots in a field, so every element of order dd is a power of gg, and exactly φ(d)\varphi(d) of those have order dd. Thus ψ(d)≤φ(d)\psi(d) \le \varphi(d) for all d∣Nd \mid N. But ∑d∣Nψ(d)=N=∑d∣Nφ(d)\sum_{d \mid N}\psi(d) = N = \sum_{d \mid N}\varphi(d) (groups lesson, Proposition 4), so ψ(d)=φ(d)\psi(d) = \varphi(d) for every d∣Nd \mid N. In particular ψ(N)=φ(N)≥1\psi(N) = \varphi(N) \ge 1: there is an element of order NN.

(5) If K⊆FpnK \subseteq \mathbb{F}_{p^n} with [K:Fp]=d[K : \mathbb{F}_p] = d, then n=d [Fpn:K]n = d\,[\mathbb{F}_{p^n} : K], so d∣nd \mid n, and KK is the set of roots of Xpd−XX^{p^d} - X by (3), so it is unique. Conversely, if d∣nd \mid n, then pd−1∣pn−1p^d - 1 \mid p^n - 1. So Xpd−XX^{p^d} - X divides Xpn−XX^{p^n} - X, which splits into distinct linear factors in Fpn\mathbb{F}_{p^n}. Its pdp^d roots form a subfield, by the argument in (3).

(6) If ϕk=id\phi^k = \mathrm{id} with 1≤k<n1 \le k \lt n, all pnp^n elements would be roots of Xpk−XX^{p^k} - X, which has only pkp^k roots. So ϕ\phi has order nn, and ∣Aut⁡(Fpn/Fp)∣≤[Fpn:Fp]=n|\operatorname{Aut}(\mathbb{F}_{p^n}/\mathbb{F}_p)| \le [\mathbb{F}_{p^n} : \mathbb{F}_p] = n by Theorem 7. Hence the group is ⟨ϕ⟩≅Z/nZ\langle\phi\rangle \cong \Z/n\Z.

∎

Counting degrees in the factorisation Xpn−X=∏d∣n∏deg⁡f=dfX^{p^n} - X = \prod_{d \mid n}\prod_{\deg f = d} f (over monic irreducible ff) gives pn=∑d∣nd Np(d)p^n = \sum_{d \mid n} d\,N_p(d). Möbius inversion yields Gauss's formula for the number of monic irreducible polynomials of degree nn over Fp\mathbb{F}_p:

Np(n)=1n∑d∣nμ(d) pn/d  >  0.N_p(n) = \frac1n \sum_{d \mid n} \mu(d)\, p^{n/d} \;\gt\; 0 .

So irreducible polynomials of every degree exist, and Fpn=Fp[x]/(f)\mathbb{F}_{p^n} = \mathbb{F}_p[x]/(f) for any irreducible ff of degree nn. The first experiment checks the formula by sieving. Note that Fp2\mathbb{F}_{p^2} is not Z/p2Z\Z/p^2\Z, which has the nilpotent element pp.

ProofH

The Galois correspondence

Theorem— Theorem 7 (automorphisms are bounded by the degree)

For a finite extension L/KL/K, ∣Aut⁡(L/K)∣≤[L:K]|\operatorname{Aut}(L/K)| \le [L : K]. For a simple extension L=K(α)L = K(\alpha), the automorphisms correspond to the roots of mαm_\alpha that lie in LL.

Proof

Simple case. An automorphism σ\sigma over KK is determined by σ(α)\sigma(\alpha), because L=K[α]L = K[\alpha]. And mα(σ(α))=σ(mα(α))=0m_\alpha(\sigma(\alpha)) = \sigma(m_\alpha(\alpha)) = 0. Conversely, for each root β∈L\beta \in L of mαm_\alpha, K(α)≅K[x]/(mα)≅K(β)⊆LK(\alpha) \cong K[x]/(m_\alpha) \cong K(\beta) \subseteq L gives an embedding α↦β\alpha \mapsto \beta. Since [K(β):K]=deg⁡mα=[L:K][K(\beta) : K] = \deg m_\alpha = [L : K], it is onto LL. So ∣Aut⁡(L/K)∣|\operatorname{Aut}(L/K)| is the number of roots of mαm_\alpha in LL, which is at most deg⁡mα=[L:K]\deg m_\alpha = [L : K].

General case. Distinct automorphisms σ1,…,σr\sigma_1, \dots, \sigma_r are linearly independent over LL as functions L→LL \to L (Dedekind's lemma: take a shortest dependence ∑ciσi=0\sum c_i\sigma_i = 0; substituting yxyx for xx and subtracting σ1(y)\sigma_1(y) times the original produces a shorter one). They are KK-linear maps of the KK-vector space LL of dimension d=[L:K]d = [L : K]. The space of such maps, viewed as an LL-vector space by post-multiplication, has dimension dd (a KK-linear map is determined by its values on a basis). So r≤dr \le d.

∎

Theorem— Theorem 8 (Artin)

Let HH be a finite group of automorphisms of a field LL. Then [L:LH]=∣H∣[L : L^H] = |H|, and Aut⁡(L/LH)=H\operatorname{Aut}(L/L^H) = H.

Proof

Let n=∣H∣n = |H| and suppose α1,…,αm∈L\alpha_1, \dots, \alpha_m \in L with m>nm \gt n. The linear system ∑j=1mσ(αj) xj=0\sum_{j=1}^m \sigma(\alpha_j)\,x_j = 0 (σ∈H\sigma \in H) has nn equations and mm unknowns, so it has a non-zero solution in LmL^m. Choose one with the fewest non-zero entries, scaled so that some entry equals 11. For τ∈H\tau \in H, applying τ\tau to the equations permutes them (as σ\sigma runs over HH, so does τσ\tau\sigma), so τ(x)\tau(x) is again a solution. Then x−τ(x)x - \tau(x) is a solution with fewer non-zero entries (the scaled entry cancels), so it is 00. Hence every xj∈LHx_j \in L^H, and the equation for σ=id\sigma = \mathrm{id} is a non-trivial linear relation ∑αjxj=0\sum \alpha_j x_j = 0 over LHL^H. So any m>nm \gt n elements are dependent, and [L:LH]≤n[L : L^H] \le n. On the other hand H⊆Aut⁡(L/LH)H \subseteq \operatorname{Aut}(L/L^H), so by Theorem 7, n≤∣Aut⁡(L/LH)∣≤[L:LH]≤nn \le |\operatorname{Aut}(L/L^H)| \le [L : L^H] \le n. All are equal, and H=Aut⁡(L/LH)H = \operatorname{Aut}(L/L^H).

∎

Theorem— Theorem 9 (characterisations of Galois extensions; stated)

For a finite extension L/KL/K the following are equivalent: (a) L/KL/K is normal and separable; (b) LL is the splitting field over KK of a separable polynomial; (c) ∣Aut⁡(L/K)∣=[L:K]|\operatorname{Aut}(L/K)| = [L : K]; (d) LAut⁡(L/K)=KL^{\operatorname{Aut}(L/K)} = K. In characteristic 00, and over finite fields, every irreducible polynomial is separable, and (a) reduces to normality.

The equivalence of (c) and (d) follows from Artin's theorem: with G=Aut⁡(L/K)G = \operatorname{Aut}(L/K) we have K⊆LGK \subseteq L^G and [L:LG]=∣G∣[L : L^G] = |G|, so by the tower law ∣G∣=[L:K]  ⟺  LG=K|G| = [L : K] \iff L^G = K. That (b) implies (c) is proved by counting the extensions of idK\mathrm{id}_K step by step through a tower of simple extensions, as in Theorem 7. Each step offers as many choices as the degree, because the polynomial is separable. For the remaining implications see Stewart (2015), chapters 9–12, or Dummit and Foote, §14.1–14.2.

Theorem— Theorem 10 (fundamental theorem of Galois theory)

Let L/KL/K be a finite Galois extension with group G=Gal⁡(L/K)G = \operatorname{Gal}(L/K).

  1. The maps H↦LHH \mapsto L^H and M↦Gal⁡(L/M)M \mapsto \operatorname{Gal}(L/M) are mutually inverse, inclusion-reversing bijections between subgroups of GG and intermediate fields K⊆M⊆LK \subseteq M \subseteq L.
  2. [L:M]=∣Gal⁡(L/M)∣[L : M] = |\operatorname{Gal}(L/M)| and [M:K]=[G:Gal⁡(L/M)][M : K] = [G : \operatorname{Gal}(L/M)].
  3. M/KM/K is Galois iff Gal⁡(L/M)\operatorname{Gal}(L/M) is normal in GG, and then Gal⁡(M/K)≅G/Gal⁡(L/M)\operatorname{Gal}(M/K) \cong G/\operatorname{Gal}(L/M).

Proof

Both maps reverse inclusions: a larger group fixes less, and a larger field is fixed by fewer automorphisms. (1) For a subgroup HH, Artin's theorem gives Gal⁡(L/LH)=H\operatorname{Gal}(L/L^H) = H. For an intermediate field MM: LL is the splitting field over KK of a separable ff, hence also over MM, so L/ML/M is Galois and LGal⁡(L/M)=ML^{\operatorname{Gal}(L/M)} = M by Theorem 9(d). (2) Theorem 9(c) for L/ML/M gives the first equation; the tower law and Lagrange's theorem give the second.

(3) (Sketch.) For σ∈G\sigma \in G, Gal⁡(L/σM)=σGal⁡(L/M)σ−1\operatorname{Gal}(L/\sigma M) = \sigma \operatorname{Gal}(L/M)\sigma^{-1}. If M/KM/K is normal, then σM=M\sigma M = M for all σ\sigma, since σ\sigma permutes the roots of minimal polynomials of elements of MM, which all lie in MM. So Gal⁡(L/M)\operatorname{Gal}(L/M) is normal. Restriction σ↦σ∣M\sigma \mapsto \sigma|_M is then a homomorphism G→Aut⁡(M/K)G \to \operatorname{Aut}(M/K) with kernel Gal⁡(L/M)\operatorname{Gal}(L/M). Its image has order [G:Gal⁡(L/M)]=[M:K][G : \operatorname{Gal}(L/M)] = [M : K], so M/KM/K is Galois and the first isomorphism theorem gives the isomorphism. Conversely, if Gal⁡(L/M)\operatorname{Gal}(L/M) is normal, then σM=M\sigma M = M for all σ\sigma, and restriction gives [M:K][M : K] automorphisms of M/KM/K, so M/KM/K is Galois by Theorem 9(c).

∎

Example— The splitting field of x³ − 2

L=Q(23,ω)L = \Q(\sqrt[3]2, \omega) has degree 66: [Q(23):Q]=3[\Q(\sqrt[3]2) : \Q] = 3, and ω∉R\omega \notin \R has degree 22 over Q(23)⊂R\Q(\sqrt[3]2) \subset \R. Since L/QL/\Q is Galois, ∣G∣=6|G| = 6. GG acts faithfully on the three roots, numbered 1=231 = \sqrt[3]2, 2=ω232 = \omega\sqrt[3]2, 3=ω2233 = \omega^2\sqrt[3]2, so G≅S3G \cong S_3 (complex conjugation is the transposition (2 3)(2\,3)). The six subgroups of S3S_3 match six intermediate fields:

subgroup of S3S_3its orderfixed fielddegree over Q\QGalois over Q\Q?
{e}\{e\}1LL6yes
⟨(2 3)⟩\langle (2\,3) \rangle (fixes 23\sqrt[3]2)2Q(23)\Q(\sqrt[3]2)3no
⟨(1 3)⟩\langle (1\,3) \rangle2Q(ω23)\Q(\omega\sqrt[3]2)3no
⟨(1 2)⟩\langle (1\,2) \rangle2Q(ω223)\Q(\omega^2\sqrt[3]2)3no
A3A_33Q(ω)\Q(\omega)2yes
S3S_36Q\Q1yes

The three cubic fields are not Galois over Q\Q, matching the three non-normal subgroups of order 22. Q(ω)=Q(−3)\Q(\omega) = \Q(\sqrt{-3}) is Galois, matching the normal subgroup A3A_3, and Gal⁡(Q(ω)/Q)≅S3/A3≅Z/2\operatorname{Gal}(\Q(\omega)/\Q) \cong S_3/A_3 \cong \Z/2.

Q(23,ω)\Q(\sqrt[3]{2}, \omega)
Q(23)\Q(\sqrt[3]{2})
Q(ω23)\Q(\omega\sqrt[3]{2})
Q(ω223)\Q(\omega^2\sqrt[3]{2})
Q(ω)\Q(\omega)
Q\Q
33
33
33
22
22
22
22
33
The intermediate fields of Q(23,ω)/Q\Q(\sqrt[3]{2}, \omega)/\Q, with the degree of each inclusion. Turned upside down, this is the lattice of subgroups of S3S_3.

Example— Finite fields and a biquadratic field

For Fpn/Fp\mathbb{F}_{p^n}/\mathbb{F}_p, G=⟨ϕ⟩≅Z/nG = \langle \phi \rangle \cong \Z/n, whose subgroups ⟨ϕd⟩\langle \phi^d \rangle (d∣nd \mid n) fix exactly Fpd\mathbb{F}_{p^d}. This is Theorem 6(5) seen through Galois theory. For Q(2,3)\Q(\sqrt2, \sqrt3), the group (Z/2)2(\Z/2)^2 has three subgroups of order 22, matching the three quadratic subfields Q(2)\Q(\sqrt2), Q(3)\Q(\sqrt3), Q(6)\Q(\sqrt6). All are Galois, because every subgroup of an abelian group is normal.

ProofH

Solvability by radicals

Definition— radical extension, solvable group

An extension L/KL/K is radical if there is a tower K=K0⊆K1⊆⋯⊆Kr=LK = K_0 \subseteq K_1 \subseteq \dots \subseteq K_r = L with Ki+1=Ki(αi)K_{i+1} = K_i(\alpha_i) and αini∈Ki\alpha_i^{n_i} \in K_i. A polynomial f∈K[x]f \in K[x] is solvable by radicals if its splitting field is contained in a radical extension of KK. A group GG is solvable if there is a chain {e}=G0⊴G1⊴⋯⊴Gs=G\{e\} = G_0 \trianglelefteq G_1 \trianglelefteq \dots \trianglelefteq G_s = G with each Gi+1/GiG_{i+1}/G_i abelian.

Theorem— Theorem 11 (Galois's criterion; proof outlined)

Let KK have characteristic 00 and f∈K[x]f \in K[x]. Then ff is solvable by radicals if and only if Gal⁡(f)\operatorname{Gal}(f) is a solvable group.

Outline of "solvable by radicals ⇒ solvable group". First adjoin enough roots of unity. This changes the Galois group only by passing to a subgroup and an abelian extension, and subgroups and quotients of solvable groups are solvable. Once KK contains the nn-th roots of unity, adjoining an nn-th root an\sqrt[n]{a} gives a Galois extension with abelian (indeed cyclic) group, since σ(an)=ζσan\sigma(\sqrt[n]a) = \zeta_\sigma\sqrt[n]a and σ↦ζσ\sigma \mapsto \zeta_\sigma is an injective homomorphism into the roots of unity. Making the radical tower Galois over KK and applying the fundamental theorem to it gives a chain of normal subgroups with abelian quotients, and the Galois group of ff is a quotient of the group of the tower. The converse uses Kummer theory: a cyclic extension of degree nn of a field containing the nn-th roots of unity is generated by an nn-th root. Full proofs: Stewart (2015), chapters 15–18; Dummit and Foote, §14.7. One direction is in Mathlib and is cited in the formal section.

Theorem— Proposition 12 (S₅ is not solvable)

For n≥5n \ge 5, SnS_n is not solvable.

Proof

We show that if N⊴H≤SnN \trianglelefteq H \le S_n with H/NH/N abelian and HH containing every 3-cycle, then NN contains every 3-cycle. Then no chain from SnS_n down to {e}\{e\} with abelian quotients can exist. Given a 3-cycle (a b c)(a\,b\,c), choose d,ed, e distinct from a,b,ca, b, c (possible as n≥5n \ge 5). Following each of the five points shows that (a b c)=xyx−1y−1(a\,b\,c) = x y x^{-1}y^{-1} with x=(a b d)x = (a\,b\,d) and y=(a c e)y = (a\,c\,e) (composing right to left). Since H/NH/N is abelian, every commutator of elements of HH lies in NN (Proposition 6 of quotients), so (a b c)∈N(a\,b\,c) \in N. Now in a chain Sn=Gs⊵Gs−1⊵⋯⊵G0S_n = G_s \trianglerighteq G_{s-1} \trianglerighteq \dots \trianglerighteq G_0 with abelian quotients, induction down the chain shows that every GiG_i contains all 3-cycles, so G0≠{e}G_0 \ne \{e\}.

∎

Example— A quintic not solvable by radicals

Let f=x5−4x+2f = x^5 - 4x + 2. It is irreducible by Eisenstein's criterion at 22. Since f′(x)=5x4−4f'(x) = 5x^4 - 4 vanishes only at ±(4/5)1/4≈±0.946\pm(4/5)^{1/4} \approx \pm 0.946, and f(−0.946)>0>f(0.946)f(-0.946) \gt 0 \gt f(0.946), ff has exactly three real roots and a pair of complex conjugate roots. The Galois group G≤S5G \le S_5 acts transitively on the five roots (irreducibility), so 5∣∣G∣5 \mid |G|, and by Cauchy's theorem GG contains a 5-cycle. Complex conjugation restricts to an element of GG that swaps the two non-real roots and fixes the three real ones: a transposition. A 5-cycle and a transposition generate S5S_5, so G=S5G = S_5. This is not solvable, so the roots of ff cannot be expressed by radicals. By contrast, x5−2x^5 - 2 is solvable by radicals: its roots ζ5k25\zeta_5^k\sqrt[5]2 are radicals, and its Galois group has order 2020 and is solvable.

The general quintic x5+a4x4+⋯+a0x^5 + a_4x^4 + \dots + a_0, with the aia_i independent indeterminates, has Galois group S5S_5 over Q(a0,…,a4)\Q(a_0, \dots, a_4). That is the Abel–Ruffini theorem: there is no formula in radicals for degree 55 or more. It does not say that a particular quintic has non-radical roots — that depends on its Galois group.

Formal mathematicsF

Fields and Galois theory in Lean and Mathlib

Mathlib represents an extension L/KL/K by [Field K] [Field L] [Algebra K L]. The degree is Module.finrank K L, and IntermediateField K L is the lattice of intermediate fields. K⟮α⟯ denotes K(α)K(\alpha), and minpoly K α is the minimal polynomial. Gal(L/K) is notation for L ≃ₐ[K] L, the automorphisms over KK, and IsGalois K L is "normal and separable". GaloisField p n is the splitting field of Xpn−XX^{p^n} - X over ZMod p.

The tower law, and the reason extensions can be treated as inclusions:

tower_lawLean 4Applies a library theoremFormally verified
/-- **Tower law**: for fields `F ⊆ K ⊆ L`, `[L : F] = [L : K] · [K : F]`. If `(kᵢ)` is a basis
of `K` over `F` and `(lⱼ)` a basis of `L` over `K`, the products `kᵢ lⱼ` form a basis of `L`
over `F`. This is Mathlib's `Module.finrank_mul_finrank`. -/
theorem tower_law (F K L : Type*) [Field F] [Field K] [Field L] [Algebra F K] [Algebra K L]
    [Algebra F L] [IsScalarTower F K L] :
    finrank F K * finrank K L = finrank F L :=
  Module.finrank_mul_finrank F K L
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor
field_hom_injectiveLean 4Proved here from basic factsFormally verified
/-- Every ring homomorphism from a field to a non-zero ring is injective. If `f x = 0` with
`x ≠ 0`, then `1 = f (x * x⁻¹) = f x * f x⁻¹ = 0`, impossible in a non-zero ring. So the kernel
is `0`, and `f a = f b` gives `f (a - b) = 0`, hence `a = b`. This is why a field extension
`K → L` can be viewed as an inclusion. -/
theorem field_hom_injective {K R : Type*} [Field K] [Ring R] [Nontrivial R] (f : K →+* R) :
    Function.Injective f := by
  have hker : ∀ x : K, f x = 0 → x = 0 := by
    intro x hx
    by_contra hx0
    apply one_ne_zero (α := R)
    calc (1 : R) = f (x * x⁻¹) := by rw [mul_inv_cancel₀ hx0, map_one]
      _ = 0 := by rw [map_mul, hx, zero_mul]
  intro a b hab
  have := hker (a - b) (by rw [map_sub, hab, sub_self])
  exact sub_eq_zero.mp this
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor
zmod_sq_not_fieldLean 4Proved here from basic factsFormally verified
/-- `ℤ/p²ℤ` is **not** the field with `p²` elements — it is not a field at all: the class of `p`
is non-zero but `p · p = p² = 0`. If `p` had an inverse `b`, then `p = b · p · p = 0`. -/
theorem zmod_sq_not_field (p : ℕ) [hp : Fact p.Prime] : ¬ IsField (ZMod (p ^ 2)) := by
  intro hF
  have hp1 : 1 < p := hp.out.one_lt
  have hpz : (p : ZMod (p ^ 2)) ≠ 0 := by
    rw [Ne, ZMod.natCast_eq_zero_iff]
    intro hd
    have := Nat.le_of_dvd (by omega) hd
    nlinarith
  obtain ⟨b, hb⟩ := hF.mul_inv_cancel hpz
  apply hpz
  calc (p : ZMod (p ^ 2)) = (p * b) * p := by rw [hb, one_mul]
    _ = b * ((p ^ 2 : ℕ) : ZMod (p ^ 2)) := by push_cast; ring
    _ = 0 := by rw [ZMod.natCast_self, mul_zero]
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor

Minimal polynomials and degrees. The irreducibility proofs use "a polynomial of degree 22 or 33 is irreducible iff it has no root" and the irrationality of 2\sqrt2 and 23\sqrt[3]2, rather than the rational root test of Theorem 3:

sqrt_two_irreducibleLean 4Proved here from basic factsFormally verified
/-- `X² − 2` is irreducible over `ℚ`: it has degree 2, so it could only factor with a linear
factor, i.e. a rational root `x` with `x² = 2` — but then `√2 = |x|` would be rational. -/
theorem sqrt_two_irreducible : Irreducible (X ^ 2 - C 2 : ℚ[X]) := by
  apply Polynomial.irreducible_of_degree_le_three_of_not_isRoot
  · have : (X ^ 2 - C 2 : ℚ[X]).natDegree = 2 := by compute_degree!
    rw [this]
    decide
  · intro x hx
    rw [IsRoot.def, eval_sub, eval_pow, eval_X, eval_C, sub_eq_zero] at hx
    apply irrational_sqrt_two
    refine ⟨|x|, ?_⟩
    have h : ((x : ℝ)) ^ 2 = 2 := by exact_mod_cast hx
    rw [Rat.cast_abs, ← Real.sqrt_sq_eq_abs, h]
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor
finrank_sqrt_twoLean 4Proved here from basic factsFormally verified
/-- `[ℚ(√2) : ℚ] = 2`. The minimal polynomial of `√2` over `ℚ` is `X² − 2` (monic, irreducible,
vanishing at `√2`), and the degree of a simple extension is the degree of the minimal polynomial
(Mathlib's `IntermediateField.adjoin.finrank`). -/
theorem finrank_sqrt_two : finrank ℚ ℚ⟮(Real.sqrt 2 : ℝ)⟯ = 2 := by
  have hroot : aeval (Real.sqrt 2 : ℝ) (X ^ 2 - C 2 : ℚ[X]) = 0 := by
    simp [Real.sq_sqrt (show (0 : ℝ) ≤ 2 by norm_num)]
  have hmonic : (X ^ 2 - C 2 : ℚ[X]).Monic := by monicity!
  have hmin : minpoly ℚ (Real.sqrt 2 : ℝ) = X ^ 2 - C 2 :=
    (minpoly.eq_of_irreducible_of_monic sqrt_two_irreducible hroot hmonic).symm
  have hint : IsIntegral ℚ (Real.sqrt 2 : ℝ) := ⟨_, hmonic, hroot⟩
  rw [IntermediateField.adjoin.finrank hint, hmin]
  compute_degree!
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor
cube_two_irreducibleLean 4Proved here from basic factsFormally verified
/-- `X³ − 2` is irreducible over `ℚ`. A cubic factors only with a linear factor, i.e. a rational
root `x` with `x³ = 2`. As a real number `x` would be a cube root of `2` lying strictly between
`1` and `2`, so not an integer, and a non-integer root of an integer is irrational
(Mathlib's `irrational_nrt_of_notint_nrt`) — contradicting `x ∈ ℚ`. -/
theorem cube_two_irreducible : Irreducible (X ^ 3 - C 2 : ℚ[X]) := by
  apply Polynomial.irreducible_of_degree_le_three_of_not_isRoot
  · have : (X ^ 3 - C 2 : ℚ[X]).natDegree = 3 := by compute_degree!
    rw [this]
    decide
  · intro x hx
    rw [IsRoot.def, eval_sub, eval_pow, eval_X, eval_C, sub_eq_zero] at hx
    have h : ((x : ℝ)) ^ 3 = ((2 : ℤ) : ℝ) := by exact_mod_cast hx
    have hnotint : ∀ y : ℤ, (x : ℝ) ≠ y := by
      intro y hy
      have hy3 : y ^ 3 = 2 := by
        have : ((y : ℝ)) ^ 3 = ((2 : ℤ) : ℝ) := by rw [← hy]; exact h
        exact_mod_cast this
      have h1 : y ≤ 1 ∨ 2 ≤ y := by omega
      rcases h1 with h1 | h1
      · have : y ^ 3 ≤ 1 := by
          rcases le_or_gt 0 y with h0 | h0
          · have : y = 0 ∨ y = 1 := by omega
            rcases this with rfl | rfl <;> norm_num
          · nlinarith [sq_nonneg y]
        omega
      · have : 8 ≤ y ^ 3 := by nlinarith [sq_nonneg y]
        omega
    exact irrational_nrt_of_notint_nrt 3 2 h (by rintro ⟨y, hy⟩; exact hnotint y hy)
      (by norm_num) ⟨x, rfl⟩
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor

The algebraic half of Wantzel's theorem for doubling the cube. Any extension of Q\Q of degree 2k2^k — in particular the field FnF_n in the proof of Theorem 4 — contains no cube root of 22:

no_cube_root_twoLean 4Proved here from basic factsFormally verified
/-- **Why the cube cannot be doubled (the algebraic half).** No field extension `L` of `ℚ` of
degree `2ᵏ` contains a cube root `α` of `2`: the minimal polynomial of `α` is `X³ − 2`, so
`[ℚ(α) : ℚ] = 3`, and by the tower law `3` divides `[L : ℚ] = 2ᵏ` — impossible. Points
constructible with straightedge and compass lie in such extensions (proved in the lesson, not
here), so `∛2` is not constructible. -/
theorem no_cube_root_two {L : Type*} [Field L] [Algebra ℚ L] [FiniteDimensional ℚ L] (k : ℕ)
    (hL : finrank ℚ L = 2 ^ k) (α : L) (hα : α ^ 3 = 2) : False := by
  have hroot : aeval α (X ^ 3 - C 2 : ℚ[X]) = 0 := by simp [hα]
  have hmonic : (X ^ 3 - C 2 : ℚ[X]).Monic := by monicity!
  have hmin : minpoly ℚ α = X ^ 3 - C 2 :=
    (minpoly.eq_of_irreducible_of_monic cube_two_irreducible hroot hmonic).symm
  have hint : IsIntegral ℚ α := ⟨_, hmonic, hroot⟩
  have hdeg : finrank ℚ ℚ⟮α⟯ = 3 := by
    rw [IntermediateField.adjoin.finrank hint, hmin]
    compute_degree!
  have hdvd : finrank ℚ ℚ⟮α⟯ ∣ finrank ℚ L := by
    rw [← tower_law ℚ ℚ⟮α⟯ L]
    exact dvd_mul_right _ _
  rw [hdeg, hL] at hdvd
  have := Nat.prime_three.dvd_of_dvd_pow hdvd
  omega
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor

Finite fields (Theorem 6), from Mathlib:

finite_field_cardLean 4Applies a library theoremFormally verified
/-- A finite field of characteristic `p` has `pⁿ` elements for some `n ≥ 1`: it is a vector
space of some dimension `n` over its prime field `𝔽_p`. Mathlib's `FiniteField.card`. -/
theorem finite_field_card (K : Type*) [Field K] [Fintype K] (p : ℕ) [CharP K p] :
    ∃ n : ℕ+, Nat.Prime p ∧ Fintype.card K = p ^ (n : ℕ) :=
  FiniteField.card K p
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor
frobenius_addLean 4Applies a library theoremFormally verified
/-- In characteristic `p`, `(a + b)ᵖ = aᵖ + bᵖ`: the binomial coefficients `C(p, k)` with
`0 < k < p` are divisible by `p`. So `x ↦ xᵖ` (Frobenius) is a ring homomorphism.
Mathlib's `add_pow_char`. -/
theorem frobenius_add {K : Type*} [CommRing K] (p : ℕ) [Fact p.Prime] [CharP K p] (a b : K) :
    (a + b) ^ p = a ^ p + b ^ p :=
  add_pow_char a b p
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor
galois_field_cardLean 4Applies a library theoremFormally verified
/-- **Existence**: for every prime `p` and `n ≥ 1` there is a field with `pⁿ` elements — the
splitting field of `X^(pⁿ) − X` over `𝔽_p`, whose roots are exactly its elements. Mathlib calls
it `GaloisField p n` and proves `GaloisField.card`. -/
theorem galois_field_card (p : ℕ) [Fact p.Prime] (n : ℕ) (h : n ≠ 0) :
    Nat.card (GaloisField p n) = p ^ n :=
  GaloisField.card p n h
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor
finite_field_uniqueLean 4Applies a library theoremFormally verified
/-- **Uniqueness**: two finite fields with the same number of elements are isomorphic (both are
splitting fields of `X^q − X` over `𝔽_p`). Mathlib's `FiniteField.algEquivOfCardEq`. -/
theorem finite_field_unique (p : ℕ) [Fact p.Prime] (K K' : Type*) [Field K] [Field K']
    [Fintype K] [Fintype K'] [Algebra (ZMod p) K] [Algebra (ZMod p) K']
    (h : Fintype.card K = Fintype.card K') : Nonempty (K ≃ₐ[ZMod p] K') :=
  ⟨FiniteField.algEquivOfCardEq p h⟩
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor
units_cyclicLean 4Applies a library theoremFormally verified
/-- The multiplicative group of a finite field is cyclic. (More generally, any finite subgroup of
the units of an integral domain is cyclic: Mathlib's `isCyclic_of_subgroup_isDomain`.) -/
theorem units_cyclic (K : Type*) [Field K] [Finite K] : IsCyclic Kˣ :=
  inferInstance
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor

The Galois correspondence. The order-reversing property and the Galois connection, and the inequality of Theorem 7 (via Mathlib's form of Dedekind's lemma), are proved here. Artin's theorem, Theorem 9(c) and the fundamental theorem are cited:

fixed_field_antitoneLean 4Proved here from basic factsFormally verified
/-- Bigger subgroups fix smaller fields: if `H₁ ≤ H₂` then `E^{H₂} ⊆ E^{H₁}`, since an element
fixed by every automorphism in `H₂` is fixed by those in `H₁`. -/
theorem fixed_field_antitone {F E : Type*} [Field F] [Field E] [Algebra F E]
    {H₁ H₂ : Subgroup Gal(E/F)} (h : H₁ ≤ H₂) : fixedField H₂ ≤ fixedField H₁ := by
  intro x hx
  rw [mem_fixedField_iff] at hx ⊢
  exact fun σ hσ => hx σ (h hσ)
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor
fixing_subgroup_antitoneLean 4Proved here from basic factsFormally verified
/-- Bigger fields are fixed by smaller groups: if `K₁ ⊆ K₂` then `Gal(E/K₂) ≤ Gal(E/K₁)`. -/
theorem fixing_subgroup_antitone {F E : Type*} [Field F] [Field E] [Algebra F E]
    {K₁ K₂ : IntermediateField F E} (h : K₁ ≤ K₂) : K₂.fixingSubgroup ≤ K₁.fixingSubgroup := by
  intro σ hσ
  rw [IntermediateField.mem_fixingSubgroup_iff] at hσ ⊢
  exact fun x hx => hσ x (h hx)
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor
galois_connectionLean 4Proved here from basic factsFormally verified
/-- The two maps form a **Galois connection**: `K ⊆ E^H` if and only if `H ≤ Gal(E/K)` — both say
"every element of `H` fixes every element of `K`". -/
theorem galois_connection {F E : Type*} [Field F] [Field E] [Algebra F E]
    (K : IntermediateField F E) (H : Subgroup Gal(E/F)) :
    K ≤ fixedField H ↔ H ≤ K.fixingSubgroup := by
  constructor
  · intro hK σ hσ
    rw [IntermediateField.mem_fixingSubgroup_iff]
    exact fun x hx => (mem_fixedField_iff H x).mp (hK hx) σ hσ
  · intro hH x hx
    rw [mem_fixedField_iff]
    exact fun σ hσ => (IntermediateField.mem_fixingSubgroup_iff K σ).mp (hH hσ) x hx
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor
card_aut_le_finrankLean 4Proved here from basic factsFormally verified
/-- `|Aut(E/F)| ≤ [E : F]` for a finite extension. Each automorphism is in particular an
`F`-algebra map `E → E`, and by Dedekind's independence of characters there are at most
`[E : F]` of those (Mathlib's `card_algHom_le_finrank`). -/
theorem card_aut_le_finrank (F E : Type*) [Field F] [Field E] [Algebra F E]
    [FiniteDimensional F E] : Nat.card Gal(E/F) ≤ finrank F E := by
  have hinj : Function.Injective (fun σ : Gal(E/F) => (σ : E →ₐ[F] E)) :=
    fun σ τ h => AlgEquiv.coe_toAlgHom_injective h
  have : Finite (E →ₐ[F] E) := inferInstance
  exact (Nat.card_le_card_of_injective _ hinj).trans (card_algHom_le_finrank F E E)
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor
artinLean 4Applies a library theoremFormally verified
/-- **Artin's theorem**: for a finite group `H` of automorphisms of `E`, `[E : E^H] = |H|`.
Mathlib's `IntermediateField.finrank_fixedField_eq_card`. -/
theorem artin {F E : Type*} [Field F] [Field E] [Algebra F E] [FiniteDimensional F E]
    (H : Subgroup Gal(E/F)) : finrank (fixedField H) E = Nat.card H :=
  finrank_fixedField_eq_card H
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor
card_galLean 4Applies a library theoremFormally verified
/-- For a finite Galois extension, `|Gal(E/F)| = [E : F]`. Mathlib's `IsGalois.card_aut_eq_finrank`. -/
theorem card_gal (F E : Type*) [Field F] [Field E] [Algebra F E] [FiniteDimensional F E]
    [IsGalois F E] : Nat.card Gal(E/F) = finrank F E :=
  IsGalois.card_aut_eq_finrank F E
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor
fundamental_theoremLean 4Applies a library theoremFormally verified
/-- **Fundamental theorem of Galois theory**: for a finite Galois extension `E/F`, `K ↦ Gal(E/K)`
is an inclusion-*reversing* bijection from intermediate fields to subgroups of `Gal(E/F)` (an
order isomorphism onto the order dual), with inverse `H ↦ E^H`.
Mathlib's `IsGalois.intermediateFieldEquivSubgroup`. -/
theorem fundamental_theorem (F E : Type*) [Field F] [Field E] [Algebra F E]
    [FiniteDimensional F E] [IsGalois F E] :
    Nonempty (IntermediateField F E ≃o (Subgroup Gal(E/F))ᵒᵈ) :=
  ⟨IsGalois.intermediateFieldEquivSubgroup⟩
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor

Solvability by radicals: the direction of Theorem 11 that matters for Abel–Ruffini, and Proposition 12 for n=5n = 5:

solvable_of_radical_rootLean 4Applies a library theoremFormally verified
/-- **Abel–Ruffini, the Galois-theoretic direction**: if an irreducible polynomial `q` over `F`
has a root expressible by radicals, then its Galois group is solvable. Mathlib's
`isSolvable_gal_of_irreducible` (in characteristic zero, which the class `solvableByRad`
handles through its definition). -/
theorem solvable_of_radical_root {F E : Type*} [Field F] [Field E] [Algebra F E] {x : E}
    (hx : x ∈ solvableByRad F E) {q : F[X]} (hq : Irreducible q) (hroot : aeval x q = 0) :
    Group.IsSolvable q.Gal :=
  isSolvable_gal_of_irreducible hx hq hroot
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor
s5_not_solvableLean 4Applies a library theoremFormally verified
/-- `S₅` is not solvable: its commutator subgroup `A₅` is its own commutator subgroup, so the
derived series never reaches `1`. Mathlib's `Equiv.Perm.not_isSolvable_fin_5`. -/
theorem s5_not_solvable : ¬ Group.IsSolvable (Equiv.Perm (Fin 5)) :=
  Equiv.Perm.not_isSolvable_fin_5
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/FieldsGalois.leanTry it in the Lean web editor

What is and is not formalised. Proved independently here: injectivity of field homomorphisms, Z/p2Z\Z/p^2\Z is not a field, the irreducibility of x2−2x^2 - 2 and x3−2x^3 - 2 over Q\Q, [Q(2):Q]=2[\Q(\sqrt2) : \Q] = 2, the impossibility of a cube root of 22 in a 22-power extension, the antitone maps and Galois connection, and ∣Aut⁡(L/K)∣≤[L:K]|\operatorname{Aut}(L/K)| \le [L : K]. Cited from Mathlib: the tower law, Theorem 6(1–4), Artin's theorem, ∣Gal⁡∣=[L:K]|\operatorname{Gal}| = [L : K], the fundamental theorem, one direction of Theorem 11 and the non-solvability of S5S_5. Not formalised: the geometric half of Theorem 4 (Mathlib has no notion of straightedge-and-compass constructibility), the trisection and heptagon cases, Theorem 10(3), and the computation that x5−4x+2x^5 - 4x + 2 has Galois group S5S_5. Mathlib's Polynomial.Gal.galActionHom_bijective_of_prime_degree' contains the essential step, and combining it with the results above into a Lean proof that this polynomial is not solvable by radicals would be a good project.

ComputationC

Counting irreducibles and watching Frobenius

The first program sieves out the reducible monic polynomials over F2\mathbb{F}_2, F3\mathbb{F}_3 and F5\mathbb{F}_5, counts the irreducible ones, and compares with Gauss's formula and with the identity pn=∑d∣nd Np(d)p^n = \sum_{d \mid n} d\,N_p(d).

How many irreducible polynomials? Sieve versus GaussPythonExact computationExhaustive finite checkComputationally tested
"""Counting irreducible polynomials over F_p: brute force against Gauss's formula.

Every element of the field with p^n elements is a root of X^(p^n) - X, and
that polynomial is the product of all monic irreducible polynomials over F_p
whose degree divides n. Comparing degrees gives p^n = sum over d | n of
d * N(d), where N(d) is the number of monic irreducibles of degree d, and
Mobius inversion gives Gauss's formula N(n) = (1/n) sum_{d | n} mu(d) p^(n/d).
The program sieves out reducible polynomials by multiplying all pairs of lower
degree, counts what is left, and compares with the formula. Exact and
exhaustive for the (p, n) shown.
"""

from itertools import product

def poly_mul(a, b, p):
    """Product of coefficient tuples (lowest degree first) over F_p."""
    out = [0] * (len(a) + len(b) - 1)
    for i, x in enumerate(a):
        if x:
            for j, y in enumerate(b):
                out[i + j] = (out[i + j] + x * y) % p
    return tuple(out)

def monic(p, d):
    """All monic polynomials of degree d over F_p."""
    return [tuple(c) + (1,) for c in product(range(p), repeat=d)]

def irreducibles(p, n):
    """Monic irreducible polynomials of degree n, by sieving out products."""
    reducible = set()
    for d in range(1, n // 2 + 1):
        for f in monic(p, d):
            for g in monic(p, n - d):
                reducible.add(poly_mul(f, g, p))
    return [f for f in monic(p, n) if f not in reducible]

def mobius(n):
    """The Mobius function by trial division."""
    result, m, q = 1, n, 2
    while q * q <= m:
        if m % q == 0:
            m //= q
            if m % q == 0:
                return 0
            result = -result
        q += 1
    return -result if m > 1 else result

def gauss_count(p, n):
    """(1/n) * sum over d | n of mu(d) p^(n/d)."""
    total = sum(mobius(d) * p ** (n // d) for d in range(1, n + 1) if n % d == 0)
    return total // n

def show(f):
    """Monic polynomial as text, highest degree first, e.g. x^3+x+1."""
    terms = []
    for k in range(len(f) - 1, -1, -1):
        c = f[k]
        if c:
            mono = "" if k == 0 else ("x" if k == 1 else f"x^{k}")
            terms.append((str(c) if c != 1 or k == 0 else "") + mono)
    return "+".join(terms)

def main():
    print(" p  n  irreducibles (sieve)  Gauss's formula  sum d*N(d) = p^n")
    ok = True
    for p, top in ((2, 8), (3, 5), (5, 3)):
        counts = {}
        for n in range(1, top + 1):
            counts[n] = len(irreducibles(p, n))
            formula = gauss_count(p, n)
            degree_sum = sum(d * counts[d] for d in counts if n % d == 0)
            ok &= counts[n] == formula and degree_sum == p ** n
            print(f"{p:>2} {n:>2}  {counts[n]:>20}  {formula:>15}  "
                  f"{degree_sum:>6} = {p ** n}")
    print(f"All counts agree: {ok}")
    print("The irreducible cubics over F_2:",
          ", ".join(show(f) for f in irreducibles(2, 3)))
    print("Irreducible quadratics over F_3:",
          ", ".join(show(f) for f in irreducibles(3, 2)))
    print()
    print("Epistemic status: exact, exhaustive counts for these p and n. The")
    print("formula holds for every prime power, as proved in the lesson from")
    print("the factorisation of X^(p^n) - X; the table is a check, not a proof.")

if __name__ == "__main__":
    main()
Runs entirely in your browser, in an isolated worker. Nothing is sent to a server.

The counts are exact and exhaustive, and the formula is a theorem; the table is a consistency check. Notice N2(n)≈2n/nN_2(n) \approx 2^n/n: roughly one polynomial in nn is irreducible, a "prime number theorem" for polynomials over finite fields.

The second program connects the two halves of the lesson. Reducing an integer polynomial modulo a prime pp (not dividing its discriminant) gives a Frobenius element in its Galois group, and the degrees of the irreducible factors mod pp are the cycle lengths of that element acting on the roots. The program factors four polynomials modulo all suitable primes below 20002000 and compares the frequencies of each factorisation pattern with the proportion of group elements of that cycle type.

Galois groups seen through factorisation modulo primesPythonExact computationStatistical evidenceComputationally tested
"""Seeing a Galois group by factoring modulo primes (Chebotarev statistics).

For a monic integer polynomial f of degree n and a prime p not dividing its
discriminant, f factors modulo p into irreducibles whose degrees form the cycle
type of a Frobenius element of Gal(f), acting on the n roots. Chebotarev's
density theorem says each cycle type occurs for a proportion of primes equal to
the proportion of Galois-group elements with that cycle type. The program
factors x^2 - 2, x^3 - 2, x^4 + 1 and x^5 - 4x + 2 modulo every suitable prime
below 2000 (distinct-degree factorisation) and compares the frequencies with
the predictions for the groups Z/2, S3, Z/2 x Z/2 and S5.
"""

from collections import Counter
from fractions import Fraction

def trim(a):
    """Drop leading zero coefficients (lists are lowest degree first)."""
    a = list(a)
    while a and a[-1] == 0:
        a.pop()
    return a

def pmod(a, m, p):
    """Remainder of a modulo m over F_p (m non-zero)."""
    a, m = trim(a), trim(m)
    inv = pow(m[-1], p - 2, p)
    while len(a) >= len(m):
        c = a[-1] * inv % p
        shift = len(a) - len(m)
        for i, x in enumerate(m):
            a[shift + i] = (a[shift + i] - c * x) % p
        a = trim(a)
    return a

def pmulmod(a, b, m, p):
    """a * b modulo m over F_p."""
    out = [0] * (len(a) + len(b) - 1) if a and b else []
    for i, x in enumerate(a):
        if x:
            for j, y in enumerate(b):
                out[i + j] = (out[i + j] + x * y) % p
    return pmod(out, m, p)

def ppowmod(base, e, m, p):
    """base^e modulo m over F_p, by repeated squaring."""
    result, base = [1], pmod(base, m, p)
    while e:
        if e & 1:
            result = pmulmod(result, base, m, p)
        base = pmulmod(base, base, m, p)
        e >>= 1
    return result

def pgcd(a, b, p):
    """Monic gcd over F_p."""
    a, b = trim(a), trim(b)
    while b:
        a, b = b, pmod(a, b, p)
    if not a:
        return a
    inv = pow(a[-1], p - 2, p)
    return [x * inv % p for x in a]

def derivative(f):
    """Formal derivative of an integer polynomial."""
    return [k * c for k, c in enumerate(f)][1:]

def factor_degrees(f, p):
    """Degrees of the irreducible factors of f mod p (f squarefree mod p),
    by distinct-degree factorisation."""
    g = [c % p for c in f]
    degrees, k, xpk = [], 0, [0, 1]
    while len(trim(g)) - 1 >= 2 * (k + 1):
        k += 1
        xpk = ppowmod(xpk, p, g, p)            # x^(p^k) mod g
        diff = trim([(c - (1 if i == 1 else 0)) % p
                     for i, c in enumerate(xpk + [0] * (2 - len(xpk)))])
        h = pgcd(g, diff, p)
        if len(h) > 1:
            degrees += [k] * ((len(h) - 1) // k)
            g = pdiv(g, h, p)
    if len(trim(g)) > 1:
        degrees.append(len(trim(g)) - 1)
    return tuple(sorted(degrees))

def pdiv(a, b, p):
    """Exact quotient a / b over F_p."""
    a, b = trim(a), trim(b)
    q = [0] * (len(a) - len(b) + 1)
    inv = pow(b[-1], p - 2, p)
    while len(a) >= len(b) and a:
        c = a[-1] * inv % p
        shift = len(a) - len(b)
        q[shift] = c
        for i, x in enumerate(b):
            a[shift + i] = (a[shift + i] - c * x) % p
        a = trim(a)
    return q

def primes_below(n):
    """Sieve of Eratosthenes."""
    sieve = [True] * n
    sieve[0:2] = [False, False]
    for i in range(2, int(n ** 0.5) + 1):
        if sieve[i]:
            sieve[i * i::i] = [False] * len(sieve[i * i::i])
    return [i for i, s in enumerate(sieve) if s]

def is_squarefree_mod(f, p):
    """f mod p has no repeated factor (so p does not divide the discriminant)."""
    return len(pgcd([c % p for c in f], [c % p for c in derivative(f)], p)) == 1

#: polynomial (lowest degree first), Galois group, predicted cycle-type shares
EXAMPLES = [
    ("x^2-2", [-2, 0, 1], "Z/2", {(1, 1): Fraction(1, 2), (2,): Fraction(1, 2)}),
    ("x^3-2", [-2, 0, 0, 1], "S3",
     {(1, 1, 1): Fraction(1, 6), (1, 2): Fraction(1, 2), (3,): Fraction(1, 3)}),
    ("x^4+1", [1, 0, 0, 0, 1], "Z/2 x Z/2",
     {(1, 1, 1, 1): Fraction(1, 4), (2, 2): Fraction(3, 4)}),
    ("x^5-4x+2", [2, -4, 0, 0, 0, 1], "S5",
     {(1, 1, 1, 1, 1): Fraction(1, 120), (1, 1, 1, 2): Fraction(10, 120),
      (1, 2, 2): Fraction(15, 120), (1, 1, 3): Fraction(20, 120),
      (2, 3): Fraction(20, 120), (1, 4): Fraction(30, 120),
      (5,): Fraction(24, 120)}),
]

def tally(f, bound):
    """Counter of factorisation patterns over primes below bound."""
    return Counter(factor_degrees(f, p) for p in primes_below(bound)
                   if is_squarefree_mod(f, p))

def main():
    bound = 2000
    for name, f, group, predicted in EXAMPLES:
        counts = tally(f, bound)
        total = sum(counts.values())
        print(f"{name}  (Galois group {group}), {total} primes below {bound}")
        parts = []
        for pattern in sorted(predicted, key=lambda t: (len(t), t), reverse=True):
            seen = counts.get(pattern, 0) / total
            parts.append(f"{'+'.join(map(str, pattern))}: "
                         f"{seen:.3f}/{float(predicted[pattern]):.3f}")
        for i in range(0, len(parts), 3):
            print("   " + "   ".join(parts[i:i + 3]))
        unexpected = set(counts) - set(predicted)
        print(f"   patterns outside the prediction: {sorted(unexpected) or 'none'}")
    print("(each entry: degrees of the factors mod p: observed/predicted share)")
    print()
    print("Epistemic status: every factorisation is exact. The match between")
    print("frequencies and group proportions is statistical evidence for these")
    print("Galois groups; Chebotarev's theorem (1922) guarantees the limits, but")
    print("finitely many primes can never prove what the Galois group is.")

if __name__ == "__main__":
    main()
Runs entirely in your browser, in an isolated worker. Nothing is sent to a server.

Each factorisation is exact; the agreement of frequencies is statistical evidence, guaranteed in the limit by the Chebotarev density theorem (conjectured by Frobenius, proved by Nikolai Chebotarev in 1922). Two things stand out. x4+1x^4 + 1 is irreducible over Q\Q but never irreducible modulo a prime, because its Galois group (Z/2)2(\Z/2)^2 contains no 4-cycle. And for x5−4x+2x^5 - 4x + 2 all seven cycle types of S5S_5 appear, including 5-cycles and transpositions, which is consistent with G=S5G = S_5. Statistics alone can never prove what a Galois group is, but they are how computer algebra systems first guess it.

Explore

Explore: roots of unity

The nn-th roots of unity form a regular nn-gon, and the cyclotomic field Q(ζn)\Q(\zeta_n) is generated by them. Its Galois group permutes them by ζ↦ζa\zeta \mapsto \zeta^a for aa coprime to nn. Change nn and count the primitive roots, the ones that are not roots of unity of smaller order: there are φ(n)\varphi(n) of them, and that is [Q(ζn):Q][\Q(\zeta_n) : \Q]. For n=5n = 5, the real part cos⁡72∘=5−14\cos 72^\circ = \frac{\sqrt5 - 1}{4} lies in a quadratic field, so the pentagon is constructible. For n=7n = 7, cos⁡(2π/7)\cos(2\pi/7) has degree 33, and the heptagon is not.

Roots of unity and cyclotomic fields

The 7th roots of unity: their real parts generate a cubic field, which is why the regular heptagon cannot be constructed.

Try
51.4°w₀w₁w₂w₃w₄w₅w₆c

Drag the points, or focus one with Tab and use the arrow keys (hold Shift for small steps).

c =+i

Solutions of wⁿ = c for n = 7:

  • w₀ = 1
  • w₁ = 0.623 + 0.782i
  • w₂ = −0.223 + 0.975i
  • w₃ = −0.901 + 0.434i
  • w₄ = −0.901 − 0.434i
  • w₅ = −0.223 − 0.975i
  • w₆ = 0.623 − 0.782i

All roots lie on the circle of radius |c|^(1/n) ≈ 1.

Neighbouring roots are 51.43° apart: 360° ÷ 7.

w₀ is the principal root, at the angle (arg c)/n; the others follow by equal turns.

Because c = 1, these are the roots of unity of order 7.

The roots add up to 0, so the regular polygon is balanced around the origin.

Exercises

Exercises

1. Fields and Galois theory

Warm-upHuman

What is the degree [Q(2,3):Q][\Q(\sqrt2, \sqrt3) : \Q]?

2. Fields and Galois theory

CoreHuman

What is the minimal polynomial of α=2+3\alpha = \sqrt2 + \sqrt3 over Q\Q?

Choose one

3. Fields and Galois theory

CoreHuman

Starting from the points 00 and 11, which of these real numbers can be constructed with straightedge and compass? (Select all that apply.)

Choose all that apply

4. Fields and Galois theory

CoreHuman

Gal⁡(Q(2,3)/Q)={1,σ,τ,στ}\operatorname{Gal}(\Q(\sqrt2, \sqrt3)/\Q) = \{1, \sigma, \tau, \sigma\tau\}, where σ\sigma sends 2↦−2\sqrt2 \mapsto -\sqrt2 and fixes 3\sqrt3, and τ\tau fixes 2\sqrt2 and sends 3↦−3\sqrt3 \mapsto -\sqrt3. Which field is the fixed field of the subgroup {1,στ}\{1, \sigma\tau\}?

Choose one

5. Fields and Galois theory

CoreHuman

How many subfields does the field F212\mathbb{F}_{2^{12}} (with 40964096 elements) have, including F2\mathbb{F}_2 and itself?

6. Fields and Galois theory

StretchHuman

Let LL be the splitting field of x4−2x^4 - 2 over Q\Q. What is the order of Gal⁡(L/Q)\operatorname{Gal}(L/\Q)?

7. Fields and Galois theory

CoreHuman

Which statement correctly describes the Abel–Ruffini theorem and its Galois-theoretic refinement?

Choose one

8. Fields and Galois theory

Warm-upHuman

Which statement about rings with four elements is correct?

Choose one

9. Fields and Galois theory

CoreFormal

For fields F, K, L with [Algebra F K] [Algebra K L] [Algebra F L] [IsScalarTower F K L], which Lean statement is the tower law?

Choose one

10. Fields and Galois theory

StretchComputational

Write count_irreducible(p, n) returning the number of monic irreducible polynomials of degree nn over Fp\mathbb{F}_p, using Gauss's formula N(n)=1n∑d∣nμ(d) pn/dN(n) = \frac1n \sum_{d \mid n} \mu(d)\, p^{n/d}. You will need the Möbius function μ\mu: μ(d)=0\mu(d) = 0 if dd has a square factor, otherwise (−1)k(-1)^{k} where kk is the number of prime factors of dd.

Runs entirely in your browser, in an isolated worker. Nothing is sent to a server.
Common misconceptionsH

Common misconceptions

Misconception

"Abel–Ruffini says no quintic can be solved by radicals." It says there is no general formula. Particular quintics can be solvable: x5−2x^5 - 2 has root 25\sqrt[5]2, and x5−5x+12x^5 - 5x + 12 has a solvable Galois group of order 1010. Galois's criterion decides each polynomial individually: solvable by radicals iff the Galois group is solvable.

Misconception

"Z/p2Z\Z/p^2\Z is the field with p2p^2 elements." Z/p2Z\Z/p^2\Z has the nilpotent element pp (p⋅p=0p \cdot p = 0), so it is not even a domain. The field Fp2\mathbb{F}_{p^2} has characteristic pp and is Fp[x]/(f)\mathbb{F}_p[x]/(f) for an irreducible quadratic ff — for example F9=F3[i]\mathbb{F}_9 = \mathbb{F}_3[i].

Misconception

"The Galois group of a polynomial of degree nn is SnS_n." It is a subgroup of SnS_n, often much smaller. x4−10x2+1x^4 - 10x^2 + 1 has Galois group (Z/2)2(\Z/2)^2 of order 44, not 2424; Φp\Phi_p has the cyclic group (Z/p)×(\Z/p)^\times. "Generic" polynomials have group SnS_n, but special ones are the interesting ones.

Misconception

"Every finite extension is Galois." Q(23)/Q\Q(\sqrt[3]2)/\Q has degree 33 but only the identity automorphism, because the other two roots of x3−2x^3 - 2 are not real. Galois extensions are exactly those with as many automorphisms as their degree.

Misconception

"Degrees of composite extensions multiply." [Q(α,β):Q]≤[Q(α):Q][Q(β):Q][\Q(\alpha, \beta) : \Q] \le [\Q(\alpha) : \Q][\Q(\beta) : \Q], with equality only in good cases (for example coprime degrees). Q(2,8)=Q(2)\Q(\sqrt2, \sqrt8) = \Q(\sqrt 2) has degree 22, not 44, and Q(23,ω23)\Q(\sqrt[3]2, \omega\sqrt[3]2) has degree 66, not 99.

Misconception

"Galois theory proves that the circle cannot be squared." The tower-law argument shows that constructible numbers are algebraic of degree a power of 22. To rule out π\sqrt\pi one needs Lindemann's theorem that π\pi is transcendental, proved by analysis (1882), not by Galois theory.

ViewpointsH

Many ways of seeing

Topology— Galois theory is covering space theory

For a connected, locally path-connected space BB, connected coverings E→BE \to B correspond to subgroups of π1(B)\pi_1(B), normal subgroups give regular (Galois) coverings, and the deck group of a regular covering is π1(B)/π1(E)\pi_1(B)/\pi_1(E) (see the fundamental group). This is the same correspondence, and the analogy can be made exact. Let B=C∖{branch points}B = \C \setminus \{\text{branch points}\}, and consider the field C(t)\C(t) with a polynomial f(t,x)f(t, x). Its roots x1(t),…,xn(t)x_1(t), \dots, x_n(t) form a covering of BB, and the Galois group of ff over C(t)\C(t) equals the monodromy group: the permutations of the roots obtained by following them around loops in BB. For x3−tx^3 - t, a loop around t=0t = 0 cycles the three cube roots. Grothendieck unified both pictures in the étale fundamental group. For a field KK it is the absolute Galois group Gal⁡(K‾/K)\operatorname{Gal}(\overline K/K), a profinite group with the Krull topology, in which the infinite Galois correspondence matches closed subgroups with intermediate fields.

Geometry— Symmetry of roots and of figures

The Galois group of x4−2x^4 - 2 is the dihedral group D4D_4, acting on the four roots ±24,±i24\pm\sqrt[4]2, \pm i\sqrt[4]2 exactly as the symmetries of the square they form in C\C. This is a coincidence of the example, not a general rule: the Galois group need not preserve the geometry of the roots. Constructions with straightedge and compass are the geometric shadow of towers of quadratic extensions (Theorem 4). Felix Klein's Lectures on the Icosahedron (1884) connected the quintic to the rotation group of the icosahedron, which is A5A_5: the general quintic can be reduced to an equation whose Galois group is that symmetry group, and solved with elliptic modular functions (Hermite, Kronecker, 1858). Galois theory and geometry meet again in algebraic geometry, where function fields of curves are finite extensions of C(t)\C(t).

Number theory— Frobenius elements, Chebotarev and Kronecker–Weber

For a Galois extension L/QL/\Q and a prime pp not dividing its discriminant, the Frobenius automorphism of the finite residue fields lifts to a well-defined conjugacy class Frob⁡p⊆Gal⁡(L/Q)\operatorname{Frob}_p \subseteq \operatorname{Gal}(L/\Q). The Chebotarev density theorem says every conjugacy class CC occurs for a proportion ∣C∣/∣G∣|C|/|G| of primes, which the second experiment illustrates. For abelian extensions everything is explicit. The Kronecker–Weber theorem says every abelian extension of Q\Q lies in a cyclotomic field Q(ζn)\Q(\zeta_n), and there Frob⁡p\operatorname{Frob}_p is ζ↦ζp\zeta \mapsto \zeta^p. Quadratic reciprocity follows: Q(±q)⊂Q(ζq)\Q(\sqrt{\pm q}) \subset \Q(\zeta_q) (see number theory). Describing non-abelian Galois groups of Q\Q through Frobenius elements is one of the aims of the Langlands programme. The inverse Galois problem — is every finite group a Galois group over Q\Q? — remains open. It is known for all solvable groups (Igor Shafarevich, 1954) and for many simple ones.

Category theory— A Galois connection is an adjunction

Order intermediate fields by inclusion and subgroups by reverse inclusion. Then M↦Gal⁡(L/M)M \mapsto \operatorname{Gal}(L/M) and H↦LHH \mapsto L^H satisfy M⊆LH  ⟺  H⊆Gal⁡(L/M)M \subseteq L^H \iff H \subseteq \operatorname{Gal}(L/M), which is proved in Lean above. This makes them a Galois connection, which is an adjunction between posets regarded as categories (adjunctions). Every Galois connection restricts to a bijection between its "closed" elements; the fundamental theorem says that for a Galois extension every element is closed. Grothendieck's reformulation is an equivalence of categories: for a field KK, finite étale KK-algebras (finite products of finite separable extensions) correspond contravariantly to finite sets with a continuous action of Gal⁡(Ksep/K)\operatorname{Gal}(K^{\mathrm{sep}}/K). Fields correspond to transitive actions, and subgroups appear as stabilisers.

Computation— Computing Galois groups

Galois groups can be computed. Factoring modulo many primes (the second experiment) reveals which cycle types occur, which often pins the group down. Resolvent polynomials and Stauduhar's method (1973) then certify the answer with exact arithmetic. Computer algebra systems compute Galois groups of polynomials of moderate degree routinely. Finite fields are the engine of modern computation. Reed–Solomon codes on CDs, QR codes and spacecraft links compute in F28\mathbb{F}_{2^8}, and the AES cipher is built on F28=F2[x]/(x8+x4+x3+x+1)\mathbb{F}_{2^8} = \mathbb{F}_2[x]/(x^8 + x^4 + x^3 + x + 1). Factoring polynomials over Fp\mathbb{F}_p (Berlekamp, 1967; Cantor–Zassenhaus, 1981) is fast. The experiment's distinct-degree factorisation is the first step of these algorithms.

Wonder Trails

Wonder Trails

History & global context

History and global context

  • Solving equations. Old Babylonian tablets (c. 1800 BCE) solve quadratic problems. Al-Khwārizmī's al-Jabr (c. 820) classified and solved quadratics. ʿUmar al-Khayyām (c. 1070) solved cubics geometrically by intersecting conics, and Sharaf al-Dīn al-Ṭūsī (12th century) analysed the number of positive roots. In Italy, del Ferro and Tartaglia found the cubic formula, Cardano published it in Ars Magna (1545) together with Ferrari's solution of the quartic, and Rafael Bombelli (1572) showed how complex numbers make the formula work even when all roots are real.
  • Towards Galois. Joseph-Louis Lagrange (1770–71) explained the known formulas by permutations of roots and resolvents. Gauss (1796, 1801) solved the cyclotomic equations by radicals and found the 17-gon. Ruffini (1799) and Abel (1824) proved the unsolvability of the general quintic. Évariste Galois (1830–32) gave the criterion in terms of groups. His memoir was rejected by the Paris Academy, he died after a duel in 1832, and Joseph Liouville published his work in 1846.
  • Constructions. Pierre Wantzel (1837) proved the impossibility of doubling the cube and trisecting the angle, and characterised constructible regular polygons. Ferdinand von Lindemann (1882) proved π\pi transcendental, settling the squaring of the circle.
  • The modern theory. Camille Jordan's Traité des substitutions (1870) presented Galois's theory systematically. Richard Dedekind and Leopold Kronecker recast it in terms of fields. Emil Artin's Galois Theory (1942) introduced the linear-algebra approach used here (Dedekind's lemma, Artin's theorem). Wolfgang Krull (1928) extended it to infinite extensions with a topology on the Galois group, and Alexander Grothendieck (SGA 1, 1960–61) unified it with covering spaces.
  • Finite fields. Galois himself introduced the fields Fpn\mathbb{F}_{p^n} ("imaginaires de Galois") in 1830, and E. H. Moore (1893) proved that every finite field is one of them. Gauss had earlier counted irreducible polynomials modulo pp in unpublished work.
Further reading

Further reading

  • Ian Stewart, Galois Theory (4th edition, 2015) — history, constructions, and the full theory at this level.
  • Emil Artin, Galois Theory (1942; Dover reprint) — the classic short account via linear algebra.
  • David S. Dummit and Richard M. Foote, Abstract Algebra (3rd edition, 2004), chapters 13–14.
  • Harold M. Edwards, Galois Theory (1984) — follows Galois's own memoir.
  • Rudolf Lidl and Harald Niederreiter, Introduction to Finite Fields and their Applications (revised edition, 1994).
  • Jürgen Neukirch, Algebraic Number Theory (1999), chapter I — Frobenius elements and Chebotarev, for going further.