Documentation

TauCeti.NumberTheory.NumberField.Index.DedekindCriterion

Dedekind's criterion #

Let θ be an integral primitive element of a number field K, with minimal polynomial f = minpoly ℤ θ, and let p be a prime. Factor the reduction of f modulo p as

f mod p = ∏ i, φ i ^ e i,

with the φ i distinct monic irreducible polynomials over ZMod p and every e i > 0. Choose lifts Φ i : ℤ[X] of the φ i. Then f - ∏ i, Φ i ^ e i reduces to zero modulo p, so it is p H for an integer polynomial H (exists_C_mul_eq_minpoly_sub_prod). Dedekind's criterion (not_dvd_index_iff) states that

p ∤ [𝓞 K : ℤ[θ]] ↔ ∀ i, e i = 1 ∨ ¬ φ i ∣ (H mod p).

The criterion decides, from f, p, the factorisation of f mod p and any choice of lifts, whether p divides the index of the order ℤ[θ] in 𝓞 K, that is, whether ℤ[θ] is p-maximal; in particular it makes the hypothesis of the Kummer–Dedekind theorem at p checkable. Its truth value does not depend on which lifts Φ i, and hence which H, are chosen (forall_eq_one_or_not_dvd_map_iff).

Main results #

References #

theorem TauCeti.NumberField.IntegralPrimitiveElement.exists_C_mul_eq_minpoly_sub_prod {K : Type u_1} [Field K] [NumberField K] {p : ℕ} (θ : IntegralPrimitiveElement K) {ι : Type u_2} [Fintype ι] {φ : ι → Polynomial (ZMod p)} {e : ι → ℕ} {Φ : ι → Polynomial ℤ} (hfact : Polynomial.map (Int.castRingHom (ZMod p)) (minpoly ℤ ↑θ) = ∏ i : ι, φ i ^ e i) (hΦ : ∀ (i : ι), Polynomial.map (Int.castRingHom (ZMod p)) (Φ i) = φ i) :
∃ (H : Polynomial ℤ), Polynomial.C ↑p * H = minpoly ℤ ↑θ - ∏ i : ι, Φ i ^ e i

The minimal polynomial differs from the product of the lifts by a multiple of p. If minpoly ℤ θ reduces to ∏ i, φ i ^ e i modulo p and each Φ i lifts φ i, then minpoly ℤ θ - ∏ i, Φ i ^ e i is p times an integer polynomial H.

theorem TauCeti.NumberField.IntegralPrimitiveElement.map_minpoly_eq_prod_of_C_mul_eq {K : Type u_1} [Field K] [NumberField K] {p : ℕ} (θ : IntegralPrimitiveElement K) {ι : Type u_2} [Fintype ι] {φ : ι → Polynomial (ZMod p)} {e : ι → ℕ} {Φ : ι → Polynomial ℤ} {H : Polynomial ℤ} (hΦ : ∀ (i : ι), Polynomial.map (Int.castRingHom (ZMod p)) (Φ i) = φ i) (hH : Polynomial.C ↑p * H = minpoly ℤ ↑θ - ∏ i : ι, Φ i ^ e i) :
Polynomial.map (Int.castRingHom (ZMod p)) (minpoly ℤ ↑θ) = ∏ i : ι, φ i ^ e i

Conversely, p H = minpoly ℤ θ - ∏ i, Φ i ^ e i recovers the factorisation of minpoly ℤ θ modulo p from the lifts.

theorem TauCeti.NumberField.IntegralPrimitiveElement.natCast_mul_aeval_eq_neg_prod {K : Type u_1} [Field K] [NumberField K] {p : ℕ} (θ : IntegralPrimitiveElement K) {ι : Type u_2} [Fintype ι] {e : ι → ℕ} {Φ : ι → Polynomial ℤ} {H : Polynomial ℤ} (hH : Polynomial.C ↑p * H = minpoly ℤ ↑θ - ∏ i : ι, Φ i ^ e i) :
↑p * (Polynomial.aeval ↑θ) H = -∏ i : ι, (Polynomial.aeval ↑θ) (Φ i) ^ e i

Evaluating C p * H = minpoly ℤ θ - ∏ i, Φ i ^ e i at θ.

