Current task: —

← Session 25 — ii′-5 R-bound: design + level-2 EM disc bound

#1336 assistant 2026-08-22 22:07:24.522 UTC · 436→2097 tok open ⤢
thinking (641 chars)
All fold lemmas compile. Now the main theorem. Let me write it in pieces: first nearZeros + the application-point setup + deriv identity as separate lemmas where possible, then the main theorem. Actually the deriv identity needs J_B from LogOfAnalyticFunction — an existential. Let me structure the main theorem as one big proof but I'll write it in two edits to keep each compile manageable: Edit A: nearZeros def + mem + a lemma `nearZeros_subset_image` (nearZeros ⊆ collZeros.image aff) + `sum_image_zeroMult` (the push-forward identity) + `sum_image_le` (the Σ_img ≤ Jensen). Edit B: the main theorem itself. Let me write Edit A now.
All fold lemmas compile. Now §10: nearZeros + the push-forward machinery.
tool: Edit
input
{
  "file_path": "D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiDisc.lean",
  "old_string": "  have hprod : (0:\u211d) \u2264 (Real.log |t| - 2) * (354 * Real.log |t| + 131) :=\n    mul_nonneg (sub_nonneg.mpr hL) (by nlinarith [hL])\n  nlinarith [hprod, hL]\n\nend NguyenRH1",
  "new_string": "  have hprod : (0:\u211d) \u2264 (Real.log |t| - 2) * (354 * Real.log |t| + 131) :=\n    mul_nonneg (sub_nonneg.mpr hL) (by nlinarith [hL])\n  nlinarith [hprod, hL]\n\n/-! ## 10. The near-zero finset and the affine push-forward -/\n\n/-- The nontrivial zeros in the open unit ordinate window about t. -/\ndef nearZeros (t : \u211d) : Finset \u2102 :=\n  (zeroDiscFinset t).filter fun \u03c1 => |\u03c1.im - t| < 1\n\ntheorem mem_nearZeros {t : \u211d} {\u03c1 : \u2102} :\n    \u03c1 \u2208 nearZeros t \u2194 \u03c1 \u2208 zeroDiscFinset t \u2227 |\u03c1.im - t| < 1 := Finset.mem_filter\n\n/-- The affine map is injective. -/\ntheorem affMap_injOn {t : \u211d} (s : Finset \u2102) :\n    Set.InjOn (fun w : \u2102 => discCenter t + (5 / 2 : \u2102) * w) s :=\n  fun a _ b _ hab => mul_left_cancel\u2080 (by norm_num : (5 / 2 : \u2102) \u2260 0) (add_left_cancel hab)\n\n/-- zeroMult at the affine image equals the scaled order. -/\ntheorem zeroMult_affMap {t : \u211d} (ht : 10 \u2264 |t|) {w : \u2102} (hw : w \u2208 collZeros ht) :\n    zeroMult (discCenter t + (5 / 2 : \u2102) * w) = analyticOrderNatAt (scaledZeta t) w := by\n  have h := analyticOrderNatAt_scaledZeta ht\n    (((mem_collZeros ht).mp hw).1.trans (rC_lt_one ht).le)\n  rw [h]\n  rfl\n\n/-- The pushed-forward sum over the image equals the collected sum. -/\ntheorem sum_image_zeroMult_div {t : \u211d} (ht : 10 \u2264 |t|) (g : \u2102 \u2192 \u2102) :\n    \u2211 \u03c1 \u2208 (collZeros ht).image (fun w : \u2102 => discCenter t + (5 / 2 : \u2102) * w), g \u03c1\n      = \u2211 w \u2208 collZeros ht, g (discCenter t + (5 / 2 : \u2102) * w) :=\n  Finset.sum_image (affMap_injOn _)\n\n/-- Every near zero lies in the affine image of the collected zeros. -/\ntheorem nearZeros_subset_image {t : \u211d} (ht : 10 \u2264 |t|) :\n    nearZeros t \u2286 (collZeros ht).image (fun w : \u2102 => discCenter t + (5 / 2 : \u2102) * w) := by\n  classical\n  intro \u03c1 h\u03c1\n  rw [mem_nearZeros] at h\u03c1\n  obtain \u27e8h\u03c1disc, h\u03c1im\u27e9 := h\u03c1\n  have h\u03c1nt : IsNontrivialZero \u03c1 := zeroDisc_isNontrivial h\u03c1disc\n  have h\u03c10 : riemannZeta \u03c1 = 0 := h\u03c1nt.1\n  have hnorm1 : \u2016\u03c1 - discCenter t\u2016 \u2264 Real.sqrt 5 := by\n    have hsq : Complex.normSq (\u03c1 - discCenter t) \u2264 5 := by\n      rw [Complex.normSq_apply]\n      have hre : (\u03c1 - discCenter t).re = \u03c1.re - 2 := by\n        simp [discCenter, sub_re, add_re, mul_re, ofReal_re, ofReal_im, I_re, I_im]\n      have him : (\u03c1 - discCenter t).im = \u03c1.im - t := by\n        simp [discCenter, sub_im, add_im, mul_im, ofReal_re, ofReal_im, I_re, I_im]\n      have h1 : (\u03c1.re - 2) ^ 2 \u2264 4 := by\n        have h2 : |\u03c1.re - 2| \u2264 2 := by\n          rw [abs_le]\n          constructor <;> linarith [h\u03c1nt.2.1, h\u03c1nt.2.2]\n        calc (\u03c1.re - 2) ^ 2 = |\u03c1.re - 2| ^ 2 := by rw [sq_abs]\n          _ \u2264 2 ^ 2 := pow_le_pow_left\u2080 (abs_nonneg _) h2 _\n          _ = 4 := by norm_num\n      have h2 : (\u03c1.im - t) ^ 2 \u2264 1 := by\n        have h3 : |\u03c1.im - t| \u2264 1 := h\u03c1im.le\n        calc (\u03c1.im - t) ^ 2 = |\u03c1.im - t| ^ 2 := by rw [sq_abs]\n          _ \u2264 1 ^ 2 := pow_le_pow_left\u2080 (abs_nonneg _) h3 1\n          _ = 1 := by norm_num\n      rw [hre, him]\n      nlinarith [h1, h2]\n    have h4 : \u2016\u03c1 - discCenter t\u2016 ^ 2 \u2264 5 := by\n      rw [\u2190 Complex.normSq_eq_norm_sq]\n      exact hsq\n    calc \u2016\u03c1 - discCenter t\u2016 = Real.sqrt (\u2016\u03c1 - discCenter t\u2016 ^ 2) :=\n          (Real.sqrt_sq (norm_nonneg _)).symm\n      _ \u2264 Real.sqrt 5 := Real.sqrt_le_sqrt h4\n  have h52 : Real.sqrt 5 \u2264 23 / 10 := by\n    have h1 : Real.sqrt 5 \u2264 Real.sqrt ((23 / 10) ^ 2) := Real.sqrt_le_sqrt (by norm_num)\n    rwa [Real.sqrt_sq (by norm_num)] at h1\n  have h25 : \u2016(2 / 5 : \u2102)\u2016 = 2 / 5 := by\n    rw [show (2 / 5 : \u2102) = ((2 / 5 : \u211d) : \u2102) by norm_num, Complex.norm_real,\n      Real.norm_eq_abs, abs_of_nonneg (by norm_num : (0:\u211d) \u2264 2 / 5)]\n  refine Finset.mem_image.mpr \u27e8(2 / 5 : \u2102) * (\u03c1 - discCenter t), ?_, ?_\u27e9\n  \u00b7 rw [mem_collZeros ht]\n    constructor\n    \u00b7 rw [norm_mul, h25]\n      calc (2 / 5 : \u211d) * \u2016\u03c1 - discCenter t\u2016 \u2264 (2 / 5) * (23 / 10) :=\n            mul_le_mul_of_nonneg_left (hnorm1.trans h52) (by norm_num)\n        _ = 23 / 25 := by norm_num\n        _ \u2264 rC ht := rC_ge ht\n    \u00b7 unfold scaledZeta\n      rw [show discCenter t + (5 / 2 : \u2102) * ((2 / 5 : \u2102) * (\u03c1 - discCenter t)) = \u03c1 by ring,\n        h\u03c10, zero_div]\n  \u00b7 ring\n\n/-- The image-sum of zeroMult is the collected mult-weighted count. -/\ntheorem sum_image_zeroMult_le {t : \u211d} (ht : 10 \u2264 |t|) :\n    \u2211 \u03c1 \u2208 (collZeros ht).image (fun w : \u2102 => discCenter t + (5 / 2 : \u2102) * w),\n        (zeroMult \u03c1 : \u211d)\n      \u2264 Real.log ((9 / 4) * |t| ^ 2) / Real.log (33 / 32) := by\n  classical\n  rw [Finset.sum_image (affMap_injOn _)]\n  calc \u2211 w \u2208 collZeros ht, (zeroMult (discCenter t + (5 / 2 : \u2102) * w) : \u211d)\n      = \u2211 w \u2208 collZeros ht, (analyticOrderNatAt (scaledZeta t) w : \u211d) :=\n        Finset.sum_congr rfl fun w hw => by rw [zeroMult_affMap ht hw]\n    _ = (collMultSum ht : \u211d) := by\n        unfold collMultSum\n        rw [Nat.cast_sum]\n    _ \u2264 Real.log ((9 / 4) * |t| ^ 2) / Real.log (33 / 32) := by\n        exact scaledZeroFinset_sum_order_le (t := t) ht (r := rC ht)\n          (hr := (rC_lt_one ht).le) (rC_le ht)\n\nend NguyenRH1"
}
raw content_json (database row)
[{"type":"thinking","thinking":"All fold lemmas compile. Now the main theorem. Let me write it in pieces: first nearZeros + the application-point setup + deriv identity as separate lemmas where possible, then the main theorem. Actually the deriv identity needs J_B from LogOfAnalyticFunction — an existential. Let me structure the main theorem as one big proof but I'll write it in two edits to keep each compile manageable: \n\nEdit A: nearZeros def + mem + a lemma `nearZeros_subset_image` (nearZeros ⊆ collZeros.image aff) + `sum_image_zeroMult` (the push-forward identity) + `sum_image_le` (the Σ_img ≤ Jensen).\n\nEdit B: the main theorem itself.\n\nLet me write Edit A now.","signature":""},{"type":"text","text":"All fold lemmas compile. Now §10: nearZeros + the push-forward machinery."},{"type":"tool_use","id":"Edit_84","name":"Edit","input":{"file_path":"D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiDisc.lean","old_string":"  have hprod : (0:ℝ) ≤ (Real.log |t| - 2) * (354 * Real.log |t| + 131) :=\n    mul_nonneg (sub_nonneg.mpr hL) (by nlinarith [hL])\n  nlinarith [hprod, hL]\n\nend NguyenRH1","new_string":"  have hprod : (0:ℝ) ≤ (Real.log |t| - 2) * (354 * Real.log |t| + 131) :=\n    mul_nonneg (sub_nonneg.mpr hL) (by nlinarith [hL])\n  nlinarith [hprod, hL]\n\n/-! ## 10. The near-zero finset and the affine push-forward -/\n\n/-- The nontrivial zeros in the open unit ordinate window about t. -/\ndef nearZeros (t : ℝ) : Finset ℂ :=\n  (zeroDiscFinset t).filter fun ρ => |ρ.im - t| < 1\n\ntheorem mem_nearZeros {t : ℝ} {ρ : ℂ} :\n    ρ ∈ nearZeros t ↔ ρ ∈ zeroDiscFinset t ∧ |ρ.im - t| < 1 := Finset.mem_filter\n\n/-- The affine map is injective. -/\ntheorem affMap_injOn {t : ℝ} (s : Finset ℂ) :\n    Set.InjOn (fun w : ℂ => discCenter t + (5 / 2 : ℂ) * w) s :=\n  fun a _ b _ hab => mul_left_cancel₀ (by norm_num : (5 / 2 : ℂ) ≠ 0) (add_left_cancel hab)\n\n/-- zeroMult at the affine image equals the scaled order. -/\ntheorem zeroMult_affMap {t : ℝ} (ht : 10 ≤ |t|) {w : ℂ} (hw : w ∈ collZeros ht) :\n    zeroMult (discCenter t + (5 / 2 : ℂ) * w) = analyticOrderNatAt (scaledZeta t) w := by\n  have h := analyticOrderNatAt_scaledZeta ht\n    (((mem_collZeros ht).mp hw).1.trans (rC_lt_one ht).le)\n  rw [h]\n  rfl\n\n/-- The pushed-forward sum over the image equals the collected sum. -/\ntheorem sum_image_zeroMult_div {t : ℝ} (ht : 10 ≤ |t|) (g : ℂ → ℂ) :\n    ∑ ρ ∈ (collZeros ht).image (fun w : ℂ => discCenter t + (5 / 2 : ℂ) * w), g ρ\n      = ∑ w ∈ collZeros ht, g (discCenter t + (5 / 2 : ℂ) * w) :=\n  Finset.sum_image (affMap_injOn _)\n\n/-- Every near zero lies in the affine image of the collected zeros. -/\ntheorem nearZeros_subset_image {t : ℝ} (ht : 10 ≤ |t|) :\n    nearZeros t ⊆ (collZeros ht).image (fun w : ℂ => discCenter t + (5 / 2 : ℂ) * w) := by\n  classical\n  intro ρ hρ\n  rw [mem_nearZeros] at hρ\n  obtain ⟨hρdisc, hρim⟩ := hρ\n  have hρnt : IsNontrivialZero ρ := zeroDisc_isNontrivial hρdisc\n  have hρ0 : riemannZeta ρ = 0 := hρnt.1\n  have hnorm1 : ‖ρ - discCenter t‖ ≤ Real.sqrt 5 := by\n    have hsq : Complex.normSq (ρ - discCenter t) ≤ 5 := by\n      rw [Complex.normSq_apply]\n      have hre : (ρ - discCenter t).re = ρ.re - 2 := by\n        simp [discCenter, sub_re, add_re, mul_re, ofReal_re, ofReal_im, I_re, I_im]\n      have him : (ρ - discCenter t).im = ρ.im - t := by\n        simp [discCenter, sub_im, add_im, mul_im, ofReal_re, ofReal_im, I_re, I_im]\n      have h1 : (ρ.re - 2) ^ 2 ≤ 4 := by\n        have h2 : |ρ.re - 2| ≤ 2 := by\n          rw [abs_le]\n          constructor <;> linarith [hρnt.2.1, hρnt.2.2]\n        calc (ρ.re - 2) ^ 2 = |ρ.re - 2| ^ 2 := by rw [sq_abs]\n          _ ≤ 2 ^ 2 := pow_le_pow_left₀ (abs_nonneg _) h2 _\n          _ = 4 := by norm_num\n      have h2 : (ρ.im - t) ^ 2 ≤ 1 := by\n        have h3 : |ρ.im - t| ≤ 1 := hρim.le\n        calc (ρ.im - t) ^ 2 = |ρ.im - t| ^ 2 := by rw [sq_abs]\n          _ ≤ 1 ^ 2 := pow_le_pow_left₀ (abs_nonneg _) h3 1\n          _ = 1 := by norm_num\n      rw [hre, him]\n      nlinarith [h1, h2]\n    have h4 : ‖ρ - discCenter t‖ ^ 2 ≤ 5 := by\n      rw [← Complex.normSq_eq_norm_sq]\n      exact hsq\n    calc ‖ρ - discCenter t‖ = Real.sqrt (‖ρ - discCenter t‖ ^ 2) :=\n          (Real.sqrt_sq (norm_nonneg _)).symm\n      _ ≤ Real.sqrt 5 := Real.sqrt_le_sqrt h4\n  have h52 : Real.sqrt 5 ≤ 23 / 10 := by\n    have h1 : Real.sqrt 5 ≤ Real.sqrt ((23 / 10) ^ 2) := Real.sqrt_le_sqrt (by norm_num)\n    rwa [Real.sqrt_sq (by norm_num)] at h1\n  have h25 : ‖(2 / 5 : ℂ)‖ = 2 / 5 := by\n    rw [show (2 / 5 : ℂ) = ((2 / 5 : ℝ) : ℂ) by norm_num, Complex.norm_real,\n      Real.norm_eq_abs, abs_of_nonneg (by norm_num : (0:ℝ) ≤ 2 / 5)]\n  refine Finset.mem_image.mpr ⟨(2 / 5 : ℂ) * (ρ - discCenter t), ?_, ?_⟩\n  · rw [mem_collZeros ht]\n    constructor\n    · rw [norm_mul, h25]\n      calc (2 / 5 : ℝ) * ‖ρ - discCenter t‖ ≤ (2 / 5) * (23 / 10) :=\n            mul_le_mul_of_nonneg_left (hnorm1.trans h52) (by norm_num)\n        _ = 23 / 25 := by norm_num\n        _ ≤ rC ht := rC_ge ht\n    · unfold scaledZeta\n      rw [show discCenter t + (5 / 2 : ℂ) * ((2 / 5 : ℂ) * (ρ - discCenter t)) = ρ by ring,\n        hρ0, zero_div]\n  · ring\n\n/-- The image-sum of zeroMult is the collected mult-weighted count. -/\ntheorem sum_image_zeroMult_le {t : ℝ} (ht : 10 ≤ |t|) :\n    ∑ ρ ∈ (collZeros ht).image (fun w : ℂ => discCenter t + (5 / 2 : ℂ) * w),\n        (zeroMult ρ : ℝ)\n      ≤ Real.log ((9 / 4) * |t| ^ 2) / Real.log (33 / 32) := by\n  classical\n  rw [Finset.sum_image (affMap_injOn _)]\n  calc ∑ w ∈ collZeros ht, (zeroMult (discCenter t + (5 / 2 : ℂ) * w) : ℝ)\n      = ∑ w ∈ collZeros ht, (analyticOrderNatAt (scaledZeta t) w : ℝ) :=\n        Finset.sum_congr rfl fun w hw => by rw [zeroMult_affMap ht hw]\n    _ = (collMultSum ht : ℝ) := by\n        unfold collMultSum\n        rw [Nat.cast_sum]\n    _ ≤ Real.log ((9 / 4) * |t| ^ 2) / Real.log (33 / 32) := by\n        exact scaledZeroFinset_sum_order_le (t := t) ht (r := rC ht)\n          (hr := (rC_lt_one ht).le) (rC_le ht)\n\nend NguyenRH1"},"extra_content":null}]