Exact multiplicity-preserving enumeration of compact Dirichlet zero collections
ProvedGoldbachDirichletZeros.compact_occurrence_enumerationLet , let be compact, and let range over all complex Dirichlet characters modulo . Write
Each set is finite. Every zero away from has finite, strictly positive analytic multiplicity; its natural-number multiplicity represents its analytic order exactly.
There are a natural number and a bijection from the tagged occurrence collection
to . If denotes the inverse image of under this bijection, then
for every real-valued weight on characters and complex points.
This interface preserves multiplicities and character labels when passing from actual Dirichlet zeros to finite detector sums. It applies to the principal character too, excludes the possible pole at , and allows empty collections. It supplies no numerical zero-density estimate or uniform bound as varies.
Formalization Note The finite zero-set instances and the bijection are existentially supplied. Multiplicity is the natural-number conversion of the analytic order, accompanied by a proof that this conversion loses no information.
import Mathlib.NumberTheory.LSeries.Nonvanishing import Mathlib.NumberTheory.DirichletCharacter.Orthogonality import Mathlib.Analysis.Complex.CauchyIntegral import Mathlib.Analysis.Analytic.Order import Mathlib.Topology.DiscreteSubset import Mathlib.Data.Fintype.EquivFin import Mathlib.Tactic open Complex Set Filter Topology open scoped BigOperators set_option autoImplicit false
theorem GoldbachDirichletZeros.compact_occurrence_enumeration (N : ℕ) [NeZero N] (K : Set ℂ) (hK : IsCompact K) :
(∀ χ : DirichletCharacter ℂ N,
(K ∩ {s | s ≠ 1 ∧ DirichletCharacter.LFunction χ s = 0}).Finite) ∧
(∀ (χ : DirichletCharacter ℂ N) (s : ℂ), s ≠ 1 →
DirichletCharacter.LFunction χ s = 0 →
((analyticOrderAt (DirichletCharacter.LFunction χ) s).toNat : ENat) =
analyticOrderAt (DirichletCharacter.LFunction χ) s ∧
0 < (analyticOrderAt (DirichletCharacter.LFunction χ) s).toNat) ∧
∃ iz : ∀ χ : DirichletCharacter ℂ N,
Fintype {s : ℂ // s ∈ K ∧ s ≠ 1 ∧ DirichletCharacter.LFunction χ s = 0},
letI (χ : DirichletCharacter ℂ N) := iz χ
∃ (n : ℕ) (e : (Σ χ : DirichletCharacter ℂ N,
Σ z : {s : ℂ // s ∈ K ∧ s ≠ 1 ∧ DirichletCharacter.LFunction χ s = 0},
Fin ((analyticOrderAt (DirichletCharacter.LFunction χ) z.val).toNat)) ≃ Fin n),
n = ∑ χ : DirichletCharacter ℂ N,
∑ z : {s : ℂ // s ∈ K ∧ s ≠ 1 ∧ DirichletCharacter.LFunction χ s = 0},
(analyticOrderAt (DirichletCharacter.LFunction χ) z.val).toNat ∧
∀ w : DirichletCharacter ℂ N → ℂ → ℝ,
(∑ i : Fin n, w (e.symm i).1 (e.symm i).2.1.val) =
∑ χ : DirichletCharacter ℂ N,
∑ z : {s : ℂ // s ∈ K ∧ s ≠ 1 ∧ DirichletCharacter.LFunction χ s = 0},
((analyticOrderAt (DirichletCharacter.LFunction χ) z.val).toNat : ℝ) *
w χ z.val := by sorry