4. Chebotarev: cyclotomic case
For a cyclotomic extension L = K(\zeta_m), Chebotarev's theorem reduces directly
to Dirichlet's argument. Source: Sharifi 7.2.1 (pp. 142--143).
Let L = K(\zeta_m), \mathfrak{p} a nonzero prime of \mathcal{O}_K
unramified in L, and \mathfrak{P} a prime of \mathcal{O}_L above
\mathfrak{p}. Then for every primitive m-th root of unity \zeta \in L,
\Frob_\mathfrak{P}(\zeta) \;=\; \zeta^{\Norm\mathfrak{p}}.
Lean code for Lemma4.1●1 theorem
Associated Lean declarations
-
theoremdefined in CebotarevDensity/CyclotomicNormResidue.leancomplete
theorem Chebotarev.cyclotomic_frobenius_acts_as_norm_power.{u_1, u_2} (K : Type u_1) (L : Type u_2) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L] (m : ℕ) [NeZero m] [IsCyclotomicExtension {m} K L] (𝔭 : Ideal (NumberField.RingOfIntegers K)) [𝔭.IsPrime] (hunr : Chebotarev.UnramifiedIn K L 𝔭) (hcop : (Ideal.absNorm 𝔭).Coprime m) (𝔓 : Ideal (NumberField.RingOfIntegers L)) [𝔓.IsPrime] (hP : 𝔓.LiesOver 𝔭) (ζ : L) : ζ ∈ primitiveRoots m L → (arithFrobAt (NumberField.RingOfIntegers K) Gal(L/K) 𝔓) ζ = ζ ^ Ideal.absNorm 𝔭
theorem Chebotarev.cyclotomic_frobenius_acts_as_norm_power.{u_1, u_2} (K : Type u_1) (L : Type u_2) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L] (m : ℕ) [NeZero m] [IsCyclotomicExtension {m} K L] (𝔭 : Ideal (NumberField.RingOfIntegers K)) [𝔭.IsPrime] (hunr : Chebotarev.UnramifiedIn K L 𝔭) (hcop : (Ideal.absNorm 𝔭).Coprime m) (𝔓 : Ideal (NumberField.RingOfIntegers L)) [𝔓.IsPrime] (hP : 𝔓.LiesOver 𝔭) (ζ : L) : ζ ∈ primitiveRoots m L → (arithFrobAt (NumberField.RingOfIntegers K) Gal(L/K) 𝔓) ζ = ζ ^ Ideal.absNorm 𝔭
Sharifi 7.2.1 step (i) — cyclotomic Frobenius formula (p. 142). Verbatim source quote: "we have φ_𝔭(ζ_m) = ζ_m^{N𝔭} for a primitive mth root of unity ζ_m". The coprimality `hcop : (N𝔭).Coprime m` is Sharifi's implicit hypothesis made explicit — it is genuinely necessary: if `μ_m ⊆ K` then `L = K`, `φ_𝔭 = id`, and *every* prime is unramified, yet the formula would force `N𝔭 ≡ 1 (mod m)`. For a nontrivial extension it is the statement that an unramified prime does not divide `m`; mathlib currently provides that only over `ℚ` (`IsCyclotomicExtension.Rat.*`), so over a general base `K` the caller supplies the coprimality. (Relocated here from `Cyclotomic.lean` so that `ZetaProduct.lean` — which `Cyclotomic.lean` imports — can consume it without an import cycle.)
By the defining property of \Frob_\mathfrak{P} (it acts as the
\Norm\mathfrak{p}-power map on \mathcal{O}_L/\mathfrak{P}) combined with the
fact that \zeta_m lifts isomorphically from the residue field for
\mathfrak{p} \nmid m.
For every character \chi of G, the partial sum
\sum_\mathfrak{p} \chi(\Frob_\mathfrak{p})\, \Norm\mathfrak{p}^{-s} over
\mathfrak{p} unramified in L is bounded by C\log(1/(s-1)) + C for some
constant C, in a right neighbourhood of s = 1.
Lean code for Lemma4.2●1 theorem
Associated Lean declarations
-
theoremdefined in CebotarevDensity/Cyclotomic.leancomplete
theorem Chebotarev.log_artinLSeries_asymp_character_sum.{u_3, u_4} (K : Type u_3) (L : Type u_4) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L] [IsMulCommutative Gal(L/K)] (χ : Chebotarev.galoisCharacter K L) : ∃ C, ∀ᶠ (s : ℝ) in nhdsWithin 1 (Set.Ioi 1), ‖∑' (𝔭 : { 𝔭 // 𝔭.IsPrime ∧ Chebotarev.UnramifiedIn K L 𝔭 }), ↑(χ (Quotient.out (Chebotarev.frobeniusClass K L ↑𝔭))) * ↑(Ideal.absNorm ↑𝔭) ^ (-↑s)‖ ≤ C * Real.log (1 / (s - 1)) + C
theorem Chebotarev.log_artinLSeries_asymp_character_sum.{u_3, u_4} (K : Type u_3) (L : Type u_4) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L] [IsMulCommutative Gal(L/K)] (χ : Chebotarev.galoisCharacter K L) : ∃ C, ∀ᶠ (s : ℝ) in nhdsWithin 1 (Set.Ioi 1), ‖∑' (𝔭 : { 𝔭 // 𝔭.IsPrime ∧ Chebotarev.UnramifiedIn K L 𝔭 }), ↑(χ (Quotient.out (Chebotarev.frobeniusClass K L ↑𝔭))) * ↑(Ideal.absNorm ↑𝔭) ^ (-↑s)‖ ≤ C * Real.log (1 / (s - 1)) + C
Sharifi 7.2.1 step (ii) — log of an Artin L-function on the half-plane `Re s > 1` (p. 142). Verbatim source quote: "log L(χ,s) ~ Σ_𝔭 χ(𝔭) N𝔭^{-s} for Re(s) > 1".
Let L = K(\zeta_m), \sigma \in G, and \mathfrak{p} a nonzero prime of
\mathcal{O}_K unramified in L with \sigma_\mathfrak{p} the conjugacy class
of \sigma. Then
\sum_{\chi \in \widehat{G}} \chi(\sigma)\, \chi(\Frob_\mathfrak{p})^{-1} \;=\; |G|.
Lean code for Lemma4.3●1 theorem
Associated Lean declarations
-
theoremdefined in CebotarevDensity/Cyclotomic.leancomplete
theorem Chebotarev.character_orthogonality_cyclotomic_eq.{u_3, u_4} (K : Type u_3) (L : Type u_4) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L] (m : ℕ) [NeZero m] [IsCyclotomicExtension {m} K L] [Fintype (Chebotarev.galoisCharacter K L)] (σ : Gal(L/K)) (𝔭 : Ideal (NumberField.RingOfIntegers K)) [𝔭.IsPrime] (_hunr : Chebotarev.UnramifiedIn K L 𝔭) (_h : Chebotarev.frobeniusClass K L 𝔭 = ConjClasses.mk σ) : ∑ χ, ↑(χ σ) * (↑(χ (Quotient.out (Chebotarev.frobeniusClass K L 𝔭))))⁻¹ = ↑(Nat.card Gal(L/K))
theorem Chebotarev.character_orthogonality_cyclotomic_eq.{u_3, u_4} (K : Type u_3) (L : Type u_4) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L] (m : ℕ) [NeZero m] [IsCyclotomicExtension {m} K L] [Fintype (Chebotarev.galoisCharacter K L)] (σ : Gal(L/K)) (𝔭 : Ideal (NumberField.RingOfIntegers K)) [𝔭.IsPrime] (_hunr : Chebotarev.UnramifiedIn K L 𝔭) (_h : Chebotarev.frobeniusClass K L 𝔭 = ConjClasses.mk σ) : ∑ χ, ↑(χ σ) * (↑(χ (Quotient.out (Chebotarev.frobeniusClass K L 𝔭))))⁻¹ = ↑(Nat.card Gal(L/K))
Sharifi 7.2.1 step (iii) — character orthogonality for the cyclotomic case (p. 142), **matching case**: when `frobeniusClass K L 𝔭 = ConjClasses.mk σ`, the character sum equals `|G|`.
Let L = K(\zeta_m), \sigma \in G, and \mathfrak{p} a nonzero prime of
\mathcal{O}_K unramified in L whose Frobenius class is not the conjugacy class
of \sigma. Then
\sum_{\chi \in \widehat{G}} \chi(\sigma)\, \chi(\Frob_\mathfrak{p})^{-1} \;=\; 0.
Lean code for Lemma4.4●1 theorem
Associated Lean declarations
-
theoremdefined in CebotarevDensity/Cyclotomic.leancomplete
theorem Chebotarev.character_orthogonality_cyclotomic_ne.{u_3, u_4} (K : Type u_3) (L : Type u_4) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L] (m : ℕ) [NeZero m] [IsCyclotomicExtension {m} K L] [Fintype (Chebotarev.galoisCharacter K L)] (σ : Gal(L/K)) (𝔭 : Ideal (NumberField.RingOfIntegers K)) [𝔭.IsPrime] (_hunr : Chebotarev.UnramifiedIn K L 𝔭) (_h : Chebotarev.frobeniusClass K L 𝔭 ≠ ConjClasses.mk σ) : ∑ χ, ↑(χ σ) * (↑(χ (Quotient.out (Chebotarev.frobeniusClass K L 𝔭))))⁻¹ = 0
theorem Chebotarev.character_orthogonality_cyclotomic_ne.{u_3, u_4} (K : Type u_3) (L : Type u_4) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L] (m : ℕ) [NeZero m] [IsCyclotomicExtension {m} K L] [Fintype (Chebotarev.galoisCharacter K L)] (σ : Gal(L/K)) (𝔭 : Ideal (NumberField.RingOfIntegers K)) [𝔭.IsPrime] (_hunr : Chebotarev.UnramifiedIn K L 𝔭) (_h : Chebotarev.frobeniusClass K L 𝔭 ≠ ConjClasses.mk σ) : ∑ χ, ↑(χ σ) * (↑(χ (Quotient.out (Chebotarev.frobeniusClass K L 𝔭))))⁻¹ = 0
Sharifi 7.2.1 character orthogonality, **non-matching case**: when `frobeniusClass K L 𝔭 ≠ ConjClasses.mk σ`, the character sum vanishes.
Standard finite-group character orthogonality for the dual of G (Sharifi 7.2.1
step at p. 142). Under the isomorphism G \cong (\mathbb{Z}/m\mathbb{Z})^\times
from Lemma 4.1, \chi(\Frob_\mathfrak{p})
depends only on \Norm\mathfrak{p} \bmod m, and the sum reduces to the
orthogonality relation on the cyclic group (\mathbb{Z}/m\mathbb{Z})^\times.
Lean code for Lemma4.5●1 theorem
Associated Lean declarations
-
theoremdefined in CebotarevDensity/Cyclotomic.leancomplete
theorem Chebotarev.primeIdealZetaSum_frobeniusFibre_asymp.{u_3, u_4} (K : Type u_3) (L : Type u_4) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L] (m : ℕ) [NeZero m] [IsCyclotomicExtension {m} K L] (hm : m % 4 ≠ 2) (σ : Gal(L/K)) : Filter.Tendsto (fun s ↦ Chebotarev.primeIdealZetaSum {𝔭 | 𝔭.IsPrime ∧ Chebotarev.UnramifiedIn K L 𝔭 ∧ Chebotarev.frobeniusClass K L 𝔭 = ConjClasses.mk σ} s / Real.log (1 / (s - 1))) (nhdsWithin 1 (Set.Ioi 1)) (nhds (↑(Nat.card Gal(L/K)))⁻¹)
theorem Chebotarev.primeIdealZetaSum_frobeniusFibre_asymp.{u_3, u_4} (K : Type u_3) (L : Type u_4) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L] (m : ℕ) [NeZero m] [IsCyclotomicExtension {m} K L] (hm : m % 4 ≠ 2) (σ : Gal(L/K)) : Filter.Tendsto (fun s ↦ Chebotarev.primeIdealZetaSum {𝔭 | 𝔭.IsPrime ∧ Chebotarev.UnramifiedIn K L 𝔭 ∧ Chebotarev.frobeniusClass K L 𝔭 = ConjClasses.mk σ} s / Real.log (1 / (s - 1))) (nhdsWithin 1 (Set.Ioi 1)) (nhds (↑(Nat.card Gal(L/K)))⁻¹)
Sharifi 7.2.1 step (iv-a) — the numerator asymptotic. The prime-sum over the Frobenius fibre `{σ_𝔭 = σ}` is asymptotic to `(1/|G|) log(1/(s-1))` as `s ↓ 1`.
Multiply \log L(\chi, s) by \chi(\sigma)^{-1} and sum over \chi: the
orthogonality relations (Lemma 4.3 and
Lemma 4.4) pick out the primes with Frobenius
\sigma, giving
\sum_\chi \chi(\sigma)^{-1}\log L(\chi, s) \sim |G| \sum_{\sigma_\mathfrak{p} = \sigma} \Norm\mathfrak{p}^{-s};
on the other hand it is \sim \log\zeta_K(s) \sim \log(1/(s-1)) (only \chi = \mathbf{1}
contributes a pole, by Lemma 3.6). Divide.
If \operatorname{num}(s)/\log(1/(s-1)) \to c and
\operatorname{den}(s)/\log(1/(s-1)) \to 1 as s \downarrow 1, then
\operatorname{num}(s)/\operatorname{den}(s) \to c.
Lean code for Lemma4.6●1 theorem
Associated Lean declarations
-
theoremdefined in CebotarevDensity/Cyclotomic.leancomplete
theorem Chebotarev.tendsto_ratio_of_log_asymp_numerator (num den : ℝ → ℝ) (c : ℝ) (hnum : Filter.Tendsto (fun s ↦ num s / Real.log (1 / (s - 1))) (nhdsWithin 1 (Set.Ioi 1)) (nhds c)) (hden : Filter.Tendsto (fun s ↦ den s / Real.log (1 / (s - 1))) (nhdsWithin 1 (Set.Ioi 1)) (nhds 1)) : Filter.Tendsto (fun s ↦ num s / den s) (nhdsWithin 1 (Set.Ioi 1)) (nhds c)
theorem Chebotarev.tendsto_ratio_of_log_asymp_numerator (num den : ℝ → ℝ) (c : ℝ) (hnum : Filter.Tendsto (fun s ↦ num s / Real.log (1 / (s - 1))) (nhdsWithin 1 (Set.Ioi 1)) (nhds c)) (hden : Filter.Tendsto (fun s ↦ den s / Real.log (1 / (s - 1))) (nhdsWithin 1 (Set.Ioi 1)) (nhds 1)) : Filter.Tendsto (fun s ↦ num s / den s) (nhdsWithin 1 (Set.Ioi 1)) (nhds c)
Pure real-analysis glue: if `num(s) / log(1/(s-1)) → c` and `den(s) / log(1/(s-1)) → 1` as `s ↓ 1`, then `num(s) / den(s) → c`.
Write \operatorname{num}/\operatorname{den} = (\operatorname{num}/L)/(\operatorname{den}/L)
with L = \log(1/(s-1)), which is positive (hence nonzero) for s \in (1,2) since
1/(s-1) > 1; apply the quotient rule for limits and cancel L.
Lean code for Lemma4.7●1 theorem
Associated Lean declarations
-
theoremdefined in CebotarevDensity/Cyclotomic.leancomplete
theorem Chebotarev.cyclotomic_density_from_two_sided_asymp.{u_3, u_4} (K : Type u_3) (L : Type u_4) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L] (m : ℕ) [NeZero m] [IsCyclotomicExtension {m} K L] (hm : m % 4 ≠ 2) (σ : Gal(L/K)) : Filter.Tendsto (fun s ↦ Chebotarev.primeIdealZetaSum {𝔭 | 𝔭.IsPrime ∧ Chebotarev.UnramifiedIn K L 𝔭 ∧ Chebotarev.frobeniusClass K L 𝔭 = ConjClasses.mk σ} s / Chebotarev.primeIdealZetaSum Set.univ s) (nhdsWithin 1 (Set.Ioi 1)) (nhds (↑(Nat.card Gal(L/K)))⁻¹)
theorem Chebotarev.cyclotomic_density_from_two_sided_asymp.{u_3, u_4} (K : Type u_3) (L : Type u_4) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L] (m : ℕ) [NeZero m] [IsCyclotomicExtension {m} K L] (hm : m % 4 ≠ 2) (σ : Gal(L/K)) : Filter.Tendsto (fun s ↦ Chebotarev.primeIdealZetaSum {𝔭 | 𝔭.IsPrime ∧ Chebotarev.UnramifiedIn K L 𝔭 ∧ Chebotarev.frobeniusClass K L 𝔭 = ConjClasses.mk σ} s / Chebotarev.primeIdealZetaSum Set.univ s) (nhdsWithin 1 (Set.Ioi 1)) (nhds (↑(Nat.card Gal(L/K)))⁻¹)
Sharifi 7.2.1 step (iv) — two-sided log-asymptotic comparison (p. 142). Source: "on the one hand we have Σ_χ χ(σ)^{-1} log L(χ,s) ~ |G| Σ_{φ_𝔭=σ} N𝔭^{-s}, whereas on the other we have Σ_χ χ(σ)^{-1} log L(χ,s) ~ log ζ_K(s) ~ log(s-1)^{-1}". Comparing yields density `1/|G|`.
-
Chebotarev.chebotarev_cyclotomic[complete]
For K a number field, m \ge 1, L = K(\zeta_m), and every
\sigma \in G = \Gal{L/K},
\delta\bigl(\{\mathfrak{p} \subset \mathcal{O}_K : \sigma_\mathfrak{p} = \sigma\}\bigr) \;=\; \frac{1}{|G|}.
Lean code for Theorem4.8●1 theorem
Associated Lean declarations
-
Chebotarev.chebotarev_cyclotomic[complete]
-
Chebotarev.chebotarev_cyclotomic[complete]
-
theoremdefined in CebotarevDensity/Cyclotomic.leancomplete
theorem Chebotarev.chebotarev_cyclotomic.{u_1, u_2} (K : Type u_1) (L : Type u_2) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L] (m : ℕ) [NeZero m] [IsCyclotomicExtension {m} K L] (hm : m % 4 ≠ 2) (σ : Gal(L/K)) : Chebotarev.HasDirichletDensity {𝔭 | 𝔭.IsPrime ∧ Chebotarev.UnramifiedIn K L 𝔭 ∧ Chebotarev.frobeniusClass K L 𝔭 = ConjClasses.mk σ} (↑(Nat.card Gal(L/K)))⁻¹
theorem Chebotarev.chebotarev_cyclotomic.{u_1, u_2} (K : Type u_1) (L : Type u_2) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L] (m : ℕ) [NeZero m] [IsCyclotomicExtension {m} K L] (hm : m % 4 ≠ 2) (σ : Gal(L/K)) : Chebotarev.HasDirichletDensity {𝔭 | 𝔭.IsPrime ∧ Chebotarev.UnramifiedIn K L 𝔭 ∧ Chebotarev.frobeniusClass K L 𝔭 = ConjClasses.mk σ} (↑(Nat.card Gal(L/K)))⁻¹
**Chebotarev's theorem, cyclotomic case** (Sharifi §7.2.1). For `K` a number field, `m ≥ 1`, and `L = K(μ_m)` the `m`-th cyclotomic extension of `K`, every `σ ∈ Gal(L/K)` is the Frobenius of a set of primes of `𝓞 K` (unramified in `L`) of Dirichlet density `1 / |Gal(L/K)|`.