Galois fields #
If p
is a prime number, and n
a natural number,
then GaloisField p n
is defined as the splitting field of X^(p^n) - X
over ZMod p
.
It is a finite field with p ^ n
elements.
Main definition #
GaloisField p n
is a field withp ^ n
elements
Main Results #
GaloisField.algEquivGaloisField
: Any finite field is isomorphic to some Galois fieldFiniteField.algEquivOfCardEq
: Uniqueness of finite fields : algebra isomorphismFiniteField.ringEquivOfCardEq
: Uniqueness of finite fields : ring isomorphism
theorem
galois_poly_separable
{K : Type u_1}
[Field K]
(p q : ℕ)
[CharP K p]
(h : p ∣ q)
:
(Polynomial.X ^ q - Polynomial.X).Separable
A finite field with p ^ n
elements.
Every field with the same cardinality is (non-canonically)
isomorphic to this field.
Equations
- GaloisField p n = (Polynomial.X ^ p ^ n - Polynomial.X).SplittingField
Instances For
Equations
- instFieldGaloisField p n = inferInstanceAs (Field (Polynomial.X ^ p ^ n - Polynomial.X).SplittingField)
Equations
- instInhabitedGaloisFieldOfNatNat = { default := 37 }
instance
GaloisField.instAlgebraZMod
(p : ℕ)
[h_prime : Fact (Nat.Prime p)]
(n : ℕ)
:
Algebra (ZMod p) (GaloisField p n)
Equations
instance
GaloisField.instIsSplittingFieldZModHSubPolynomialHPowNatX
(p : ℕ)
[h_prime : Fact (Nat.Prime p)]
(n : ℕ)
:
Polynomial.IsSplittingField (ZMod p) (GaloisField p n) (Polynomial.X ^ p ^ n - Polynomial.X)
instance
GaloisField.instCharP
(p : ℕ)
[h_prime : Fact (Nat.Prime p)]
(n : ℕ)
:
CharP (GaloisField p n) p
instance
GaloisField.instFiniteDimensionalZMod
(p : ℕ)
[h_prime : Fact (Nat.Prime p)]
(n : ℕ)
:
FiniteDimensional (ZMod p) (GaloisField p n)
instance
GaloisField.instFinite
(p : ℕ)
[h_prime : Fact (Nat.Prime p)]
(n : ℕ)
:
Finite (GaloisField p n)
theorem
GaloisField.finrank
(p : ℕ)
[h_prime : Fact (Nat.Prime p)]
{n : ℕ}
(h : n ≠ 0)
:
Module.finrank (ZMod p) (GaloisField p n) = n
theorem
GaloisField.splits_zmod_X_pow_sub_X
(p : ℕ)
[h_prime : Fact (Nat.Prime p)]
:
Polynomial.Splits (RingHom.id (ZMod p)) (Polynomial.X ^ p - Polynomial.X)
def
GaloisField.equivZmodP
(p : ℕ)
[h_prime : Fact (Nat.Prime p)]
:
GaloisField p 1 ≃ₐ[ZMod p] ZMod p
A Galois field with exponent 1 is equivalent to ZMod
Equations
- GaloisField.equivZmodP p = (Polynomial.IsSplittingField.algEquiv (ZMod p) (Polynomial.X ^ p ^ 1 - Polynomial.X)).symm
Instances For
theorem
FiniteField.splits_X_pow_card_sub_X
(p : ℕ)
[h_prime : Fact (Nat.Prime p)]
{K : Type u_1}
[Field K]
[Fintype K]
[Algebra (ZMod p) K]
:
Polynomial.Splits (algebraMap (ZMod p) K) (Polynomial.X ^ Fintype.card K - Polynomial.X)
@[deprecated FiniteField.splits_X_pow_card_sub_X (since := "2024-11-12")]
theorem
GaloisField.splits_X_pow_card_sub_X
(p : ℕ)
[h_prime : Fact (Nat.Prime p)]
{K : Type u_1}
[Field K]
[Fintype K]
[Algebra (ZMod p) K]
:
Polynomial.Splits (algebraMap (ZMod p) K) (Polynomial.X ^ Fintype.card K - Polynomial.X)
Alias of FiniteField.splits_X_pow_card_sub_X
.
theorem
FiniteField.isSplittingField_of_card_eq
(p : ℕ)
[h_prime : Fact (Nat.Prime p)]
(n : ℕ)
{K : Type u_1}
[Field K]
[Fintype K]
[Algebra (ZMod p) K]
(h : Fintype.card K = p ^ n)
:
Polynomial.IsSplittingField (ZMod p) K (Polynomial.X ^ p ^ n - Polynomial.X)
@[deprecated FiniteField.isSplittingField_of_card_eq (since := "2024-11-12")]
theorem
GaloisField.isSplittingField_of_card_eq
(p : ℕ)
[h_prime : Fact (Nat.Prime p)]
(n : ℕ)
{K : Type u_1}
[Field K]
[Fintype K]
[Algebra (ZMod p) K]
(h : Fintype.card K = p ^ n)
:
Polynomial.IsSplittingField (ZMod p) K (Polynomial.X ^ p ^ n - Polynomial.X)
Alias of FiniteField.isSplittingField_of_card_eq
.
def
GaloisField.algEquivGaloisFieldOfFintype
(p : ℕ)
[h_prime : Fact (Nat.Prime p)]
(n : ℕ)
{K : Type u_1}
[Field K]
[Fintype K]
[Algebra (ZMod p) K]
(h : Fintype.card K = p ^ n)
:
K ≃ₐ[ZMod p] GaloisField p n
Any finite field is (possibly non canonically) isomorphic to some Galois field.
Equations
Instances For
theorem
FiniteField.splits_X_pow_nat_card_sub_X
(p : ℕ)
[h_prime : Fact (Nat.Prime p)]
{K : Type u_1}
[Field K]
[Algebra (ZMod p) K]
[Finite K]
:
Polynomial.Splits (algebraMap (ZMod p) K) (Polynomial.X ^ Nat.card K - Polynomial.X)
theorem
FiniteField.isSplittingField_of_nat_card_eq
(p : ℕ)
[h_prime : Fact (Nat.Prime p)]
(n : ℕ)
{K : Type u_1}
[Field K]
[Algebra (ZMod p) K]
(h : Nat.card K = p ^ n)
:
Polynomial.IsSplittingField (ZMod p) K (Polynomial.X ^ p ^ n - Polynomial.X)
def
FiniteField.algEquivOfCardEq
{K : Type u_1}
[Field K]
[Fintype K]
{K' : Type u_2}
[Field K']
[Fintype K']
(p : ℕ)
[h_prime : Fact (Nat.Prime p)]
[Algebra (ZMod p) K]
[Algebra (ZMod p) K']
(hKK' : Fintype.card K = Fintype.card K')
:
Uniqueness of finite fields: Any two finite fields of the same cardinality are (possibly non canonically) isomorphic
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
FiniteField.ringEquivOfCardEq
{K : Type u_1}
[Field K]
[Fintype K]
{K' : Type u_2}
[Field K']
[Fintype K']
(hKK' : Fintype.card K = Fintype.card K')
:
K ≃+* K'
Uniqueness of finite fields: Any two finite fields of the same cardinality are (possibly non canonically) isomorphic
Equations
- One or more equations did not get rendered due to their size.