← Session 35 — ii′-6-R: Lagarias 6.1 right-tail re-proof (E-032/D-073)
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}]