Paper IV · Lean source

SublinearExponentialRigidity.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/SublinearExponentialRigidity.lean90 lines

Original source pathPaper_IV_Verification_Closeout_v1.1.0/formalization/lean/KomorebiPaperIV/SublinearExponentialRigidity.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.CanonicalProductQuotient
6 import Mathlib.Analysis.Complex.HasPrimitives
7 import Mathlib.Analysis.Complex.BorelCaratheodory
8 
9 namespace Komorebi.PaperIV
10 noncomputable section
11 open Set Filter Metric
12 open scoped Topology
13 
14 /-- A normalized entire function without zeros has an entire logarithm,
15 constructed by integrating its logarithmic derivative. -/
16 theorem entire_normalized_exists_log {f : ℂ → ℂ} (hf : Differentiable ℂ f)
17     (hn : ∀ z, f z ≠ 0) (h0 : f 0 = 1) :
18     ∃ g : ℂ → ℂ, Differentiable ℂ g ∧ g 0 = 0 ∧ ∀ z, Complex.exp (g z) = f z := by
19   have hd : Differentiable ℂ (fun z => deriv f z / f z) := by
20     intro z
21     exact (hf.analyticAt z).deriv.differentiableAt.div (hf z) (hn z)
22   obtain ⟨g, hg0, hg⟩ := hd.isExactOn_univ.with_val_at 0 0
23   have hg' : Differentiable ℂ g := fun z => (hg z (mem_univ z)).differentiableAt
24   have hH : ∀ z, HasDerivAt (fun w => f w * Complex.exp (-g w)) 0 z := by
25     intro z
26     convert! ((hf z).hasDerivAt).mul ((hg z (mem_univ z)).neg.cexp) using 1
27     field_simp [hn z]
28     ring
29   have he : ∀ z, f z * Complex.exp (-g z) = 1 := by
30     intro z
31     have h := is_const_of_deriv_eq_zero (fun w => (hH w).differentiableAt)
32       (fun w => (hH w).deriv) z 0
33     simpa only [hg0, h0, neg_zero, Complex.exp_zero, one_mul] using h
34   refine ⟨g, hg', hg0, fun z => ?_⟩
35   have h := he z
36   rw [Complex.exp_neg, ← div_eq_mul_inv] at h
37   exact ((div_eq_one_iff_eq (Complex.exp_ne_zero _)).mp h).symm
38 
39 /-- Borel-Carathéodory turns a sublinear bound on real parts into rigidity.
40 The bound is uniform throughout each disk, not merely along one ray. -/
41 theorem entire_realPart_sublinear_constant {g : ℂ → ℂ} (hg : Differentiable ℂ g)
42     (h0 : g 0 = 0) {M : ℝ → ℝ}
43     (hp : ∀ᶠ R in atTop, 0 < M R)
44     (hM : Tendsto (fun R => M R / R) atTop (𝓝 0))
45     (hb : ∀ᶠ R in atTop, ∀ w : ℂ, ‖w‖ < R → (g w).re ≤ M R) : g = 0 := by
46   funext z
47   have hb' : ∀ᶠ R in atTop, ‖g z‖ ≤ 2 * (M R / R) * ‖z‖ / (1 - ‖z‖ / R) := by
48     filter_upwards [hp, hb, eventually_gt_atTop (‖z‖ + 1)] with R hRp hRb hR
49     have hR0 : 0 < R := by linarith [norm_nonneg z]
50     have h := Complex.borelCaratheodory_zero hRp hg.differentiableOn
51       (fun w hw => hRb w (mem_ball_zero_iff.mp hw)) hR0
52       (mem_ball_zero_iff.mpr (by linarith)) h0
53     convert h using 1
54     field_simp
55   have hsmall : Tendsto (fun R : ℝ => ‖z‖ / R) atTop (𝓝 0) := by
56     simpa only [div_eq_mul_inv, mul_zero] using (tendsto_inv_atTop_zero.const_mul ‖z‖)
57   have ht : Tendsto (fun R => 2 * (M R / R) * ‖z‖ / (1 - ‖z‖ / R)) atTop (𝓝 0) := by
58     simpa only [mul_zero, zero_mul, sub_zero, zero_div] using!
59       ((hM.const_mul 2).mul_const ‖z‖).div (tendsto_const_nhds.sub hsmall) (by norm_num)
60   exact norm_eq_zero.mp (le_antisymm (ge_of_tendsto ht hb') (norm_nonneg _))
61 
62 /-- The remaining Hadamard reduction can use any proved uniform sublinear
63 log-norm bound for the normalized zero-free quotient. -/
64 theorem entire_zeroFree_sublinear_logNorm_eq_one {f : ℂ → ℂ}
65     (hf : Differentiable ℂ f) (hn : ∀ z, f z ≠ 0) (h0 : f 0 = 1) {M : ℝ → ℝ}
66     (hp : ∀ᶠ R in atTop, 0 < M R)
67     (hM : Tendsto (fun R => M R / R) atTop (𝓝 0))
68     (hb : ∀ᶠ R in atTop, ∀ w : ℂ, ‖w‖ < R → Real.log ‖f w‖ ≤ M R) :
69     f = 1 := by
70   obtain ⟨g, hg, hg0, he⟩ := entire_normalized_exists_log hf hn h0
71   have hre : ∀ z, (g z).re = Real.log ‖f z‖ := by
72     intro z
73     rw [← he z, Complex.norm_exp, Real.log_exp]
74   have hgzero : g = 0 := entire_realPart_sublinear_constant hg hg0 hp hM (by
75     filter_upwards [hb] with R hR w hw
76     rw [hre]
77     exact hR w hw)
78   funext z
79   rw [← he z, hgzero]
80   exact Complex.exp_zero
81 
82 theorem entireReducedDenominator_product_quotient_has_log {N : ℕ} (hN : 2 ≤ N) :
83     ∃ g : ℂ → ℂ, Differentiable ℂ g ∧ g 0 = 0 ∧
84       ∀ z, Complex.exp (g z) * fullCanonicalProduct (entireReducedDenominator N) z = entireReducedDenominator N z := by
85   obtain ⟨hd, hn, h0, he⟩ := entireReducedDenominator_product_quotient hN
86   obtain ⟨g, hg, hg0, hgexp⟩ := entire_normalized_exists_log hd hn h0
87   exact ⟨g, hg, hg0, fun z => by rw [hgexp, mul_comm]; exact he z⟩
88 
89 end
90 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: ea2cbf4d50585a3a302b0d8e71a6933f43a5b81d31b79b3810bcb9532b48b28e

Original source on GitHub

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