theorem TauCeti.NumberField.IntegralPrimitiveElement.exists_aeval_eq_of_mem_adjoin_of_mem {K : Type u_1} [Field K] [NumberField K] {p : ℕ} (θ : IntegralPrimitiveElement K) [Fact (Nat.Prime p)] {Φ : Polynomial ℤ} (hirr : Irreducible (Polynomial.map (Int.castRingHom (ZMod p)) Φ)) {P : Ideal (NumberField.RingOfIntegers K)} (hP : P ≠ ⊤) (hp : ↑p ∈ P) (hΦ : (Polynomial.aeval ↑θ) Φ ∈ P) {g : NumberField.RingOfIntegers K} (hgA : g ∈ θ.adjoin) (hgP : g ∈ P) :
∃ (Q : Polynomial ℤ) (D : Polynomial ℤ), g = (Polynomial.aeval ↑θ) Φ * (Polynomial.aeval ↑θ) Q + ↑p * (Polynomial.aeval ↑θ) D

An element of ℤ[θ] lying in a proper ideal P of 𝓞 K that contains p and Φ(θ), where Φ reduces modulo p to an irreducible polynomial, is Φ(θ) Q(θ) + p D(θ) for integer polynomials Q, D.

theorem TauCeti.NumberField.IntegralPrimitiveElement.exists_notMem_mul_mem_adjoin {K : Type u_1} [Field K] [NumberField K] {p : ℕ} (θ : IntegralPrimitiveElement K) [Fact (Nat.Prime p)] {ι : Type u_2} [Fintype ι] {φ : ι → Polynomial (ZMod p)} {e : ι → ℕ} {Φ : ι → Polynomial ℤ} {H : Polynomial ℤ} (hφ : ∀ (i : ι), Irreducible (φ i)) (hφm : ∀ (i : ι), (φ i).Monic) (hinj : Function.Injective φ) (hΦ : ∀ (i : ι), Polynomial.map (Int.castRingHom (ZMod p)) (Φ i) = φ i) (hH : Polynomial.C ↑p * H = minpoly ℤ ↑θ - ∏ i : ι, Φ i ^ e i) {P : Ideal (NumberField.RingOfIntegers K)} [P.IsPrime] (hp : ↑p ∈ P) {i : ι} (he : 0 < e i) (hi : (Polynomial.aeval ↑θ) (Φ i) ∈ P) (hcrit : e i = 1 ∨ ¬φ i ∣ Polynomial.map (Int.castRingHom (ZMod p)) H) :
∃ σ ∈ θ.adjoin, σ ∉ P ∧ ∀ (z : NumberField.RingOfIntegers K), ↑p * z ∈ θ.adjoin → σ * z ∈ θ.adjoin

The key step of Dedekind's criterion. Let P be a prime of 𝓞 K containing p and Φ i (θ). If e i = 1, or if φ i does not divide the reduction of H, then there is σ ∈ ℤ[θ] outside P such that σ z ∈ ℤ[θ] whenever p z ∈ ℤ[θ].

theorem TauCeti.NumberField.IntegralPrimitiveElement.not_dvd_index_of_forall_eq_one_or_not_dvd_map {K : Type u_1} [Field K] [NumberField K] {p : ℕ} (θ : IntegralPrimitiveElement K) [Fact (Nat.Prime p)] {ι : Type u_2} [Fintype ι] {φ : ι → Polynomial (ZMod p)} {e : ι → ℕ} {Φ : ι → Polynomial ℤ} {H : Polynomial ℤ} (hφ : ∀ (i : ι), Irreducible (φ i)) (hφm : ∀ (i : ι), (φ i).Monic) (hinj : Function.Injective φ) (he : ∀ (i : ι), 0 < e i) (hΦ : ∀ (i : ι), Polynomial.map (Int.castRingHom (ZMod p)) (Φ i) = φ i) (hH : Polynomial.C ↑p * H = minpoly ℤ ↑θ - ∏ i : ι, Φ i ^ e i) (hcrit : ∀ (i : ι), e i = 1 ∨ ¬φ i ∣ Polynomial.map (Int.castRingHom (ZMod p)) H) :

Dedekind's criterion, the sufficient direction. If for every i either e i = 1 or φ i does not divide the reduction of H, then p does not divide the index [𝓞 K : ℤ[θ]].

