Paper IV · Lean source
LargeZeroCompletion.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 (2)
KomorebiPaperIV/LargeZeroCompletion.lean142 lines
Original source path
Paper_IV_Verification_Closeout_v1.1.0/formalization/lean/KomorebiPaperIV/LargeZeroCompletion.leanSkip declarations and read code
1 /-
2 Copyright (c) 2026 Komorebi P. All rights reserved.
3 Authors: Komorebi P.
4 -/
5 import KomorebiPaperIV.ZeroEnumeration
6 import KomorebiPaperIV.SignedDerivativeAsymptotics
7
8 namespace Komorebi.PaperIV
9 noncomputable section
10 open Metric Set
11
12 /-- The derivative error is measured at the actual zero, with the same
13 exponential rate as in the manuscript, rather than only at its lattice center. -/
14 theorem signedPositiveZero_derivative_asymptotic {N : ℕ} (hN : 3 ≤ N) :
15 ∃ C : ℝ, 0 < C ∧ ∃ M : ℕ, ∀ m ≥ M,
16 |‖deriv (canonicalSignedDenominator N) (signedPositiveZero N m : ℂ)‖ /
17 ((2 * Real.sin (Real.pi / N) / N) *
18 Real.exp (Real.cos (Real.pi / N) * signedPositiveZero N m)) - 1| ≤
19 C * Real.exp (-signedPolygonGap N * signedPositiveZero N m) := by
20 obtain ⟨C0, _, M, hM⟩ := signedPositiveZero_local_strings hN
21 let B := (‖signedZeroFrequency N‖ + 2) / ‖signedZeroFrequency N‖
22 let S := signedRemainderScale N
23 let r := 1 / ‖signedZeroFrequency N‖
24 have hB : 0 < B := div_pos (by positivity) (norm_pos_iff.mpr (signedZeroFrequency_ne_zero (by omega)))
25 have hS : 0 < S := by
26 have h := signedRemainderEnvelope_pos hN 0
27 simpa only [signedRemainderEnvelope, mul_zero, Real.exp_zero, mul_one] using h
28 refine ⟨B * S * Real.exp (signedPolygonGap N * r), by positivity, M, ?_⟩
29 intro m hm
30 have hx := (hM m hm).1
31 have hbound := canonicalSignedDenominator_derivative_modulus_error hN
32 (signedZeroCenter_ge_radius (by omega) m) hx.2.2 hx.2.1
33 have hdelta : signedPositiveZero N m - signedZeroCenter N m ≤ r := by
34 have hb : |signedPositiveZero N m - signedZeroCenter N m| ≤ r := by
35 simpa only [mem_closedBall, dist_eq_norm, ← Complex.ofReal_sub, Complex.norm_real,
36 Real.norm_eq_abs] using hx.2.2
37 exact (le_abs_self _).trans hb
38 have hg : 0 < signedPolygonGap N := signedPolygonGap_pos hN
39 have he : Real.exp (-signedPolygonGap N * signedZeroCenter N m) ≤
40 Real.exp (signedPolygonGap N * r) *
41 Real.exp (-signedPolygonGap N * signedPositiveZero N m) := by
42 rw [← Real.exp_add]
43 apply Real.exp_le_exp.mpr
44 nlinarith
45 calc
46 _ ≤ B * (S * Real.exp (-signedPolygonGap N * signedZeroCenter N m)) := hbound
47 _ ≤ B * (S * (Real.exp (signedPolygonGap N * r) *
48 Real.exp (-signedPolygonGap N * signedPositiveZero N m))) := by gcongr
49 _ = _ := by ring
50
51 /-- Unique root-of-unity orbit and lattice index for every sufficiently large
52 zero, with one fixed cutoff for the named sequence. -/
53 theorem signedPositiveZero_unique_global_strings {N : ℕ} (hN : 3 ≤ N) (K : ℕ) :
54 ∃ M : ℕ, K ≤ M ∧ ∃ R : ℝ, 0 < R ∧ ∀ z : ℂ, R ≤ ‖z‖ → canonicalSignedDenominator N z = 0 →
55 ∃! p : {p : Fin N × ℕ // M ≤ p.2},
56 z = canonicalPrimitiveRoot N ^ p.val.1.val * (signedPositiveZero N p.val.2 : ℂ) := by
57 let : NeZero N := ⟨by omega⟩
58 have hn : 0 < N := by omega
59 have homega := canonicalPrimitiveRoot_isPrimitive hn
60 obtain ⟨C, _, M0, hM0⟩ := signedPositiveZero_local_strings hN
61 let M := max M0 K
62 have hM (m : ℕ) (hm : M ≤ m) := hM0 m (le_trans (le_max_left M0 K) hm)
63 obtain ⟨R, hR, hex⟩ := canonicalSignedDenominator_large_zero_orbits hN M
64 have hinj : Set.InjOn (signedPositiveZero N) (Ici M) := by
65 intro m hm n hn he
66 apply signedZeroCenter_disk_index_unique (by omega) (hM m hm).1.2.2
67 rw [he]
68 exact (hM n hn).1.2.2
69 refine ⟨M, le_max_right M0 K, R, hR, ?_⟩
70 intro z hz hz0
71 obtain ⟨k, _, m, hm, hb, _, _, _⟩ := hex z hz hz0
72 have hu : (canonicalPrimitiveRoot N ^ k) ^ N = 1 := by
73 rw [← pow_mul, Nat.mul_comm, pow_mul, homega.pow_eq_one, one_pow]
74 have he := (hM m hm).2.2.2 (canonicalPrimitiveRoot N ^ k * z)
75 ⟨hb, by rw [canonicalSignedDenominator_rotation hn hu]; exact hz0⟩
76 have hui : ((canonicalPrimitiveRoot N ^ k)⁻¹) ^ N = 1 := by rw [inv_pow, hu, inv_one]
77 obtain ⟨j, hj, hjinv⟩ := homega.eq_pow_of_pow_eq_one hui
78 have hu0 : canonicalPrimitiveRoot N ^ k ≠ 0 := by intro h; simp [h, hn.ne'] at hu
79 have hzrep : z = canonicalPrimitiveRoot N ^ j * (signedPositiveZero N m : ℂ) := by
80 rw [← he, hjinv, ← mul_assoc, inv_mul_cancel₀ hu0, one_mul]
81 refine ⟨⟨(⟨j, hj⟩, m), hm⟩, hzrep, ?_⟩
82 intro p hp
83 have heq : canonicalPrimitiveRoot N ^ p.val.1.val * (signedPositiveZero N p.val.2 : ℂ) =
84 canonicalPrimitiveRoot N ^ j * (signedPositiveZero N m : ℂ) := hp.symm.trans hzrep
85 have hnorm := congrArg norm heq
86 simp only [norm_mul, norm_pow, homega.norm'_eq_one hn.ne', one_pow, one_mul,
87 Complex.norm_real, Real.norm_eq_abs, abs_of_pos (signedPositiveZero_pos (N := N) (by omega) _)] at hnorm
88 have hmidx : p.val.2 = m := hinj p.property hm hnorm
89 have hkidx : p.val.1.val = j := by
90 apply homega.pow_inj p.val.1.isLt hj
91 rw [hmidx] at heq
92 exact mul_right_cancel₀ (Complex.ofReal_ne_zero.mpr (ne_of_gt (signedPositiveZero_pos (by omega) m))) heq
93 apply Subtype.ext
94 exact Prod.ext (Fin.ext hkidx) hmidx
95
96 /-- The exact derivative covariance at each named zero. -/
97 theorem signedPositiveZero_derivative_rotation {N : ℕ} (hN : 2 ≤ N) (k m : ℕ) :
98 deriv (canonicalSignedDenominator N)
99 (canonicalPrimitiveRoot N ^ k * (signedPositiveZero N m : ℂ)) =
100 (canonicalPrimitiveRoot N ^ k)⁻¹ *
101 deriv (canonicalSignedDenominator N) (signedPositiveZero N m : ℂ) := by
102 have hn : 0 < N := by omega
103 have hu : (canonicalPrimitiveRoot N ^ k) ^ N = 1 := by
104 rw [← pow_mul, Nat.mul_comm, pow_mul, (canonicalPrimitiveRoot_isPrimitive hn).pow_eq_one, one_pow]
105 have h := canonicalSignedDenominator_derivative_rotation hn hu (signedPositiveZero N m : ℂ)
106 have hu0 : canonicalPrimitiveRoot N ^ k ≠ 0 := by intro h; simp [h, hn.ne'] at hu
107 apply (mul_right_cancel₀ hu0)
108 rw [h]
109 field_simp
110
111 /-- The complete large-zero statement: one tail cutoff, unique global orbit
112 indices, actual-zero displacement, derivative covariance, and the derivative
113 modulus estimate at the actual zero. All constants are derived. -/
114 theorem canonicalSignedDenominator_large_zero_strings {N : ℕ} (hN : 3 ≤ N) :
115 0 < signedPolygonGap N ∧ ∃ M : ℕ, ∃ C : ℝ, 0 < C ∧ ∃ B : ℝ, 0 < B ∧ ∃ R : ℝ, 0 < R ∧
116 (∀ m ≥ M, isLocalizedPositiveZero N m (signedPositiveZero N m) ∧
117 analyticOrderAt (canonicalSignedDenominator N) (signedPositiveZero N m : ℂ) = 1 ∧
118 |signedPositiveZero N m - signedZeroCenter N m| ≤
119 C * Real.exp (-signedPolygonGap N * signedZeroCenter N m) ∧
120 |‖deriv (canonicalSignedDenominator N) (signedPositiveZero N m : ℂ)‖ /
121 ((2 * Real.sin (Real.pi / N) / N) *
122 Real.exp (Real.cos (Real.pi / N) * signedPositiveZero N m)) - 1| ≤
123 B * Real.exp (-signedPolygonGap N * signedPositiveZero N m)) ∧
124 (∀ z : ℂ, R ≤ ‖z‖ → canonicalSignedDenominator N z = 0 →
125 ∃! p : {p : Fin N × ℕ // M ≤ p.2},
126 z = canonicalPrimitiveRoot N ^ p.val.1.val * (signedPositiveZero N p.val.2 : ℂ)) ∧
127 (∀ k m : ℕ, deriv (canonicalSignedDenominator N)
128 (canonicalPrimitiveRoot N ^ k * (signedPositiveZero N m : ℂ)) =
129 (canonicalPrimitiveRoot N ^ k)⁻¹ *
130 deriv (canonicalSignedDenominator N) (signedPositiveZero N m : ℂ)) := by
131 obtain ⟨C, hC, M0, hM0⟩ := signedPositiveZero_local_strings hN
132 obtain ⟨B, hB, M1, hM1⟩ := signedPositiveZero_derivative_asymptotic hN
133 obtain ⟨M, hM, R, hR, hex⟩ := signedPositiveZero_unique_global_strings hN (max M0 M1)
134 refine ⟨signedPolygonGap_pos hN, M, C, hC, B, hB, R, hR, ?_, hex,
135 signedPositiveZero_derivative_rotation (by omega)⟩
136 intro m hm
137 have hm0 := hM0 m (le_trans (le_max_left M0 M1) (le_trans hM hm))
138 have hm1 := hM1 m (le_trans (le_max_right M0 M1) (le_trans hM hm))
139 exact ⟨hm0.1, hm0.2.1, hm0.2.2.1, hm1⟩
140
141 end
142 end Komorebi.PaperIV
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: 639cd3a5ad93a26eadb54adee43c2a8be485e56c1a984851340aebcde89c3684
Back to Paper IV: Cyclic Analytic Functions, Reciprocal Families, and Spectral Zero Data