Extensions of finite fields #
In this file we develop the theory of extensions of finite fields.
If k is a finite field (of cardinality q = p ^ m), then there is a unique (up to in general
non-unique isomorphism) extension l of k of any given degree n > 0.
This extension is Galois with cyclic Galois group of degree n, and the (arithmetic) Frobenius map
x ↦ x ^ q is a generator.
Main definition #
FiniteField.Extension k p nis a non-canonically chosen extension ofkof degreen(forn > 0).
Main Results #
FiniteField.algEquivExtension: any other field extensionl/kof degreenis (non-uniquely) isomorphic to our chosenFiniteField.Extension k p n.
def
FiniteField.Extension
(k : Type u_1)
[Field k]
(p : ℕ)
[Fact (Nat.Prime p)]
(n : ℕ)
[CharP k p]
:
Given a finite field k of characteristic p, we have a non-canoncailly chosen extension
of any given degree n > 0.
Equations
- FiniteField.Extension k p n = GaloisField p (Module.finrank (ZMod p) k * n)
Instances For
instance
FiniteField.instFieldExtension
(k : Type u_1)
[Field k]
(p : ℕ)
[Fact (Nat.Prime p)]
(n : ℕ)
[CharP k p]
:
Equations
- FiniteField.instFieldExtension k p n = instFieldGaloisField p (Module.finrank (ZMod p) k * n)
instance
FiniteField.instAlgebraZModExtension
(k : Type u_1)
[Field k]
(p : ℕ)
[Fact (Nat.Prime p)]
(n : ℕ)
[CharP k p]
:
Equations
- FiniteField.instAlgebraZModExtension k p n = instAlgebraZModGaloisField p (Module.finrank (ZMod p) k * n)
instance
FiniteField.instIsSplittingFieldExtensionHSubPolynomialHPowNatXCard
(k : Type u_1)
[Field k]
[Finite k]
(p : ℕ)
[Fact (Nat.Prime p)]
[CharP k p]
(n : ℕ)
[NeZero n]
:
Polynomial.IsSplittingField k (Extension k p n) (Polynomial.X ^ Nat.card k ^ n - Polynomial.X)
noncomputable def
FiniteField.algEquivExtension
(k : Type u_1)
[Field k]
[Finite k]
(p : ℕ)
[Fact (Nat.Prime p)]
[CharP k p]
(n : ℕ)
[NeZero n]
(l : Type u_2)
[Field l]
[Algebra k l]
(h : Module.finrank k l = n)
:
Given any field extension of finite fields l/k of degree n, we have a non-unique
isomorphism between l and our chosen Extension k p n.
Equations
- FiniteField.algEquivExtension k p n l h = ⋯.some