theorem TauCeti.NumberField.IntegralPrimitiveElement.dvd_index_of_ne_one_of_dvd_map {K : Type u_1} [Field K] [NumberField K] {p : ℕ} (θ : IntegralPrimitiveElement K) [Fact (Nat.Prime p)] {ι : Type u_2} [Fintype ι] {φ : ι → Polynomial (ZMod p)} {e : ι → ℕ} {Φ : ι → Polynomial ℤ} {H : Polynomial ℤ} (i : ι) (hφi : Irreducible (φ i)) (hΦ : ∀ (i : ι), Polynomial.map (Int.castRingHom (ZMod p)) (Φ i) = φ i) (hH : Polynomial.C ↑p * H = minpoly ℤ ↑θ - ∏ i : ι, Φ i ^ e i) (h1 : e i ≠ 1) (he : 0 < e i) (hdvd : φ i ∣ Polynomial.map (Int.castRingHom (ZMod p)) H) :
p ∣ θ.index

Dedekind's criterion, the necessary direction. If e i ≥ 2 and φ i divides the reduction of H for some i, then p divides the index [𝓞 K : ℤ[θ]].

theorem TauCeti.NumberField.IntegralPrimitiveElement.not_dvd_index_iff {K : Type u_1} [Field K] [NumberField K] {p : ℕ} (θ : IntegralPrimitiveElement K) [Fact (Nat.Prime p)] {ι : Type u_2} [Fintype ι] {φ : ι → Polynomial (ZMod p)} {e : ι → ℕ} {Φ : ι → Polynomial ℤ} {H : Polynomial ℤ} (hφ : ∀ (i : ι), Irreducible (φ i)) (hφm : ∀ (i : ι), (φ i).Monic) (hinj : Function.Injective φ) (he : ∀ (i : ι), 0 < e i) (hΦ : ∀ (i : ι), Polynomial.map (Int.castRingHom (ZMod p)) (Φ i) = φ i) (hH : Polynomial.C ↑p * H = minpoly ℤ ↑θ - ∏ i : ι, Φ i ^ e i) :
¬p ∣ θ.index ↔ ∀ (i : ι), e i = 1 ∨ ¬φ i ∣ Polynomial.map (Int.castRingHom (ZMod p)) H

Dedekind's criterion. Let θ be an integral primitive element of K with minimal polynomial f = minpoly ℤ θ, let p be a prime, and factor f mod p = ∏ i, φ i ^ e i into distinct monic irreducible polynomials φ i over ZMod p, each with multiplicity e i > 0. Choose lifts Φ i : ℤ[X] of the φ i and let H : ℤ[X] satisfy p H = f - ∏ i, Φ i ^ e i (which records the factorisation, by map_minpoly_eq_prod_of_C_mul_eq). Then p does not divide the index [𝓞 K : ℤ[θ]] if and only if, for every i, either e i = 1 or φ i does not divide H mod p.

theorem TauCeti.NumberField.IntegralPrimitiveElement.forall_eq_one_or_not_dvd_map_iff {K : Type u_1} [Field K] [NumberField K] {p : ℕ} (θ : IntegralPrimitiveElement K) [Fact (Nat.Prime p)] {ι : Type u_2} [Fintype ι] {φ : ι → Polynomial (ZMod p)} {e : ι → ℕ} {Φ : ι → Polynomial ℤ} {H : Polynomial ℤ} (hφ : ∀ (i : ι), Irreducible (φ i)) (hφm : ∀ (i : ι), (φ i).Monic) (hinj : Function.Injective φ) (he : ∀ (i : ι), 0 < e i) {Φ' : ι → Polynomial ℤ} {H' : Polynomial ℤ} (hΦ : ∀ (i : ι), Polynomial.map (Int.castRingHom (ZMod p)) (Φ i) = φ i) (hH : Polynomial.C ↑p * H = minpoly ℤ ↑θ - ∏ i : ι, Φ i ^ e i) (hΦ' : ∀ (i : ι), Polynomial.map (Int.castRingHom (ZMod p)) (Φ' i) = φ i) (hH' : Polynomial.C ↑p * H' = minpoly ℤ ↑θ - ∏ i : ι, Φ' i ^ e i) :
(∀ (i : ι), e i = 1 ∨ ¬φ i ∣ Polynomial.map (Int.castRingHom (ZMod p)) H) ↔ ∀ (i : ι), e i = 1 ∨ ¬φ i ∣ Polynomial.map (Int.castRingHom (ZMod p)) H'

The right-hand side of Dedekind's criterion does not depend on the choice of the lifts Φ i of the φ i, nor on the resulting H.