Current task: —

← Session 35 — ii′-6-R: Lagarias 6.1 right-tail re-proof (E-032/D-073)

#2118 assistant 2026-08-26 05:20:02.797 UTC · 19073→2929 tok open ⤢
thinking (6340 chars)
The kernel pattern is clear. For the V_left kernel at w = 3+it (kFun n (3+it) = ((3+it)/(2+it))ⁿ − 1): ‖kFun n (3+it)‖ ≤ ‖((3+it)/(2+it))ⁿ‖ + 1 = ‖(3+it)/(2+it)‖ⁿ + 1. ‖(3+it)/(2+it)‖² = (9+t²)/(4+t²) = 1 + 5/(4+t²). So ‖(3+it)/(2+it)‖ⁿ = (1+5/(4+t²))^{n/2}. Bound: (1+x)^{n/2} ≤ exp(nx/2) — with x = 5/(4+t²): ≤ exp(5n/(2(4+t²))) ≤ e^{5/2} for n ≤ t² (then 4+t² ≥ t² ≥ n ⟹ 5n/(2(4+t²)) ≤ 5/2 ✓). The (1+x)^{n/2} ≤ exp(nx/2) step: write (1+x)^{n/2} = ((1+x)^{1/2})ⁿ... — actually the cleanest: ‖(3+it)/(2+it)‖ = ((1+5/(4+t²)))^{1/2}·... — hmm, norm is sqrt of normSq-ratio: ‖a/b‖ = ‖a‖/‖b‖ = √(9+t²)/√(4+t²) = √((9+t²)/(4+t²)) ✓. Then ‖·‖ⁿ = ((9+t²)/(4+t²))^{n/2}. To bound by e^{5/2}: (9+t²)/(4+t²) = 1 + 5/(4+t²) ≤ 1 + 5/n (since 4+t² ≥ n)... ≤ e^{5/n} (add_one_le_exp: 1+5/n ≤ e^{5/n} — wait add_one_le_exp: 1 + x ≤ e^x — yes 1+5/n ≤ e^{5/n} ✓). Then ((9+t²)/(4+t²))^{n/2} ≤ (e^{5/n})^{n/2} = e^{5/2} ✓. Formally: ‖(3+it)/(2+it)‖ⁿ = (((9+t²)/(4+t²))^{1/2})ⁿ = ((9+t²)/(4+t²))^{n/2}. In Lean: ‖a‖ⁿ with ‖a‖ = √Q: (√Q)ⁿ = Q^{n/2} — Real.sqrt_pow? or: ((√Q)ⁿ)² = (Q^{1/2})^{2·(n/2)}... For natural n: (√Q)ⁿ = √(Qⁿ) (Real.sqrt_pow n Q : √(Q^n) = (√Q)^n — there's Real.sqrt_pow : (Real.sqrt x) ^ n = Real.sqrt (x ^ n)). So ‖a‖ⁿ = √(Qⁿ) ≤ √(e⁵) hmm — Qⁿ ≤ (e^{5/n})ⁿ = e⁵: then √(Qⁿ) ≤ √(e⁵) = e^{5/2} (Real.sqrt_le_sqrt + Real.sqrt_exp (e⁵)^{1/2} = e^{5/2}: Real.sqrt_exp x : Real.sqrt (Real.exp x) = Real.exp (x/2) ✓). So: ‖(3+it)/(2+it)‖ⁿ = √(Qⁿ) where Q = (9+t²)/(4+t²): - ‖(3+it)/(2+it)‖ = ‖3+it‖/‖2+it‖; ‖3+it‖² = 9+t², ‖2+it‖² = 4+t² — via Complex.normSq and normSq_eq_norm_sq. So ‖ratio‖² = (9+t²)/(4+t²) (norm_div, sq). - Q ≤ e^{5/n}: 1+5/(4+t²) ≤ 1+5/n ≤ e^{5/n}: the first ≤: 5/(4+t²) ≤ 5/n ⟺ 5n ≤ 5(4+t²) ⟺ n ≤ 4+t² ✓ (n ≤ t²). The div comparison: div_le_div_iff... (5/(4+t²)) ≤ (5/n) via div_le_div (by norm_num : 0<5) hn_4t2_pos n_pos hle... - Qⁿ ≤ (e^{5/n})ⁿ = e⁵ (pow_le_pow_left₀ Q_nonneg Q_le n; (e^{5/n})ⁿ = e⁵ via Real.exp_nat_mul as in the e⁴ lemma). - ‖ratio‖ⁿ = (‖ratio‖²)^{n/2}: hmm — cleaner: ‖ratio‖ⁿ = √((‖ratio‖²)ⁿ)? Using Real.sqrt_pow: √(Qⁿ) = (√Q)ⁿ and ‖ratio‖ = √Q (Q = ‖ratio‖² with ‖ratio‖ ≥ 0: Real.sqrt_sq (norm_nonneg)). So ‖ratio‖ⁿ = (√Q)ⁿ = √(Qⁿ) ≤ √(e⁵) = e^{5/2}. The lemma: ```lean theorem kFun_three_add_it_norm_le_exp_five_halves_add_one {n : ℕ} {t : ℝ} (hT : (n : ℝ) ≤ t ^ 2) : ‖kFun n ((3 : ℝ) + t * Complex.I)‖ ≤ Real.exp (5 / 2) + 1 := by rcases Nat.eq_zero_or_pos n with hn | hn · subst hn; simp only [kFun, pow_zero, sub_self, norm_zero]; positivity · have hnR : (1:ℝ) ≤ (n : ℝ) := by exact_mod_cast hn -- Q = (9+t²)/(4+t²) ≤ e^{5/n} have ht2 : (0:ℝ) < 4 + t ^ 2 := by positivity have hQpos : (0:ℝ) ≤ (9 + t ^ 2) / (4 + t ^ 2) := by positivity have hn4t2 : (n:ℝ) ≤ 4 + t ^ 2 := by linarith [hT] have hQle : (9 + t ^ 2) / (4 + t ^ 2) ≤ Real.exp (5 / (n : ℝ)) := by have h1 : (9 + t ^ 2) / (4 + t ^ 2) = 1 + 5 / (4 + t ^ 2) := by field_simp [ht2.ne'] ring rw [h1] have h2 : 5 / (4 + t ^ 2) ≤ 5 / (n : ℝ) := (div_le_div_iff_of_pos_left (by norm_num) ht2 (by positivity)).mpr hn4t2 have h3 := Real.add_one_le_exp (5 / (n : ℝ)) linarith have hQn : ((9 + t ^ 2) / (4 + t ^ 2)) ^ n ≤ Real.exp 5 := by calc ((9 + t ^ 2) / (4 + t ^ 2)) ^ n ≤ (Real.exp (5 / (n : ℝ))) ^ n := pow_le_pow_left₀ hQpos hQle n _ = Real.exp 5 := by rw [← Real.exp_nat_mul] congr 1 have hn0 : (n : ℝ) ≠ 0 := by exact_mod_cast hn.ne' field_simp [hn0] -- norm computation have hnormsq : ‖((3:ℝ) + t * Complex.I) / ((2:ℝ) + t * Complex.I)‖ ^ 2 = (9 + t ^ 2) / (4 + t ^ 2) := by rw [norm_div, div_pow, ← Complex.normSq_eq_norm_sq, ← Complex.normSq_eq_norm_sq, div_eq_div_iff ...] ... ``` Hmm — the norm-sq computation: ‖a/b‖² = ‖a‖²/‖b‖² = normSq a/normSq b (Complex.normSq_eq_norm_sq: normSq z = ‖z‖^2 ✓). normSq(3+it) = 9+t² (Complex.normSq_apply: re²+im² = 9+t²); normSq(2+it) = 4+t². So: ``` have hns3 : Complex.normSq ((3:ℝ) + t * Complex.I) = 9 + t ^ 2 := by simp [Complex.normSq_apply] ring -- 3*3 + t*t = 9 + t^2 have hns2 : Complex.normSq ((2:ℝ) + t * Complex.I) = 4 + t ^ 2 := by simp [Complex.normSq_apply] ring have hnorm : ‖((3:ℝ) + t * Complex.I) / ((2:ℝ) + t * Complex.I)‖ = Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2)) := by rw [norm_div, ← Real.sqrt_div (by positivity), ← Complex.normSq_eq_norm_sq, ← Complex.normSq_eq_norm_sq, hns3, hns2] ``` Real.sqrt_div (hx : 0 ≤ x) : Real.sqrt (x/y) = Real.sqrt x / Real.sqrt y ✓ — careful with direction. And normSq_eq_norm_sq : normSq z = ‖z‖^2 — so ‖z‖ = √(normSq z) (Real.sqrt_sq). Path: ‖a/b‖ = ‖a‖/‖b‖ = √(normSq a)/√(normSq b) = √(normSq a/normSq b) = √((9+t²)/(4+t²)). Then: ``` calc ‖kFun n ((3:ℝ) + t * Complex.I)‖ = ‖(((3:ℝ) + t * Complex.I) / (((3:ℝ) + t * Complex.I) - 1)) ^ n - 1‖ := rfl ... ``` Wait — kFun n s = (s/(s−1))ⁿ − 1 with s = 3+it: s−1 = 2+it ✓ — (3+it)−1 = 2+it: `show ((3:ℝ) + t*I) - 1 = (2:ℝ) + t*I by ring`. So: ``` have hs1 : ((3:ℝ) + t * Complex.I) - 1 = (2:ℝ) + t * Complex.I := by ring unfold kFun rw [hs1] calc ‖(((3:ℝ) + t * Complex.I) / ((2:ℝ) + t * Complex.I)) ^ n - 1‖ ≤ ‖(((3:ℝ) + t * Complex.I) / ((2:ℝ) + t * Complex.I)) ^ n‖ + ‖(1 : ℂ)‖ := norm_sub_le _ _ _ = (Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n + 1 := by rw [norm_pow, hnorm, norm_one] _ ≤ Real.exp (5/2) + 1 := by have h := Real.sqrt_le_sqrt hQn rwa [show Real.sqrt (Real.exp 5) = Real.exp (5/2) by rw [Real.sqrt_exp 5]; congr 1; ring] at h -- Real.sqrt_exp : sqrt (exp x) = exp (x/2) -- and (sqrt Q)^n = sqrt (Q^n): Real.sqrt_pow rwa [← Real.sqrt_pow] at h -- hmm direction: Real.sqrt_pow n : (sqrt x)^n = sqrt (x^n)? linarith [h] ``` Real.sqrt_pow (n : ℕ) (x : ℝ) : (Real.sqrt x) ^ n = Real.sqrt (x ^ n) ✓ (Mathlib: Real.sqrt_pow (x) (n)?? signature order — `Real.sqrt_pow (n : ℕ) (x : ℝ) : (√x) ^ n = √(x ^ n)` I think; verify in build). And Real.sqrt_exp (x : ℝ) : √(Real.exp x) = Real.exp (x / 2) ✓ exists. So the kernel lemma is ~45 lines. Now (ii) dirichletC3. Let me look at norm_logDeriv_zeta_le_dirichlet's proof to clone (it's in LiCircleBound around 203–230).
The kernel pattern is clear. Now the dirichlet bound to clone.
tool: Read
input
{
  "file_path": "D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiCircleBound.lean",
  "offset": 195,
  "limit": 75
}
raw content_json (database row)
[{"type":"thinking","thinking":"The kernel pattern is clear. For the V_left kernel at w = 3+it (kFun n (3+it) = ((3+it)/(2+it))ⁿ − 1):\n\n‖kFun n (3+it)‖ ≤ ‖((3+it)/(2+it))ⁿ‖ + 1 = ‖(3+it)/(2+it)‖ⁿ + 1.\n\n‖(3+it)/(2+it)‖² = (9+t²)/(4+t²) = 1 + 5/(4+t²). So ‖(3+it)/(2+it)‖ⁿ = (1+5/(4+t²))^{n/2}.\n\nBound: (1+x)^{n/2} ≤ exp(nx/2) — with x = 5/(4+t²): ≤ exp(5n/(2(4+t²))) ≤ e^{5/2} for n ≤ t² (then 4+t² ≥ t² ≥ n ⟹ 5n/(2(4+t²)) ≤ 5/2 ✓).\n\nThe (1+x)^{n/2} ≤ exp(nx/2) step: write (1+x)^{n/2} = ((1+x)^{1/2})ⁿ... — actually the cleanest: ‖(3+it)/(2+it)‖ = ((1+5/(4+t²)))^{1/2}·... — hmm, norm is sqrt of normSq-ratio: ‖a/b‖ = ‖a‖/‖b‖ = √(9+t²)/√(4+t²) = √((9+t²)/(4+t²)) ✓. Then ‖·‖ⁿ = ((9+t²)/(4+t²))^{n/2}. To bound by e^{5/2}: \n\n(9+t²)/(4+t²) = 1 + 5/(4+t²) ≤ 1 + 5/n (since 4+t² ≥ n)... ≤ e^{5/n} (add_one_le_exp: 1+5/n ≤ e^{5/n} — wait add_one_le_exp: 1 + x ≤ e^x — yes 1+5/n ≤ e^{5/n} ✓). Then ((9+t²)/(4+t²))^{n/2} ≤ (e^{5/n})^{n/2} = e^{5/2} ✓.\n\nFormally: ‖(3+it)/(2+it)‖ⁿ = (((9+t²)/(4+t²))^{1/2})ⁿ = ((9+t²)/(4+t²))^{n/2}. In Lean: ‖a‖ⁿ with ‖a‖ = √Q: (√Q)ⁿ = Q^{n/2} — Real.sqrt_pow? or: ((√Q)ⁿ)² = (Q^{1/2})^{2·(n/2)}... For natural n: (√Q)ⁿ = √(Qⁿ) (Real.sqrt_pow n Q : √(Q^n) = (√Q)^n — there's Real.sqrt_pow : (Real.sqrt x) ^ n = Real.sqrt (x ^ n)). So ‖a‖ⁿ = √(Qⁿ) ≤ √(e⁵) hmm — Qⁿ ≤ (e^{5/n})ⁿ = e⁵: then √(Qⁿ) ≤ √(e⁵) = e^{5/2} (Real.sqrt_le_sqrt + Real.sqrt_exp (e⁵)^{1/2} = e^{5/2}: Real.sqrt_exp x : Real.sqrt (Real.exp x) = Real.exp (x/2) ✓). So:\n\n‖(3+it)/(2+it)‖ⁿ = √(Qⁿ) where Q = (9+t²)/(4+t²): \n- ‖(3+it)/(2+it)‖ = ‖3+it‖/‖2+it‖; ‖3+it‖² = 9+t², ‖2+it‖² = 4+t² — via Complex.normSq and normSq_eq_norm_sq. So ‖ratio‖² = (9+t²)/(4+t²) (norm_div, sq).\n- Q ≤ e^{5/n}: 1+5/(4+t²) ≤ 1+5/n ≤ e^{5/n}: the first ≤: 5/(4+t²) ≤ 5/n ⟺ 5n ≤ 5(4+t²) ⟺ n ≤ 4+t² ✓ (n ≤ t²). The div comparison: div_le_div_iff... (5/(4+t²)) ≤ (5/n) via div_le_div (by norm_num : 0<5) hn_4t2_pos n_pos hle... \n- Qⁿ ≤ (e^{5/n})ⁿ = e⁵ (pow_le_pow_left₀ Q_nonneg Q_le n; (e^{5/n})ⁿ = e⁵ via Real.exp_nat_mul as in the e⁴ lemma).\n- ‖ratio‖ⁿ = (‖ratio‖²)^{n/2}: hmm — cleaner: ‖ratio‖ⁿ = √((‖ratio‖²)ⁿ)? Using Real.sqrt_pow: √(Qⁿ) = (√Q)ⁿ and ‖ratio‖ = √Q (Q = ‖ratio‖² with ‖ratio‖ ≥ 0: Real.sqrt_sq (norm_nonneg)). So ‖ratio‖ⁿ = (√Q)ⁿ = √(Qⁿ) ≤ √(e⁵) = e^{5/2}.\n\nThe lemma:\n```lean\ntheorem kFun_three_add_it_norm_le_exp_five_halves_add_one {n : ℕ} {t : ℝ}\n    (hT : (n : ℝ) ≤ t ^ 2) :\n    ‖kFun n ((3 : ℝ) + t * Complex.I)‖ ≤ Real.exp (5 / 2) + 1 := by\n  rcases Nat.eq_zero_or_pos n with hn | hn\n  · subst hn; simp only [kFun, pow_zero, sub_self, norm_zero]; positivity\n  · have hnR : (1:ℝ) ≤ (n : ℝ) := by exact_mod_cast hn\n    -- Q = (9+t²)/(4+t²) ≤ e^{5/n}\n    have ht2 : (0:ℝ) < 4 + t ^ 2 := by positivity\n    have hQpos : (0:ℝ) ≤ (9 + t ^ 2) / (4 + t ^ 2) := by positivity\n    have hn4t2 : (n:ℝ) ≤ 4 + t ^ 2 := by linarith [hT]\n    have hQle : (9 + t ^ 2) / (4 + t ^ 2) ≤ Real.exp (5 / (n : ℝ)) := by\n      have h1 : (9 + t ^ 2) / (4 + t ^ 2) = 1 + 5 / (4 + t ^ 2) := by\n        field_simp [ht2.ne']\n        ring\n      rw [h1]\n      have h2 : 5 / (4 + t ^ 2) ≤ 5 / (n : ℝ) :=\n        (div_le_div_iff_of_pos_left (by norm_num) ht2 (by positivity)).mpr hn4t2\n      have h3 := Real.add_one_le_exp (5 / (n : ℝ))\n      linarith\n    have hQn : ((9 + t ^ 2) / (4 + t ^ 2)) ^ n ≤ Real.exp 5 := by\n      calc ((9 + t ^ 2) / (4 + t ^ 2)) ^ n ≤ (Real.exp (5 / (n : ℝ))) ^ n :=\n            pow_le_pow_left₀ hQpos hQle n\n        _ = Real.exp 5 := by\n            rw [← Real.exp_nat_mul]\n            congr 1\n            have hn0 : (n : ℝ) ≠ 0 := by exact_mod_cast hn.ne'\n            field_simp [hn0]\n    -- norm computation\n    have hnormsq : ‖((3:ℝ) + t * Complex.I) / ((2:ℝ) + t * Complex.I)‖ ^ 2 =\n        (9 + t ^ 2) / (4 + t ^ 2) := by\n      rw [norm_div, div_pow, ← Complex.normSq_eq_norm_sq, ← Complex.normSq_eq_norm_sq,\n        div_eq_div_iff ...]\n      ...\n```\nHmm — the norm-sq computation: ‖a/b‖² = ‖a‖²/‖b‖² = normSq a/normSq b (Complex.normSq_eq_norm_sq: normSq z = ‖z‖^2 ✓). normSq(3+it) = 9+t² (Complex.normSq_apply: re²+im² = 9+t²); normSq(2+it) = 4+t². So:\n\n```\n    have hns3 : Complex.normSq ((3:ℝ) + t * Complex.I) = 9 + t ^ 2 := by\n      simp [Complex.normSq_apply]\n      ring  -- 3*3 + t*t = 9 + t^2\n    have hns2 : Complex.normSq ((2:ℝ) + t * Complex.I) = 4 + t ^ 2 := by\n      simp [Complex.normSq_apply]\n      ring\n    have hnorm : ‖((3:ℝ) + t * Complex.I) / ((2:ℝ) + t * Complex.I)‖ =\n        Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2)) := by\n      rw [norm_div, ← Real.sqrt_div (by positivity), ← Complex.normSq_eq_norm_sq,\n        ← Complex.normSq_eq_norm_sq, hns3, hns2]\n```\nReal.sqrt_div (hx : 0 ≤ x) : Real.sqrt (x/y) = Real.sqrt x / Real.sqrt y ✓ — careful with direction. And normSq_eq_norm_sq : normSq z = ‖z‖^2 — so ‖z‖ = √(normSq z) (Real.sqrt_sq). Path: ‖a/b‖ = ‖a‖/‖b‖ = √(normSq a)/√(normSq b) = √(normSq a/normSq b) = √((9+t²)/(4+t²)). \n\nThen:\n```\n    calc ‖kFun n ((3:ℝ) + t * Complex.I)‖\n        = ‖(((3:ℝ) + t * Complex.I) / (((3:ℝ) + t * Complex.I) - 1)) ^ n - 1‖ := rfl\n      ...\n```\nWait — kFun n s = (s/(s−1))ⁿ − 1 with s = 3+it: s−1 = 2+it ✓ — (3+it)−1 = 2+it: `show ((3:ℝ) + t*I) - 1 = (2:ℝ) + t*I by ring`. So:\n\n```\n    have hs1 : ((3:ℝ) + t * Complex.I) - 1 = (2:ℝ) + t * Complex.I := by ring\n    unfold kFun\n    rw [hs1]\n    calc ‖(((3:ℝ) + t * Complex.I) / ((2:ℝ) + t * Complex.I)) ^ n - 1‖\n        ≤ ‖(((3:ℝ) + t * Complex.I) / ((2:ℝ) + t * Complex.I)) ^ n‖ + ‖(1 : ℂ)‖ := norm_sub_le _ _\n      _ = (Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n + 1 := by\n          rw [norm_pow, hnorm, norm_one]\n      _ ≤ Real.exp (5/2) + 1 := by\n          have h := Real.sqrt_le_sqrt hQn\n          rwa [show Real.sqrt (Real.exp 5) = Real.exp (5/2) by\n            rw [Real.sqrt_exp 5]; congr 1; ring] at h  -- Real.sqrt_exp : sqrt (exp x) = exp (x/2)\n          -- and (sqrt Q)^n = sqrt (Q^n): Real.sqrt_pow\n          rwa [← Real.sqrt_pow] at h  -- hmm direction: Real.sqrt_pow n : (sqrt x)^n = sqrt (x^n)?\n          linarith [h]\n```\nReal.sqrt_pow (n : ℕ) (x : ℝ) : (Real.sqrt x) ^ n = Real.sqrt (x ^ n) ✓ (Mathlib: Real.sqrt_pow (x) (n)?? signature order — `Real.sqrt_pow (n : ℕ) (x : ℝ) : (√x) ^ n = √(x ^ n)` I think; verify in build). And Real.sqrt_exp (x : ℝ) : √(Real.exp x) = Real.exp (x / 2) ✓ exists.\n\nSo the kernel lemma is ~45 lines. \n\nNow (ii) dirichletC3. Let me look at norm_logDeriv_zeta_le_dirichlet's proof to clone (it's in LiCircleBound around 203–230).","signature":""},{"type":"text","text":"The kernel pattern is clear. Now the dirichlet bound to clone."},{"type":"tool_use","id":"Read_198","name":"Read","input":{"file_path":"D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiCircleBound.lean","offset":195,"limit":75},"extra_content":null}]