Paper IV · Lean source

BranchedDirichlet.lean

Selected results recorded Coverage and evidence

Compiler/replay evidence is reported for a subset or bounded block. No whole-work coverage is implied.

This viewer reads the retained source; it does not run Lean or assign new claim mappings.

Local imports (1)

KomorebiPaperIV/BranchedDirichlet.lean116 lines

Original source pathPaper_IV_Verification_Closeout_v1.1.0/formalization/lean/KomorebiPaperIV/BranchedDirichlet.lean
Skip declarations and read code

Skip source text

1 /-
2 Copyright (c) 2026 Komorebi P. All rights reserved.
3 Authors: Komorebi P.
4 -/
5 import KomorebiPaperIV.ZeroZetaConvergence
6 
7 namespace Komorebi.PaperIV
8 noncomputable section
9 open Set Filter Metric
10 open scoped Topology
11 
12 def branchedDirichletTerm {ι : Type*} (c L : ι → ℂ) (i : ι) (s : ℂ) : ℂ :=
13   c i * Complex.exp (-s * L i)
14 
15 theorem branchedDirichletTerm_differentiable {ι : Type*} (c L : ι → ℂ) (i : ι) :
16     Differentiable ℂ (branchedDirichletTerm c L i) := by
17   unfold branchedDirichletTerm
18   fun_prop
19 
20 theorem branchedDirichletTerm_norm {ι : Type*} (c L : ι → ℂ) (r : ι → ℝ)
21     (hr : ∀ i, 0 < r i) (hL : ∀ i, (L i).re = Real.log (r i)) (i : ι) (s : ℂ) :
22     ‖branchedDirichletTerm c L i s‖ =
23       ‖c i‖ / r i ^ s.re * Real.exp (s.im * (L i).im) := by
24   rw [branchedDirichletTerm, norm_mul, Complex.norm_exp]
25   simp only [Complex.mul_re, Complex.neg_re, Complex.neg_im, hL]
26   rw [neg_mul s.im, sub_neg_eq_add, Real.exp_add, Real.rpow_def_of_pos (hr i),
27     div_eq_mul_inv, ← Real.exp_neg]
28   ring_nf
29 
30 theorem branchedDirichletTerm_strip_bound {ι : Type*} (c L : ι → ℂ) (r : ι → ℝ)
31     (hr : ∀ i, 0 < r i) (hL : ∀ i, (L i).re = Real.log (r i))
32     {B K a b : ℝ} (_hB : 0 ≤ B) (hK : 0 ≤ K) (harg : ∀ i, |(L i).im| ≤ B)
33     {s : ℂ} (ha : a ≤ s.re) (hb : s.re ≤ b) (hi : |s.im| ≤ K) (i : ι) :
34     ‖branchedDirichletTerm c L i s‖ ≤
35       Real.exp (K * B) * (‖c i‖ / r i ^ a + ‖c i‖ / r i ^ b) := by
36   rw [branchedDirichletTerm_norm c L r hr hL]
37   have hs : ‖c i‖ / r i ^ s.re ≤ ‖c i‖ / r i ^ a + ‖c i‖ / r i ^ b := by
38     have h := weightedDirichletTerm_strip_bound (fun _ : ι => 1) r hr ha hb i
39     rw [weightedDirichletTerm_norm _ _ hr] at h
40     norm_num only [Nat.cast_one] at h
41     have h' := mul_le_mul_of_nonneg_left h (norm_nonneg (c i))
42     simpa only [mul_add, mul_one_div] using h'
43   have he : Real.exp (s.im * (L i).im) ≤ Real.exp (K * B) := by
44     apply Real.exp_le_exp.mpr
45     calc _ ≤ |s.im * (L i).im| := le_abs_self _
46          _ = |s.im| * |(L i).im| := abs_mul _ _
47          _ ≤ K * B := mul_le_mul hi (harg i) (abs_nonneg _) hK
48   calc
49     _ ≤ (‖c i‖ / r i ^ a + ‖c i‖ / r i ^ b) * Real.exp (K * B) :=
50       mul_le_mul hs he (Real.exp_nonneg _) (add_nonneg (div_nonneg (norm_nonneg _) (Real.rpow_nonneg (hr i).le _))
51         (div_nonneg (norm_nonneg _) (Real.rpow_nonneg (hr i).le _)))
52     _ = _ := mul_comm _ _
53 
54 /-- Absolute convergence at an individual complex parameter. -/
55 theorem branchedDirichlet_summable_norm {ι : Type*} (c L : ι → ℂ) (r : ι → ℝ)
56     (hr : ∀ i, 0 < r i) (hL : ∀ i, (L i).re = Real.log (r i))
57     {B : ℝ} (hB : 0 ≤ B) (harg : ∀ i, |(L i).im| ≤ B) (s : ℂ)
58     (hs : Summable (fun i => ‖c i‖ / r i ^ s.re)) :
59     Summable (fun i => ‖branchedDirichletTerm c L i s‖) := by
60   apply ((hs.add hs).mul_left (Real.exp (|s.im| * B))).of_norm_bounded
61   intro i
62   rw [norm_norm]
63   exact branchedDirichletTerm_strip_bound c L r hr hL hB (abs_nonneg _) harg le_rfl le_rfl le_rfl i
64 
65 /-- A local Weierstrass theorem for bounded choices of logarithmic arguments.
66 It retains all finite exceptional terms and does not require a global branch. -/
67 theorem branchedDirichlet_locally_uniform {ι : Type*} (c L : ι → ℂ) (r : ι → ℝ)
68     (hr : ∀ i, 0 < r i) (hL : ∀ i, (L i).re = Real.log (r i))
69     {B : ℝ} (hB : 0 ≤ B) (harg : ∀ i, |(L i).im| ≤ B) (U : Set ℂ)
70     (hs : ∀ s ∈ U, ∃ a b : ℝ, a < s.re ∧ s.re < b ∧
71       Summable (fun i => ‖c i‖ / r i ^ a) ∧ Summable (fun i => ‖c i‖ / r i ^ b)) :
72     HasSumLocallyUniformlyOn (branchedDirichletTerm c L)
73       (fun s => ∑' i, branchedDirichletTerm c L i s) U := by
74   apply hasSumLocallyUniformlyOn_of_of_forall_exists_nhds
75   intro s hsU
76   obtain ⟨a, b, ha, hb, hsa, hsb⟩ := hs s hsU
77   let V := {z : ℂ | a < z.re ∧ z.re < b ∧ |z.im| < |s.im| + 1}
78   have hV : IsOpen V := (isOpen_lt continuous_const Complex.continuous_re).inter
79     ((isOpen_lt Complex.continuous_re continuous_const).inter
80       (isOpen_lt Complex.continuous_im.abs continuous_const))
81   have hsV : s ∈ V := ⟨ha, hb, by linarith⟩
82   refine ⟨V, mem_nhdsWithin_of_mem_nhds (hV.mem_nhds hsV), ?_⟩
83   apply hasSumUniformlyOn_iff_tendstoUniformlyOn.mpr
84   apply tendstoUniformlyOn_tsum ((hsa.add hsb).mul_left (Real.exp ((|s.im| + 1) * B)))
85   intro i z hz
86   exact branchedDirichletTerm_strip_bound c L r hr hL hB (by positivity) harg hz.1.le hz.2.1.le hz.2.2.le i
87 
88 theorem branchedDirichlet_entire {ι : Type*} (c L : ι → ℂ) (r : ι → ℝ)
89     (hr : ∀ i, 0 < r i) (hL : ∀ i, (L i).re = Real.log (r i))
90     {B : ℝ} (hB : 0 ≤ B) (harg : ∀ i, |(L i).im| ≤ B)
91     (hs : ∀ t : ℝ, Summable (fun i => ‖c i‖ / r i ^ t)) :
92     HasSumLocallyUniformlyOn (branchedDirichletTerm c L)
93       (fun s => ∑' i, branchedDirichletTerm c L i s) univ ∧
94     Differentiable ℂ (fun s => ∑' i, branchedDirichletTerm c L i s) := by
95   have h := branchedDirichlet_locally_uniform c L r hr hL hB harg univ
96     (fun s _ => ⟨s.re - 1, s.re + 1, by linarith, by linarith, hs _, hs _⟩)
97   refine ⟨h, differentiableOn_univ.mp ?_⟩
98   exact h.summableLocallyUniformlyOn.differentiableOn isOpen_univ
99     (fun i s _ => branchedDirichletTerm_differentiable c L i s)
100 
101 theorem branchedDirichlet_halfplane {ι : Type*} (c L : ι → ℂ) (r : ι → ℝ)
102     (hr : ∀ i, 0 < r i) (hL : ∀ i, (L i).re = Real.log (r i))
103     {B : ℝ} (hB : 0 ≤ B) (harg : ∀ i, |(L i).im| ≤ B) (σ : ℝ)
104     (hs : ∀ t : ℝ, σ < t → Summable (fun i => ‖c i‖ / r i ^ t)) :
105     HasSumLocallyUniformlyOn (branchedDirichletTerm c L)
106       (fun s => ∑' i, branchedDirichletTerm c L i s) {s : ℂ | σ < s.re} ∧
107     DifferentiableOn ℂ (fun s => ∑' i, branchedDirichletTerm c L i s) {s : ℂ | σ < s.re} := by
108   have h := branchedDirichlet_locally_uniform c L r hr hL hB harg {s : ℂ | σ < s.re}
109     (fun s hs0 => ⟨(σ + s.re) / 2, s.re + 1, by dsimp at hs0; linarith,
110       by linarith, hs _ (by dsimp at hs0; linarith), hs _ (by dsimp at hs0; linarith)⟩)
111   exact ⟨h, h.summableLocallyUniformlyOn.differentiableOn
112     (isOpen_lt continuous_const Complex.continuous_re)
113     (fun i s _ => branchedDirichletTerm_differentiable c L i s)⟩
114 
115 end
116 end Komorebi.PaperIV

Back to source controls

Original file and source record

This copy matches the recorded source file. Its publication here does not change the work’s review status.

SHA-256: 178c673981e7d6339b218b4eab2225e4b8e5ed82915a6831e03fae0a4aa7fba8

Original source on GitHub

Back to Paper IV: Cyclic Analytic Functions, Reciprocal Families, and Spectral Zero Data