← Session 22 — ii′-1: liCoeff pairing fix + residue machinery
thinking (9586 chars)
Several issues:
1. **Line 36**: the ring in pi_cpow_neg_half_eq_exp failed because `Real.pi` vs `Real.log π` — look at the goal: `↑(Real.log Real.pi) * w * (-1/2) = w * ↑(Real.log π) * (-1/2)` — the problem: `Real.log Real.pi` (full name) vs `Real.log π` — the `π` notation vs `Real.pi` — they're the same but displayed differently — ring failed because... the goal shows both sides are equal up to commutativity: `↑(Real.log Real.pi) * w * (-1/2)` vs `w * ↑(Real.log π) * (-1/2)` — these ARE ring-equal (commutative) — ring should close... the error says ring failed with "unsolved goals" showing that — probably because `Real.log Real.pi` and `Real.log π` are not SYNTACTICALLY the same term (π is notation for Real.pi — should be the same...). Hmm — the `ring_nf` suggestion. Actually looking again: the LHS is from my `rw [← Complex.ofReal_log Real.pi_nonneg]` — producing ↑(Real.log Real.pi) — the RHS has ↑(Real.log π) — from the goal statement's `-(Real.log π : ℂ)/2 * w` — `Real.log π` — `π` vs `Real.pi` — same term (π is scoped notation for Real.pi) — so the two sides differ only by commutativity — ring should close! Why did it fail? — "The ring tactic failed to close the goal. Use ring_nf..." with the shown goal being EQUAL by comm — maybe the issue is the `(-1/2 : ℂ)` — negative fractional in ℂ — ring handles... Hmm — actually maybe the real problem: `↑(Real.log Real.pi)` — the cast is `RCLike.ofReal`? or `Complex.ofReal`? — if the two casts are different defs (↑ on LHS via one instance path, ↑ on RHS via another), ring's atom matching might see them as DIFFERENT atoms... The goal display shows both as ↑(...) — but ring_nf... Let me just use ring_nf as suggested — the hint says ring_nf works. Replace `ring` with `ring_nf`.
Hmm wait — actually the error at 36:75 says "unsolved goals ⊢ ↑(Real.log Real.pi) * w * (-1/2) = w * ↑(Real.log π) * (-1/2)" — these are visibly equal by (comm + assoc) — ring failing on this is odd unless the atoms differ. `Real.log Real.pi` vs `Real.log π` — if π = Real.pi notation — identical. The casts: `↑(Real.log Real.pi)` — is it `Complex.ofReal (Real.log Real.pi)`? and RHS `↑(Real.log π)` — same... UNLESS one is via `RCLike.ofReal` and the other `Complex.ofReal` — the coercion in my statement `-(Real.log π : ℂ)/2` uses the OfReal ℂ instance — which IS Complex.ofReal. And ofReal_log gives (↑(x.log) : ℂ) = ... hmm. Let me just try ring_nf.
2. **Line 60**: `differentiableAt_const_mul` unknown — the name: `DifferentiableAt.const_mul : DifferentiableAt ℂ f x → DifferentiableAt ℂ (fun y => c * f y) x` — method form: `differentiableAt_id.const_mul _` ✓.
3. **Line 66**: after rw [hfun, logDeriv_apply] — the goal has `deriv (fun w => cexp .. * Gamma (w/2)) (1+s) / (...)` — my `rw [logDeriv_mul ...]` failed because logDeriv_apply already unfolded logDeriv to deriv/· — the logDeriv_mul pattern `logDeriv (fun z => f z * g z) x` no longer occurs (it's been unfolded to the quotient). Fix: DON'T rw [logDeriv_apply] before logDeriv_mul. Remove the `logDeriv_apply` from that rw — just `rw [hfun]` then `rw [logDeriv_mul ...]`.
4. **Line 115**: `Complex.cpow_eq_zero_iff` — wrong signature (it takes different args). Use my planned direct route:
```lean
have hs : Complex.Gamma ((1 + (0 : ℂ)) / 2) ≠ 0 := by
have e : (1 + (0 : ℂ)) / 2 = 1 / 2 := by ring
rw [e, Complex.Gamma_one_half_eq]
have hpi : (↑Real.pi : ℂ) ≠ 0 := by exact_mod_cast Real.pi_ne_zero
rw [Complex.cpow_def_of_ne_zero hpi]
exact Complex.exp_ne_zero _
```
5. **Line 110**: unsolved goals in logDeriv_Gammaℝ_one — the final push_cast/ring didn't finish — because the goal after my rewrites still has the digamma/log forms. The issue: after `rw [h]` — h : logDeriv Gammaℝ 1 = −(log π)/2 + (1/2)·digamma ((1+0)/2) — wait I did `rw [add_zero] at h` FIRST then rw [h] — the order in my file:
```lean
have h := logDeriv_Gammaℝ_one_add (s := 0) hs hs2
rw [add_zero] at h
rw [h]
have e2 : (1 : ℂ) / 2 = ((1 / 2 : ℝ) : ℂ) := by push_cast; ring
rw [e2, Complex.digamma_one_half]
rw [lagariasA1, log_four_pi]
push_cast
ring
```
Hmm — after rw [add_zero] at h: h : logDeriv Gammaℝ (1 + 0)?? — add_zero rewrites (1 + 0) → 1? — add_zero : a + 0 = a — so (1+0) → 1 ✓ h : logDeriv Gammaℝ 1 = −↑(Real.log π)/2 + 1/2 * digamma ((1+0)/2)?? — add_zero also rewrites inside the digamma argument ((1+0)/2) → (1/2) ✓. Then rw [h] at goal ✓. Then e2 : (1:ℂ)/2 = ↑(1/2:ℝ) — the digamma argument in the goal is ((1:ℂ)/2) — rw [e2] → digamma ↑(1/2:ℝ) — then Complex.digamma_one_half : digamma (1/2) = ... — the (1/2) there is (1/2 : ℂ) via OfNat — NOT ↑(1/2:ℝ) — mismatch! digamma_one_half's argument is (1/2 : ℂ) [OfNat]. So I should NOT do e2 — instead keep (1:ℂ)/2 and rw [Complex.digamma_one_half] directly — wait but the goal's digamma argument after add_zero: ((1+0)/2) — hmm — add_zero turns (1+0)/2 into (1/2)? — add_zero's pattern ?a + 0 — matches (1 + 0) inside ((1+0)/2) → 1/2 — wait — ((1 + 0)/2) with add_zero → (1/2) — the division stays: 1/2 : ℂ — that's `HDiv.hDiv 1 2` — and digamma_one_half's argument `1/2` = HDiv.hDiv 1 2 — SAME ✓. So drop e2 entirely and rw [Complex.digamma_one_half] directly.
Then the goal: −↑(Real.log π)/2 + 1/2 * (−2 * Complex.log 2 − ↑γ) = −↑lagariasA1 — with lagariasA1, log_four_pi rewrites — then push_cast + ring — the Complex.log 2 issue: digamma_one_half's RHS has `log 2` = Complex.log 2 (since digamma : ℂ → ℂ and the statement is in namespace Complex — `- 2 * log 2 - Real.eulerMascheroniConstant` — `log` resolves to Complex.log, `2 : ℂ` — and `Real.eulerMascheroniConstant` is cast to ℂ via ↑). So the goal after rw has Complex.log (2:ℂ). push_cast: does it normalize Complex.log 2 → ↑(Real.log 2)? push_cast has `Complex.ofReal_log`? Probably not in the default push_cast set. So rewrite manually:
`rw [show Complex.log (2 : ℂ) = (Real.log 2 : ℂ) by rw [← Complex.ofReal_log (by norm_num : (0:ℝ) ≤ 2)]]` — hmm — Complex.ofReal_log (hx : 0 ≤ x) : (↑(Real.log x) : ℂ) = Complex.log ↑x — the ← direction: rewrites Complex.log ↑2 → ↑(Real.log 2) — the pattern Complex.log ↑2 — but the goal has Complex.log (2:ℂ) — is (2:ℂ) syntactically ↑(2:ℝ)? NO — (2:ℂ) is OfNat.ofNat 2 (ℂ's OfNat) — ↑2 is Complex.ofReal (2:ℝ) — different terms (equal via ofReal_ofNat simp lemma). So first: `rw [show (2 : ℂ) = ((2 : ℝ) : ℂ) from by simp]`? — `Complex.ofReal_ofNat : ((n : ℝ) : ℂ) = n`? — direction: ↑(2:ℝ) = (2:ℂ) — simp lemma `Complex.ofReal_ofNat : (↑(OfNat.ofNat n) : ℂ) = OfNat.ofNat n` — so `rw [← Complex.ofReal_ofNat]`?? on the (2:ℂ) occurrence — messy. Cleaner: `push_cast` FIRST might normalize (2:ℂ) vs ↑2: push_cast rewrites Complex.ofReal ↑n → ↑n (ofReal_ofNat is a push_cast lemma? `Complex.ofReal_ofNat` is a simp/push_cast lemma ✓ likely). So maybe just push_cast BEFORE the log rewrite normalizes... — but push_cast doesn't touch Complex.log (2:ℂ) (it's already ℂ). Hmm.
The whole cast dance — let me simply do the final algebra in ℝ and cast at the very end? The goal is ℂ-valued. Alternative cleaner finish: prove the ℝ version: there's no real `logDeriv Gammaℝ 1`... skip.
Deterministic approach: state the intermediate as a ℂ equation with ALL quantities as explicit casts of ℝ:
```lean
have hdig : Complex.digamma ((1 : ℂ) / 2) = (-(2 * Real.log 2) - Real.eulerMascheroniConstant : ℝ) := by
rw [Complex.digamma_one_half]
rw [← Complex.ofReal_log (by norm_num : (0 : ℝ) ≤ 2)]
push_cast
ring
```
Hmm — the issue: digamma_one_half's RHS form. I don't know its exact syntactic form (Complex.log 2 vs Complex.log ↑2). Let me check the actual statement text once more: from the grep: `theorem digamma_one_half : digamma (1 / 2) = - 2 * log 2 - Real.eulerMascheroniConstant :=` — in namespace Complex (the file has `namespace Complex` before — digamma_one : digamma 1 = -Real.eulerMascheroniConstant — there the RHS is `- Real.eulerMascheroniConstant` — with a cast to ℂ inserted by elaboration: -↑γ. And log 2: `log` resolves in namespace Complex to Complex.log; `2` : ℂ. So RHS = -2 * Complex.log 2 - ↑γ where (2:ℂ) is OfNat.ofNat 2. So after rw [Complex.digamma_one_half], the goal contains Complex.log (OfNat.ofNat 2 : ℂ). To rewrite: `rw [← Complex.ofReal_log (by positivity : (0:ℝ) ≤ 2)]` — its pattern: Complex.log ↑(2:ℝ) — but goal has Complex.log (2:ℂ) — ↑(2:ℝ) = Complex.ofReal 2 — vs (2:ℂ) = OfNat.ofNat — NOT syntactic — rewrite fails. Pre-fix: `norm_num` might normalize (2:ℂ) to... no. Use: `rw [show (2 : ℂ) = ((2 : ℝ) : ℂ) by norm_num]`?? — (2:ℂ) = ↑(2:ℝ): `Complex.ofReal_ofNat : (↑(OfNat.ofNat n)) = OfNat.ofNat n` — direction gives ↑(2:ℝ) → (2:ℂ) — so `rw [← Complex.ofReal_ofNat]` rewrites (2:ℂ) → ↑(2:ℝ) — but it would rewrite ALL (2:ℂ) literals... — in this goal the only (2:ℂ) is inside Complex.log ✓ ok. Hmm wait — ofReal_ofNat : ↑(OfNat.ofNat n) = OfNat.ofNat n — the ← direction: OfNat.ofNat n → ↑(OfNat.ofNat n) — rewriting (2:ℂ) = OfNat.ofNat 2 → ↑((2:ℝ)) ✓. Then ← ofReal_log ✓.
Let me also handle `Real.pi` vs `π` and just use ring_nf in pi_cpow_neg_half_eq_exp.
Let me now rewrite the whole Part 1 with all fixes:
Actually — for h1's field_simp at the end: goal after rw [hd]: `exp(c(1+s)) * c / exp(c(1+s)) = c` — field_simp [exp_ne_zero] then ring — I wrote only field_simp — the goal might need ring after: from the error list, no error was reported for h1's field_simp — good (the errors were elsewhere). Similarly h2's field_simp+ring — no error reported — but those were after the failing logDeriv_mul so they weren't reached — the logDeriv_mul rw failure at line 66 blocked downstream. Let me fix all and recompile.
Applying the fixes: ring_nf for the cast issue, method-form const_mul, removing the premature logDeriv_apply, cpow nonzero via exp, and the digamma cast dance.
tool: Edit
input
{
"file_path": "D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiArchimedean.lean",
"old_string": " rw [Complex.cpow_def_of_ne_zero (by exact_mod_cast Real.pi_ne_zero)]\n congr 1\n rw [\u2190 Complex.ofReal_log Real.pi_nonneg]\n ring",
"new_string": " rw [Complex.cpow_def_of_ne_zero (by exact_mod_cast Real.pi_ne_zero)]\n congr 1\n rw [\u2190 Complex.ofReal_log Real.pi_nonneg]\n ring_nf"
}
tool: Edit ok
input
{
"file_path": "D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiArchimedean.lean",
"old_string": " rw [hfun, logDeriv_apply]\n have hdif1 : DifferentiableAt \u2102 (fun w : \u2102 => Complex.exp (-(Real.log \u03c0 : \u2102) / 2 * w))\n (1 + s) := by\n have h1 : DifferentiableAt \u2102 (fun w : \u2102 => -(Real.log \u03c0 : \u2102) / 2 * w) (1 + s) :=\n differentiableAt_const_mul _\n exact Complex.differentiableAt_exp.comp (1 + s) h1",
"new_string": " rw [hfun]\n have hdif1 : DifferentiableAt \u2102 (fun w : \u2102 => Complex.exp (-(Real.log \u03c0 : \u2102) / 2 * w))\n (1 + s) := by\n have h1 : DifferentiableAt \u2102 (fun w : \u2102 => -(Real.log \u03c0 : \u2102) / 2 * w) (1 + s) :=\n differentiableAt_id.const_mul _\n exact Complex.differentiableAt_exp.comp (1 + s) h1"
}
result 2026-08-22 06:21:45Z → 2026-08-26 06:20:19Z
{
"filePath": "D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiDogLeg.lean",
"oldString": " have hIntA : IntervalIntegrable (fun \u03c3 : \u211d => 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3))\n volume 3 XR := by\n apply ContinuousOn.intervalIntegrable\n exact (hcontA.const_mul 4).continuousOn\n have hIntB : IntervalIntegrable (fun \u03c3 : \u211d => 4 * (2 : \u211d) ^ (-\u03c3)) volume 3 XR := by\n apply ContinuousOn.intervalIntegrable\n exact (hcontB.const_mul 4).continuousOn\n have hIntG : IntervalIntegrable (fun \u03c3 : \u211d =>\n (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) * dirichletC2)\n volume 3 XR := by\n apply ContinuousOn.intervalIntegrable\n exact ((hcontA.add hcontB).const_mul dirichletC2).continuousOn",
"newString": " have hIntA : IntervalIntegrable (fun \u03c3 : \u211d => 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3))\n MeasureTheory.volume 3 XR := by\n apply ContinuousOn.intervalIntegrable\n exact (hcontA.const_mul 4).continuousOn\n have hIntB : IntervalIntegrable (fun \u03c3 : \u211d => 4 * (2 : \u211d) ^ (-\u03c3)) MeasureTheory.volume 3 XR := by\n apply ContinuousOn.intervalIntegrable\n exact (hcontB.const_mul 4).continuousOn\n have hIntG : IntervalIntegrable (fun \u03c3 : \u211d =>\n (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) * dirichletC2)\n MeasureTheory.volume 3 XR := by\n apply ContinuousOn.intervalIntegrable\n exact ((hcontA.add hcontB).const_mul dirichletC2).continuousOn",
"originalFile": "/-\nNguyenRH1/LiDogLeg.lean \u2014 ii\u2032-6-DL-1 (D-074, session 040): the zero-free\ndog-leg deformation of the Lagarias horizontal right tail.\n\nTHE CONTENT (D-074 \u00a73.1\u20133.2): on the dog-leg rectangle [3, X_R]\u00d7[T, U]\n(T > 0), the Lagarias integrand Jlag n s = (s/(s\u22121))\u207f\u22121 \u00b7 (\u2212\u03b6\u2032/\u03b6(s)) is\nholomorphic UNCONDITIONALLY (s \u2260 1 since im > 0; \u03b6 s \u2260 0 for re s \u2265 3 > 1\nby Mathlib's Euler-product nonvanishing `riemannZeta_ne_zero_of_one_lt_re`\n\u2014 NO perimeter hypothesis, no zero-avoidance at U). Cauchy's theorem\n(`HolomorphicOn.vanishesOnRectangle`) then gives the EXACT deformation\nidentity\n H(3\u2192X_R, T) = H(3\u2192X_R, U) \u2212 V(X_R, T\u2192U) + V(3, T\u2192U)\n(the upper right tail = the high horizontal \u2212 the right drop + the left\nlift), plus the Jlag conjugation identity for the lower-side transfer.\n\nThis is the repair of Finding F-D (D-072): the broken low-path envelope\nis ABANDONED (not bounded) \u2014 the magnitude bound comes later from the\nthree dog-leg pieces, all in the unconditionally zero-free region.\n-/\nimport Mathlib\nimport NguyenRH1.LiSides\nimport NguyenRH1.LiTightR\nimport NguyenRH1.LiBasePoints\n\nopen Zeta23 Complex Filter Topology\nopen scoped Nat\n\nnoncomputable section\n\nnamespace NguyenRH1\n\n/-! ## 1. Dog-leg analyticity (D-074 \u00a73.1; no perimeter) -/\n\n/-- The dog-leg corners (same real-part/imaginary-part form as rectZ/rectW). -/\ndef dogZ (T : \u211d) : \u2102 := ((3 : \u211d) : \u2102) + (T : \u211d) * Complex.I\ndef dogW (XR U : \u211d) : \u2102 := ((XR : \u211d) : \u2102) + (U : \u211d) * Complex.I\n\nlemma dogZ_re (T : \u211d) : (dogZ T).re = 3 := by simp [dogZ]\nlemma dogZ_im (T : \u211d) : (dogZ T).im = T := by simp [dogZ]\nlemma dogW_re (XR U : \u211d) : (dogW XR U).re = XR := by simp [dogW]\nlemma dogW_im (XR U : \u211d) : (dogW XR U).im = U := by simp [dogW]\n\n/-- Jlag is differentiable at every point with 3 \u2264 re, 0 < im:\n\u03b6 is zero-free for 1 < re (Mathlib `riemannZeta_ne_zero_of_one_lt_re`,\nUNCONDITIONAL \u2014 the Euler-product region) and s \u2260 1 (im \u2260 0).\nNO perimeter hypothesis. -/\ntheorem Jlag_differentiableAt_dogleg {n : \u2115} {s : \u2102}\n (hre : 3 \u2264 s.re) (him : 0 < s.im) :\n DifferentiableAt \u2102 (Jlag n) s := by\n apply Jlag_differentiableAt\n \u00b7 rintro rfl\n simp at him\n \u00b7 exact riemannZeta_ne_zero_of_one_lt_re (by linarith)\n\n/-- Jlag is holomorphic on the whole dog-leg rectangle\n[3, X_R]\u00d7[T, U] (T > 0). -/\ntheorem holomorphicOn_Jlag_dogleg {n : \u2115} {T U XR : \u211d}\n (hT : 0 < T) (hTU : T \u2264 U) (hXR : 3 \u2264 XR) :\n HolomorphicOn (Jlag n) (Rectangle (dogZ T) (dogW XR U)) := by\n intro s hs\n rw [Rectangle, Complex.mem_reProdIm, dogZ_re, dogW_re, dogZ_im, dogW_im] at hs\n rw [Set.uIcc_of_le hXR, Set.uIcc_of_le hTU] at hs\n exact (Jlag_differentiableAt_dogleg hs.1.1 (by linarith [hs.2.1])).differentiableWithinAt\n\n/-- **The dog-leg rectangle integral vanishes** (Cauchy; the region is\nunconditionally zero-free \u2014 the residue sum is EMPTY, no perimeter). -/\ntheorem rectangleIntegral_Jlag_dogleg_eq_zero {n : \u2115} {T U XR : \u211d}\n (hT : 0 < T) (hTU : T \u2264 U) (hXR : 3 \u2264 XR) :\n RectangleIntegral (Jlag n) (dogZ T) (dogW XR U) = 0 :=\n (holomorphicOn_Jlag_dogleg hT hTU hXR).vanishesOnRectangle subset_rfl\n\n/-- The (2\u03c0i)\u207b\u00b9-normalized form (API symmetry with rectInt'_Jlag). -/\ntheorem rectangleIntegral'_Jlag_dogleg_eq_zero {n : \u2115} {T U XR : \u211d}\n (hT : 0 < T) (hTU : T \u2264 U) (hXR : 3 \u2264 XR) :\n RectangleIntegral' (Jlag n) (dogZ T) (dogW XR U) = 0 := by\n rw [RectangleIntegral', rectangleIntegral_Jlag_dogleg_eq_zero hT hTU hXR,\n smul_zero]\n\n/-- **THE EXACT DOG-LEG DEFORMATION IDENTITY** (D-074 \u00a73.2 (\u2605), the\ncapstone for ii\u2032-6-c): the low right-horizontal equals the high\nhorizontal minus the right drop plus the left lift. Orientations: all\nH-integrals left-to-right, all V-integrals upward (the main contour's\ntop side is their reversal, handled at the fold site). -/\ntheorem upper_right_horizontal_eq_dogleg {n : \u2115} {T U XR : \u211d}\n (hT : 0 < T) (hTU : T \u2264 U) (hXR : 3 \u2264 XR) :\n HIntegral (Jlag n) 3 XR T =\n HIntegral (Jlag n) 3 XR U - VIntegral (Jlag n) XR T U +\n VIntegral (Jlag n) 3 T U := by\n have h0 := rectangleIntegral_Jlag_dogleg_eq_zero (n := n) hT hTU hXR\n unfold RectangleIntegral at h0\n rw [dogZ_re, dogZ_im, dogW_re, dogW_im] at h0\n linear_combination h0\n\n/-! ## 2. The conjugation identity (for the lower-side transfer, DL-5) -/\n\n/-- kFun is conjugation-symmetric (real-coefficient rational function). -/\ntheorem kFun_conj (n : \u2115) (s : \u2102) :\n kFun n ((starRingEnd \u2102) s) = (starRingEnd \u2102) (kFun n s) := by\n unfold kFun\n simp [map_sub, map_pow, map_one]\n\n/-- **Jlag is conjugation-symmetric** (from `riemannZeta_conj` +\n`iteratedDeriv_riemannZeta_conj`): Jlag n (s\u0304) = conj (Jlag n s).\nNeeded for the lower-horizontal transfer (DL-5). -/\ntheorem Jlag_conj (n : \u2115) {s : \u2102} (hs : s \u2260 1) :\n Jlag n ((starRingEnd \u2102) s) = (starRingEnd \u2102) (Jlag n s) := by\n have h1 : deriv riemannZeta ((starRingEnd \u2102) s) =\n (starRingEnd \u2102) (deriv riemannZeta s) := by\n have h := iteratedDeriv_riemannZeta_conj 1 hs\n rwa [iteratedDeriv_one] at h\n unfold Jlag\n rw [kFun_conj, _root_.riemannZeta_conj, h1]\n simp only [map_mul, map_neg, map_div\u2080]\n\n/-! ## 3. The left-lift bound (DL-2, D-074 \u00a73.3 V_left) -/\n\n/-- **Kernel on the lift**: \u2016kFun n (3+it)\u2016 \u2264 e^{5/2}+1 for n \u2264 t\u00b2\n(D-074 \u00a76: |(3+it)/(2+it)|\u00b2 = (9+t\u00b2)/(4+t\u00b2) = 1 + 5/(4+t\u00b2), whose n-th\npower is \u2264 e^{5n/(2(4+t\u00b2))} \u2264 e^{5/2}). -/\ntheorem kFun_three_add_it_norm_le_exp_five_halves_add_one {n : \u2115} {t : \u211d}\n (hT : (n : \u211d) \u2264 t ^ 2) :\n \u2016kFun n ((3 : \u211d) + t * Complex.I)\u2016 \u2264 Real.exp (5 / 2) + 1 := by\n rcases Nat.eq_zero_or_pos n with hn | hn\n \u00b7 subst hn\n simp only [kFun, pow_zero, sub_self, norm_zero]\n positivity\n \u00b7 have hnR : (1 : \u211d) \u2264 (n : \u211d) := by exact_mod_cast hn\n have ht2 : (0 : \u211d) < 4 + t ^ 2 := by positivity\n have hn4t2 : (n : \u211d) \u2264 4 + t ^ 2 := by linarith [hT]\n have hQpos : (0 : \u211d) \u2264 (9 + t ^ 2) / (4 + t ^ 2) := by positivity\n have hQle : (9 + t ^ 2) / (4 + t ^ 2) \u2264 Real.exp (5 / (n : \u211d)) := 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) \u2264 5 / (n : \u211d) :=\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 : \u211d))\n linarith\n have hQn : ((9 + t ^ 2) / (4 + t ^ 2)) ^ n \u2264 Real.exp 5 := by\n calc ((9 + t ^ 2) / (4 + t ^ 2)) ^ n \u2264 (Real.exp (5 / (n : \u211d))) ^ n :=\n pow_le_pow_left\u2080 hQpos hQle n\n _ = Real.exp 5 := by\n rw [\u2190 Real.exp_nat_mul]\n congr 1\n have hn0 : (n : \u211d) \u2260 0 := by exact_mod_cast hn.ne'\n field_simp [hn0]\n have hns3 : Complex.normSq ((3 : \u211d) + t * Complex.I) = 9 + t ^ 2 := by\n simp [Complex.normSq_apply]\n ring\n have hns2 : Complex.normSq ((2 : \u211d) + t * Complex.I) = 4 + t ^ 2 := by\n simp [Complex.normSq_apply]\n ring\n have hnormA : \u2016((3 : \u211d) + t * Complex.I)\u2016 = Real.sqrt (9 + t ^ 2) := by\n have h1 : \u2016((3 : \u211d) + t * Complex.I)\u2016 =\n Real.sqrt (Complex.normSq ((3 : \u211d) + t * Complex.I)) := by\n rw [Complex.normSq_eq_norm_sq, Real.sqrt_sq (norm_nonneg _)]\n rw [h1, hns3]\n have hnormB : \u2016((2 : \u211d) + t * Complex.I)\u2016 = Real.sqrt (4 + t ^ 2) := by\n have h1 : \u2016((2 : \u211d) + t * Complex.I)\u2016 =\n Real.sqrt (Complex.normSq ((2 : \u211d) + t * Complex.I)) := by\n rw [Complex.normSq_eq_norm_sq, Real.sqrt_sq (norm_nonneg _)]\n rw [h1, hns2]\n have hnorm : \u2016((3 : \u211d) + t * Complex.I) / ((2 : \u211d) + t * Complex.I)\u2016 =\n Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2)) := by\n rw [norm_div, hnormA, hnormB,\n \u2190 Real.sqrt_div (by positivity : (0 : \u211d) \u2264 9 + t ^ 2)]\n have hs1 : ((3 : \u211d) + t * Complex.I) - 1 = (2 : \u211d) + t * Complex.I := by\n push_cast\n ring\n unfold kFun\n rw [hs1]\n calc \u2016(((3 : \u211d) + t * Complex.I) / ((2 : \u211d) + t * Complex.I)) ^ n - 1\u2016\n \u2264 \u2016(((3 : \u211d) + t * Complex.I) / ((2 : \u211d) + t * Complex.I)) ^ n\u2016 + \u2016(1 : \u2102)\u2016 :=\n norm_sub_le _ _\n _ = (Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n + 1 := by\n rw [norm_pow, hnorm, norm_one]\n _ \u2264 Real.exp (5 / 2) + 1 := by\n have h4 : (Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n \u2264 Real.exp (5 / 2) := by\n have hx0 : (0 : \u211d) \u2264 Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2)) :=\n Real.sqrt_nonneg _\n have hx : (0 : \u211d) \u2264 (Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n :=\n pow_nonneg hx0 n\n have h5 : ((Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n) ^ 2 \u2264 Real.exp 5 := by\n have e : ((Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n) ^ 2 =\n ((9 + t ^ 2) / (4 + t ^ 2)) ^ n := by\n rw [\u2190 pow_mul, mul_comm n 2, pow_mul, Real.sq_sqrt hQpos]\n rw [e]\n exact hQn\n have h8 : (Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n =\n Real.sqrt (((Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n) ^ 2) := by\n rw [Real.sqrt_sq hx]\n rw [h8]\n calc Real.sqrt (((Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n) ^ 2)\n \u2264 Real.sqrt (Real.exp 5) := Real.sqrt_le_sqrt h5\n _ = Real.exp (5 / 2) := (Real.exp_half 5).symm\n linarith [h4]\n\n/-- The Dirichlet majorant at s = 3 (summable since 3 > 1). -/\ndef dirichletC3 : \u211d :=\n \u2211' n : \u2115, \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (3 : \u2102) n\u2016\n\n/-- Termwise 3-vs-2 comparison for the \u039b L-series: \u039b(n)/n\u00b3 \u2264 (1/2)\u00b7\u039b(n)/n\u00b2. -/\nlemma norm_term_vonMangoldt_three_le_half (n : \u2115) :\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (3 : \u2102) n\u2016 \u2264\n (1 / 2) * \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (2 : \u2102) n\u2016 := by\n have h3re : ((3 : \u2102).re) = 3 := rfl\n have h2re : ((2 : \u2102).re) = 2 := rfl\n simp only [LSeries.norm_term_eq, h3re, h2re]\n split\n \u00b7 norm_num\n \u00b7 next hn =>\n rcases eq_or_ne n 1 with rfl | hn1\n \u00b7 simp [ArithmeticFunction.vonMangoldt_apply_one]\n \u00b7 have hn2 : 2 \u2264 n := by omega\n have h\u039b : \u2016(ArithmeticFunction.vonMangoldt n : \u2102)\u2016 =\n ArithmeticFunction.vonMangoldt n :=\n Complex.norm_of_nonneg ArithmeticFunction.vonMangoldt_nonneg\n rw [h\u039b]\n have e : ArithmeticFunction.vonMangoldt n / (n : \u211d) ^ (3 : \u211d) =\n (1 / (n : \u211d)) * (ArithmeticFunction.vonMangoldt n / (n : \u211d) ^ (2 : \u211d)) := by\n rw [show (3 : \u211d) = 2 + 1 by norm_num,\n Real.rpow_add (by positivity : (0 : \u211d) < (n : \u211d)), Real.rpow_one]\n field_simp [show (n : \u211d) \u2260 0 by positivity]\n have h12 : (1 : \u211d) / (n : \u211d) \u2264 1 / 2 :=\n one_div_le_one_div_of_le (by norm_num : (0 : \u211d) < 2)\n (by exact_mod_cast hn2 : (2 : \u211d) \u2264 (n : \u211d))\n have hpos : (0 : \u211d) \u2264 ArithmeticFunction.vonMangoldt n / (n : \u211d) ^ (2 : \u211d) :=\n div_nonneg ArithmeticFunction.vonMangoldt_nonneg\n (Real.rpow_nonneg (by positivity : (0 : \u211d) \u2264 (n : \u211d)) _)\n calc ArithmeticFunction.vonMangoldt n / (n : \u211d) ^ (3 : \u211d)\n = (1 / (n : \u211d)) * (ArithmeticFunction.vonMangoldt n / (n : \u211d) ^ (2 : \u211d)) := e\n _ \u2264 (1 / 2) * (ArithmeticFunction.vonMangoldt n / (n : \u211d) ^ (2 : \u211d)) :=\n mul_le_mul_of_nonneg_right h12 hpos\n\n/-- dirichletC3 \u2264 1/2 (the termwise comparison + dirichletC2 \u2264 1) \u2014\nthe certified C_zeta3 = 0.5 of D-074 \u00a74. (A tighter 0.17 build is\npossible via a 6-prime partial sum + antitone-integral tail; the fold\nis indifferent to the constant, so the cheap certified 0.5 is charged.) -/\nlemma dirichletC3_le_half : dirichletC3 \u2264 1 / 2 := by\n have hsum3 : Summable (fun n : \u2115 =>\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (3 : \u2102) n\u2016) := by\n rw [summable_norm_iff]\n exact ArithmeticFunction.LSeriesSummable_vonMangoldt (by norm_num)\n have hsum2 : Summable (fun n : \u2115 =>\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (2 : \u2102) n\u2016) := by\n rw [summable_norm_iff]\n exact ArithmeticFunction.LSeriesSummable_vonMangoldt (by norm_num)\n calc dirichletC3\n = \u2211' n : \u2115, \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (3 : \u2102) n\u2016 := rfl\n _ \u2264 \u2211' n : \u2115, (1 / 2) *\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (2 : \u2102) n\u2016 :=\n Summable.tsum_le_tsum (fun n => norm_term_vonMangoldt_three_le_half n) hsum3\n (hsum2.mul_left (1 / 2))\n _ = (1 / 2) * dirichletC2 := by rw [dirichletC2, tsum_mul_left]\n _ \u2264 1 / 2 := by linarith [dirichletC2_le_one]\n\n/-- \u2016\u03b6\u2032/\u03b6 s\u2016 \u2264 dirichletC3 for re s \u2265 3 (the s = 3 clone of the\nDirichlet-series majorant). -/\nlemma norm_logDeriv_zeta_le_dirichletC3 {s : \u2102} (hs : 3 \u2264 s.re) :\n \u2016logDeriv riemannZeta s\u2016 \u2264 dirichletC3 := by\n have hs1 : (1 : \u211d) < s.re := by linarith\n have h1 : -logDeriv riemannZeta s\n = LSeries (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) s := by\n have h2 := ArithmeticFunction.LSeries_vonMangoldt_eq_deriv_riemannZeta_div hs1\n rw [logDeriv, Pi.div_apply, h2]\n ring\n have hsum3 : Summable (fun n : \u2115 =>\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (3 : \u2102) n\u2016) := by\n rw [summable_norm_iff]\n exact ArithmeticFunction.LSeriesSummable_vonMangoldt (by norm_num)\n have hsumS : Summable (fun n : \u2115 =>\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) s n\u2016) := by\n rw [summable_norm_iff]\n exact ArithmeticFunction.LSeriesSummable_vonMangoldt hs1\n have hle : \u2016LSeries (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) s\u2016\n \u2264 dirichletC3 := by\n show \u2016\u2211' n : \u2115, LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) s n\u2016 \u2264 _\n calc \u2016\u2211' n : \u2115, LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) s n\u2016\n \u2264 \u2211' n : \u2115, \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) s n\u2016 :=\n norm_tsum_le_tsum_norm hsumS\n _ \u2264 \u2211' n : \u2115, \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (3 : \u2102) n\u2016 :=\n Summable.tsum_le_tsum (fun n => LSeries.norm_term_le_of_re_le_re _ (by\n simp\n exact hs) n) hsumS hsum3\n _ = dirichletC3 := rfl\n calc \u2016logDeriv riemannZeta s\u2016\n = \u2016LSeries (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) s\u2016 := by\n rw [\u2190 h1, norm_neg]\n _ \u2264 dirichletC3 := hle\n\n/-- \u2016\u03b6\u2032/\u03b6 s\u2016 \u2264 1/2 for re s \u2265 3 (the charged C_zeta3 = 0.5). -/\nlemma norm_logDeriv_zeta_le_half {s : \u2102} (hs : 3 \u2264 s.re) :\n \u2016logDeriv riemannZeta s\u2016 \u2264 1 / 2 :=\n (norm_logDeriv_zeta_le_dirichletC3 hs).trans dirichletC3_le_half\n\n/-- **The left-lift bound** (D-074 \u00a73.3 V_left): for 0 < T \u2264 U and\nn \u2264 T\u00b2, \u2016VIntegral (Jlag n) 3 T U\u2016 \u2264 (U \u2212 T)\u00b7(e^{5/2}+1)/2. The kernel\n\u2264 e^{5/2}+1 (the 1+5/(4+t\u00b2) computation), the zeta factor \u2264 1/2\n(certified, no perimeter). -/\ntheorem vIntegral_Jlag_three_norm_le {n : \u2115} {T U : \u211d}\n (hT0 : (0 : \u211d) < T) (hTU : T \u2264 U) (hTn : (n : \u211d) \u2264 T ^ 2) :\n \u2016VIntegral (Jlag n) 3 T U\u2016 \u2264 (U - T) * (Real.exp (5 / 2) + 1) / 2 := by\n have hnorm : \u2016VIntegral (Jlag n) 3 T U\u2016 =\n \u2016\u222b t in T..U, Jlag n ((3 : \u211d) + t * Complex.I)\u2016 := by\n unfold VIntegral\n rw [norm_smul, Complex.norm_I, one_mul]\n rw [hnorm]\n have hbound : \u2200 t \u2208 Set.Ioc T U,\n \u2016Jlag n ((3 : \u211d) + t * Complex.I)\u2016 \u2264 (Real.exp (5 / 2) + 1) * (1 / 2) := by\n intro t ht\n have htT : T < t := ht.1\n have ht2 : (n : \u211d) \u2264 t ^ 2 := by nlinarith [hTn, hT0]\n have hre : (3 : \u211d) \u2264 ((3 : \u211d) + t * Complex.I).re := by simp\n have h1 := kFun_three_add_it_norm_le_exp_five_halves_add_one ht2\n have h2 := norm_logDeriv_zeta_le_half (s := (3 : \u211d) + t * Complex.I) hre\n have hnorm3 : \u2016Jlag n ((3 : \u211d) + t * Complex.I)\u2016 =\n \u2016kFun n ((3 : \u211d) + t * Complex.I)\u2016 *\n \u2016logDeriv riemannZeta ((3 : \u211d) + t * Complex.I)\u2016 := by\n show \u2016kFun n ((3 : \u211d) + t * Complex.I) *\n (-logDeriv riemannZeta ((3 : \u211d) + t * Complex.I))\u2016 = _\n rw [norm_mul, norm_neg]\n rw [hnorm3]\n exact mul_le_mul h1 h2 (norm_nonneg _) (by positivity)\n have hint : \u2016\u222b t in T..U, Jlag n ((3 : \u211d) + t * Complex.I)\u2016 \u2264\n ((Real.exp (5 / 2) + 1) * (1 / 2)) * |U - T| := by\n apply intervalIntegral.norm_integral_le_of_norm_le_const\n intro t ht\n rw [Set.uIoc_of_le hTU] at ht\n exact hbound t ht\n have habs : |U - T| = U - T := abs_of_nonneg (by linarith)\n rw [habs] at hint\n calc \u2016\u222b t in T..U, Jlag n ((3 : \u211d) + t * Complex.I)\u2016\n \u2264 ((Real.exp (5 / 2) + 1) * (1 / 2)) * (U - T) := hint\n _ = (U - T) * (Real.exp (5 / 2) + 1) / 2 := by ring\n\n/-! ## 4. The high-horizontal stepping (DL-3, D-074 \u00a77 + D-073 \u00a74) -/\n\n/-- Termwise \u03c3-vs-2 comparison for the \u039b L-series (the (6.10) halving):\n\u039b(m)/m^\u03c3 \u2264 2^{\u2212(\u03c3\u22122)}\u00b7\u039b(m)/m\u00b2 for \u03c3 \u2265 2. -/\nlemma norm_term_vonMangoldt_le_two_pow {\u03c3 t : \u211d} (h\u03c3 : 2 \u2264 \u03c3) (m : \u2115) :\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102))\n ((\u03c3 : \u211d) + t * Complex.I) m\u2016 \u2264\n (2 : \u211d) ^ (-(\u03c3 - 2)) * \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (2 : \u2102) m\u2016 := by\n have h\u03c3re : ((\u03c3 : \u211d) + t * Complex.I).re = \u03c3 := by simp\n have h2re : ((2 : \u2102).re) = 2 := rfl\n simp only [LSeries.norm_term_eq, h\u03c3re, h2re]\n split\n \u00b7 norm_num\n \u00b7 next hm =>\n have h\u039b : \u2016(ArithmeticFunction.vonMangoldt m : \u2102)\u2016 =\n ArithmeticFunction.vonMangoldt m :=\n Complex.norm_of_nonneg ArithmeticFunction.vonMangoldt_nonneg\n rw [h\u039b]\n rcases eq_or_ne m 1 with rfl | hm1\n \u00b7 simp [ArithmeticFunction.vonMangoldt_apply_one]\n \u00b7 have hm2 : 2 \u2264 m := by omega\n have e : ArithmeticFunction.vonMangoldt m / (m : \u211d) ^ \u03c3 =\n (1 / (m : \u211d) ^ (\u03c3 - 2)) * (ArithmeticFunction.vonMangoldt m / (m : \u211d) ^ (2 : \u211d)) := by\n rw [show (\u03c3 : \u211d) = (\u03c3 - 2) + 2 by ring,\n Real.rpow_add (by positivity : (0 : \u211d) < (m : \u211d))]\n field_simp [show (m : \u211d) \u2260 0 by positivity]\n ring_nf\n rw [e]\n have hle : (1 : \u211d) / (m : \u211d) ^ (\u03c3 - 2) \u2264 (2 : \u211d) ^ (-(\u03c3 - 2)) := by\n rw [Real.rpow_neg (by norm_num : (0 : \u211d) \u2264 2), \u2190 one_div]\n apply one_div_le_one_div_of_le (Real.rpow_pos_of_pos (by norm_num : (0 : \u211d) < 2) _)\n exact Real.rpow_le_rpow (by norm_num : (0 : \u211d) \u2264 2)\n (by exact_mod_cast hm2 : (2 : \u211d) \u2264 (m : \u211d)) (by linarith : (0 : \u211d) \u2264 \u03c3 - 2)\n have hpos : (0 : \u211d) \u2264 ArithmeticFunction.vonMangoldt m / (m : \u211d) ^ (2 : \u211d) :=\n div_nonneg ArithmeticFunction.vonMangoldt_nonneg\n (Real.rpow_nonneg (by positivity : (0 : \u211d) \u2264 (m : \u211d)) _)\n exact mul_le_mul_of_nonneg_right hle hpos\n\n/-- \u2016\u03b6\u2032/\u03b6(\u03c3+it)\u2016 \u2264 2^{\u2212(\u03c3\u22122)}\u00b7dirichletC2 for \u03c3 \u2265 2 (the (6.10)\nhalving in LSeries form; dirichletC2 \u2264 1 makes the tail free). -/\nlemma norm_logDeriv_zeta_le_two_pow {\u03c3 t : \u211d} (h\u03c3 : 2 \u2264 \u03c3) :\n \u2016logDeriv riemannZeta ((\u03c3 : \u211d) + t * Complex.I)\u2016 \u2264\n (2 : \u211d) ^ (-(\u03c3 - 2)) * dirichletC2 := by\n have hs1 : (1 : \u211d) < ((\u03c3 : \u211d) + t * Complex.I).re := by simp; linarith\n have h1 : -logDeriv riemannZeta ((\u03c3 : \u211d) + t * Complex.I)\n = LSeries (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) ((\u03c3 : \u211d) + t * Complex.I) := by\n have h2 := ArithmeticFunction.LSeries_vonMangoldt_eq_deriv_riemannZeta_div hs1\n rw [logDeriv, Pi.div_apply, h2]\n ring\n have hsum2 : Summable (fun n : \u2115 =>\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (2 : \u2102) n\u2016) := by\n rw [summable_norm_iff]\n exact ArithmeticFunction.LSeriesSummable_vonMangoldt (by norm_num)\n have hsumS : Summable (fun n : \u2115 =>\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102))\n ((\u03c3 : \u211d) + t * Complex.I) n\u2016) := by\n rw [summable_norm_iff]\n exact ArithmeticFunction.LSeriesSummable_vonMangoldt hs1\n have hle : \u2016LSeries (fun n => (ArithmeticFunction.vonMangoldt n : \u2102))\n ((\u03c3 : \u211d) + t * Complex.I)\u2016 \u2264 (2 : \u211d) ^ (-(\u03c3 - 2)) * dirichletC2 := by\n show \u2016\u2211' n : \u2115, LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102))\n ((\u03c3 : \u211d) + t * Complex.I) n\u2016 \u2264 _\n calc \u2016\u2211' n : \u2115, LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102))\n ((\u03c3 : \u211d) + t * Complex.I) n\u2016\n \u2264 \u2211' n : \u2115, \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102))\n ((\u03c3 : \u211d) + t * Complex.I) n\u2016 :=\n norm_tsum_le_tsum_norm hsumS\n _ \u2264 \u2211' n : \u2115, (2 : \u211d) ^ (-(\u03c3 - 2)) *\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (2 : \u2102) n\u2016 :=\n Summable.tsum_le_tsum (fun n => norm_term_vonMangoldt_le_two_pow h\u03c3 n) hsumS\n (hsum2.mul_left _)\n _ = (2 : \u211d) ^ (-(\u03c3 - 2)) * dirichletC2 := by rw [dirichletC2, tsum_mul_left]\n calc \u2016logDeriv riemannZeta ((\u03c3 : \u211d) + t * Complex.I)\u2016\n = \u2016LSeries (fun n => (ArithmeticFunction.vonMangoldt n : \u2102))\n ((\u03c3 : \u211d) + t * Complex.I)\u2016 := by\n rw [\u2190 h1, norm_neg]\n _ \u2264 (2 : \u211d) ^ (-(\u03c3 - 2)) * dirichletC2 := hle\n\n/-- **Kernel envelope** (D-074 \u00a77, the single-exponential form that\nreplaces the unit-step geometric series): \u2016(1+1/((\u03c3\u22121)+iU))\u207f\u2016 \u2264\ne^{(4/9)\u03c3} for \u03c3 \u2265 3 and n \u2264 (4/9)U\u00b2. From the (6.11) core\n\u20161+1/s\u2016 \u2264 1+(re s+1)/normSq s \u2264 1+\u03c3/U\u00b2. -/\ntheorem one_add_div_pow_norm_le_exp_four_ninths {n : \u2115} {\u03c3 U : \u211d}\n (h\u03c3 : 3 \u2264 \u03c3) (hU : 0 < U) (hnU : (n : \u211d) \u2264 (4 / 9) * U ^ 2) :\n \u2016(1 + 1/(((\u03c3 : \u211d) - 1) + U * Complex.I))\u2016 ^ n \u2264 Real.exp ((4 / 9) * \u03c3) := by\n have hs0 : (((\u03c3 : \u211d) - 1) + U * Complex.I) \u2260 0 := by\n intro h\n have him : (((\u03c3 : \u211d) - 1) + U * Complex.I).im = 0 := by rw [h]; simp\n simp at him\n linarith\n have hle := norm_one_add_one_div_le hs0\n have hre : (((\u03c3 : \u211d) - 1) + U * Complex.I).re + 1 = \u03c3 := by\n simp [Complex.add_re, Complex.ofReal_re, Complex.mul_re, Complex.I_re, Complex.I_im,\n Complex.sub_re, Complex.one_re]\n have hns : Complex.normSq (((\u03c3 : \u211d) - 1) + U * Complex.I) = (\u03c3 - 1) ^ 2 + U ^ 2 := by\n simp [Complex.normSq_apply]\n ring\n have hstep : ((((\u03c3 : \u211d) - 1) + U * Complex.I).re + 1) /\n Complex.normSq (((\u03c3 : \u211d) - 1) + U * Complex.I) \u2264 \u03c3 / U ^ 2 := by\n rw [hre, hns]\n have hU2 : (0 : \u211d) < U ^ 2 := by positivity\n have h1 : (0 : \u211d) \u2264 (\u03c3 - 1) ^ 2 := sq_nonneg _\n exact (div_le_div_iff_of_pos_left (by linarith : (0 : \u211d) < \u03c3)\n (by positivity) hU2).mpr (by linarith [h1])\n have hstep1 : 1 + ((((\u03c3 : \u211d) - 1) + U * Complex.I).re + 1) /\n Complex.normSq (((\u03c3 : \u211d) - 1) + U * Complex.I) \u2264 1 + \u03c3 / U ^ 2 := by\n linarith [hstep]\n have hpow1 : \u2016(1 + 1/(((\u03c3 : \u211d) - 1) + U * Complex.I))\u2016 ^ n \u2264 (1 + \u03c3 / U ^ 2) ^ n :=\n pow_le_pow_left\u2080 (norm_nonneg _) (hle.trans hstep1) n\n have hpow2 : (1 + \u03c3 / U ^ 2) ^ n \u2264 Real.exp ((n : \u211d) * (\u03c3 / U ^ 2)) := by\n calc (1 + \u03c3 / U ^ 2) ^ n \u2264 (Real.exp (\u03c3 / U ^ 2)) ^ n := by\n have h := Real.add_one_le_exp (\u03c3 / U ^ 2)\n exact pow_le_pow_left\u2080 (by positivity) (by linarith) n\n _ = Real.exp ((n : \u211d) * (\u03c3 / U ^ 2)) := (Real.exp_nat_mul (\u03c3 / U ^ 2) n).symm\n have hexp : (n : \u211d) * (\u03c3 / U ^ 2) \u2264 (4 / 9) * \u03c3 := by\n have hU2 : (0 : \u211d) < U ^ 2 := by positivity\n have h\u03c30 : (0 : \u211d) < \u03c3 := by linarith\n have h1 : (n : \u211d) / U ^ 2 \u2264 4 / 9 := by\n have h2 := div_le_div_of_nonneg_right hnU hU2.le\n rwa [mul_div_cancel_right\u2080 _ hU2.ne'] at h2\n rw [show (n : \u211d) * (\u03c3 / U ^ 2) = ((n : \u211d) / U ^ 2) * \u03c3 by ring]\n exact mul_le_mul_of_nonneg_right h1 h\u03c30.le\n calc \u2016(1 + 1/(((\u03c3 : \u211d) - 1) + U * Complex.I))\u2016 ^ n\n \u2264 Real.exp ((n : \u211d) * (\u03c3 / U ^ 2)) := hpow1.trans hpow2\n _ \u2264 Real.exp ((4 / 9) * \u03c3) := Real.exp_le_exp.mpr hexp\n\n/-! ## 5. The product envelope and the integral assembly (DL-3c/d) -/\n\n/-- **The product envelope** (D-074 \u00a77): for \u03c3 \u2265 3, 0 < t, n \u2264 (4/9)t\u00b2,\n\u2016Jlag n (\u03c3+it)\u2016 \u2264 (4\u00b7e^{\u2212c\u03c3} + 4\u00b72^{\u2212\u03c3})\u00b7dirichletC2, c = log 2 \u2212 4/9.\nThe kernel envelope (e^{(4/9)\u03c3}) times the zeta halving (2^{\u2212(\u03c3\u22122)})\ncollapses to the single exponential 4\u00b7e^{\u2212c\u03c3}: no geometric series. -/\ntheorem Jlag_dogleg_norm_le_envelope {n : \u2115} {\u03c3 t : \u211d}\n (h\u03c3 : 3 \u2264 \u03c3) (ht : 0 < t) (hnU : (n : \u211d) \u2264 (4 / 9) * t ^ 2) :\n \u2016Jlag n ((\u03c3 : \u211d) + t * Complex.I)\u2016 \u2264\n (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) * dirichletC2 := by\n have hw1 : ((\u03c3 : \u211d) + t * Complex.I) - 1 = ((\u03c3 : \u211d) - 1) + t * Complex.I := by\n push_cast\n ring\n have hs1ne : (((\u03c3 : \u211d) - 1) + t * Complex.I) \u2260 0 := by\n intro h\n have him : (((\u03c3 : \u211d) - 1) + t * Complex.I).im = 0 := by rw [h]; simp\n simp at him\n linarith\n have hwid : ((\u03c3 : \u211d) + t * Complex.I) / (((\u03c3 : \u211d) + t * Complex.I) - 1) =\n 1 + 1 / (((\u03c3 : \u211d) - 1) + t * Complex.I) := by\n rw [hw1]\n field_simp [hs1ne]\n ring\n have hker := one_add_div_pow_norm_le_exp_four_ninths h\u03c3 ht hnU\n have hzeta := norm_logDeriv_zeta_le_two_pow (show (2 : \u211d) \u2264 \u03c3 by linarith) (t := t)\n have hk : \u2016kFun n ((\u03c3 : \u211d) + t * Complex.I)\u2016 \u2264 Real.exp ((4 / 9) * \u03c3) + 1 := by\n unfold kFun\n rw [hwid]\n calc \u2016(1 + 1 / (((\u03c3 : \u211d) - 1) + t * Complex.I)) ^ n - 1\u2016\n \u2264 \u2016(1 + 1 / (((\u03c3 : \u211d) - 1) + t * Complex.I)) ^ n\u2016 + \u2016(1 : \u2102)\u2016 := norm_sub_le _ _\n _ = \u2016(1 + 1 / (((\u03c3 : \u211d) - 1) + t * Complex.I))\u2016 ^ n + 1 := by rw [norm_pow, norm_one]\n _ \u2264 Real.exp ((4 / 9) * \u03c3) + 1 := by linarith [hker]\n have hprod : \u2016Jlag n ((\u03c3 : \u211d) + t * Complex.I)\u2016 \u2264\n (Real.exp ((4 / 9) * \u03c3) + 1) * ((2 : \u211d) ^ (-(\u03c3 - 2)) * dirichletC2) := by\n have hn3 : \u2016Jlag n ((\u03c3 : \u211d) + t * Complex.I)\u2016 =\n \u2016kFun n ((\u03c3 : \u211d) + t * Complex.I)\u2016 *\n \u2016logDeriv riemannZeta ((\u03c3 : \u211d) + t * Complex.I)\u2016 := by\n show \u2016kFun n ((\u03c3 : \u211d) + t * Complex.I) *\n (-logDeriv riemannZeta ((\u03c3 : \u211d) + t * Complex.I))\u2016 = _\n rw [norm_mul, norm_neg]\n rw [hn3]\n exact mul_le_mul hk hzeta (norm_nonneg _)\n (add_nonneg (Real.exp_nonneg _) (by norm_num))\n have h2b : (2 : \u211d) ^ (-\u03c3) = Real.exp (-(Real.log 2) * \u03c3) := by\n rw [Real.rpow_def_of_pos (by norm_num : (0 : \u211d) < 2)]\n congr 1\n ring\n have h22 : (2 : \u211d) ^ (2 : \u211d) = 4 := by\n rw [Real.rpow_two]\n norm_num\n have h2a : (2 : \u211d) ^ (-(\u03c3 - 2)) = 4 * (2 : \u211d) ^ (-\u03c3) := by\n rw [show (-(\u03c3 - 2)) = -\u03c3 + 2 by ring, Real.rpow_add (by norm_num : (0 : \u211d) < 2), h2b, h22]\n ring\n have hexp_alg : Real.exp ((4 / 9) * \u03c3) * Real.exp (-(Real.log 2) * \u03c3) =\n Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) := by\n rw [\u2190 Real.exp_add]\n congr 1\n ring\n have halg : (Real.exp ((4 / 9) * \u03c3) + 1) * ((2 : \u211d) ^ (-(\u03c3 - 2))) =\n 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3) := by\n rw [h2a, h2b]\n calc (Real.exp ((4 / 9) * \u03c3) + 1) * (4 * Real.exp (-(Real.log 2) * \u03c3))\n = 4 * (Real.exp ((4 / 9) * \u03c3) * Real.exp (-(Real.log 2) * \u03c3)) +\n 4 * Real.exp (-(Real.log 2) * \u03c3) := by ring\n _ = 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * Real.exp (-(Real.log 2) * \u03c3) := by\n rw [hexp_alg]\n _ = 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3) := by\n rw [h2b]\n calc \u2016Jlag n ((\u03c3 : \u211d) + t * Complex.I)\u2016\n \u2264 (Real.exp ((4 / 9) * \u03c3) + 1) * ((2 : \u211d) ^ (-(\u03c3 - 2)) * dirichletC2) := hprod\n _ = ((Real.exp ((4 / 9) * \u03c3) + 1) * (2 : \u211d) ^ (-(\u03c3 - 2))) * dirichletC2 := by ring\n _ = (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) * dirichletC2 := by\n rw [halg]\n\n/-- The FTC-bound \u222b\u2083^XR e^{\u2212c\u03c3}d\u03c3 \u2264 e^{\u22123c}/c for c > 0. -/\nlemma integral_exp_neg_le {c XR : \u211d} (hc : 0 < c) (_hXR : 3 \u2264 XR) :\n \u222b \u03c3 in (3 : \u211d)..XR, Real.exp (-c * \u03c3) \u2264 Real.exp (-3 * c) / c := by\n have hF : \u2200 x \u2208 Set.uIcc (3 : \u211d) XR,\n HasDerivAt (fun \u03c3 => -Real.exp (-c * \u03c3) / c) (Real.exp (-c * x)) x := by\n intro x hx\n have h2 : HasDerivAt (fun \u03c3 => Real.exp (-c * \u03c3)) (Real.exp (-c * x) * (-c)) x := by\n have h := ((hasDerivAt_id' x).const_mul (-c)).exp\n rwa [mul_one] at h\n have h3 := h2.const_mul (-1 / c)\n rw [show (-1 / c) * (Real.exp (-c * x) * (-c)) = Real.exp (-c * x) by\n field_simp [hc.ne']] at h3\n have h5 : (fun \u03c3 => (-1 / c) * Real.exp (-c * \u03c3)) =\n (fun \u03c3 => -Real.exp (-c * \u03c3) / c) := by\n funext \u03c3\n field_simp [hc.ne']\n rw [h5] at h3\n exact h3\n have hint : IntervalIntegrable (fun \u03c3 => Real.exp (-c * \u03c3)) MeasureTheory.volume 3 XR := by\n apply ContinuousOn.intervalIntegrable\n exact (Real.continuous_exp.comp (continuous_const.mul continuous_id)).continuousOn\n rw [intervalIntegral.integral_eq_sub_of_hasDerivAt hF hint]\n have h1 : -Real.exp (-c * XR) / c \u2264 0 := by\n apply div_nonpos_of_nonpos_of_nonneg _ hc.le\n linarith [Real.exp_pos (-c * XR)]\n have e : -Real.exp (-c * 3) / c = Real.exp (-3 * c) / c := by\n congr 1\n congr 1\n ring\n rw [e]\n linarith [h1]\n\n/-- The certified exponent-decay constant c = log 2 \u2212 4/9 \u2265 0.2487. -/\nlemma cdog_gt : (0.2487 : \u211d) \u2264 Real.log 2 - 4 / 9 := by\n have h := Real.log_two_gt_d9\n norm_num at h\n linarith\n\n/-- The certified e^{4/3} \u2264 3.8073 (the (1\u2212x/16)\u207b\u00b9\u2076 route + d9 e). -/\nlemma exp_four_thirds_le : Real.exp (4 / 3) \u2264 (3.8073 : \u211d) := by\n have he13 : Real.exp (1 / 3) \u2264 (1.4006 : \u211d) :=\n le_trans (exp_le_inv_sub_sixteen (by norm_num) (by norm_num)) (by norm_num)\n rw [show (4 / 3 : \u211d) = 1 + 1 / 3 by norm_num, Real.exp_add]\n calc Real.exp 1 * Real.exp (1 / 3) \u2264 2.7182818286 * 1.4006 :=\n mul_le_mul Real.exp_one_lt_d9.le he13 (Real.exp_pos _).le (by norm_num)\n _ \u2264 3.8073 := by norm_num\n\n/-- **THE HIGH-HORIZONTAL BOUND** (D-074 \u00a77 capstone; D-073 Cor 4.2's\nR(1.5) in single-exponential-envelope form): for 0 < U, n \u2264 (4/9)U\u00b2\n(i.e. U \u2265 (3/2)\u221an) and 3 \u2264 XR, \u2016HIntegral (Jlag n) 3 XR U\u2016 \u2264 8.38\n(charged; the true value \u2264 1.2 at n = 10\u2075, E-034 V5). Charged with\ndirichletC2 \u2264 1 \u2014 the tight R(1.5) = 5.94 would need a dirichletC2 \u2264\n0.57 build (documented as the tightening path; the fold is\nindifferent: \u0394 \u2248 +2.4 per side). -/\ntheorem hIntegral_Jlag_dogleg_norm_le {n : \u2115} {U XR : \u211d}\n (hU : 0 < U) (hnU : (n : \u211d) \u2264 (4 / 9) * U ^ 2) (hXR : 3 \u2264 XR) :\n \u2016HIntegral (Jlag n) 3 XR U\u2016 \u2264 (8.38 : \u211d) := by\n have hc : (0 : \u211d) < Real.log 2 - 4 / 9 := by\n have h := cdog_gt\n linarith\n have hpt : \u2200 \u03c3 \u2208 Set.Ioc 3 XR,\n \u2016Jlag n ((\u03c3 : \u211d) + U * Complex.I)\u2016 \u2264\n (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) * dirichletC2 :=\n fun \u03c3 h\u03c3 => Jlag_dogleg_norm_le_envelope (by linarith [h\u03c3.1]) hU hnU\n have hcontA : Continuous (fun \u03c3 : \u211d => Real.exp (-(Real.log 2 - 4 / 9) * \u03c3)) :=\n Real.continuous_exp.comp (continuous_const.mul continuous_id)\n have hcontB : Continuous (fun \u03c3 : \u211d => (2 : \u211d) ^ (-\u03c3)) := by\n have h1 : Continuous (fun \u03c3 : \u211d => Real.exp (-(Real.log 2) * \u03c3)) :=\n Real.continuous_exp.comp (continuous_const.mul continuous_id)\n have h2 : (fun \u03c3 : \u211d => (2 : \u211d) ^ (-\u03c3)) =\n (fun \u03c3 : \u211d => Real.exp (-(Real.log 2) * \u03c3)) := by\n funext \u03c3\n rw [Real.rpow_def_of_pos (by norm_num : (0 : \u211d) < 2)]\n congr 1\n ring\n rw [h2]\n exact h1\n have hIntA : IntervalIntegrable (fun \u03c3 : \u211d => 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3))\n volume 3 XR := by\n apply ContinuousOn.intervalIntegrable\n exact (hcontA.const_mul 4).continuousOn\n have hIntB : IntervalIntegrable (fun \u03c3 : \u211d => 4 * (2 : \u211d) ^ (-\u03c3)) volume 3 XR := by\n apply ContinuousOn.intervalIntegrable\n exact (hcontB.const_mul 4).continuousOn\n have hIntG : IntervalIntegrable (fun \u03c3 : \u211d =>\n (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) * dirichletC2)\n volume 3 XR := by\n apply ContinuousOn.intervalIntegrable\n exact ((hcontA.add hcontB).const_mul dirichletC2).continuousOn\n -- step 1: \u2016H\u2016 \u2264 \u222b envelope\n have h1 : \u2016HIntegral (Jlag n) 3 XR U\u2016 \u2264\n \u222b \u03c3 in (3 : \u211d)..XR,\n (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) * dirichletC2 := by\n unfold HIntegral\n apply intervalIntegral.norm_integral_le_of_norm_le hXR _ hIntG\n exact Filter.Eventually.of_forall (fun \u03c3 h\u03c3 => hpt \u03c3 h\u03c3)\n -- step 2: \u222b envelope = dirichletC2\u00b7(4\u222be^{\u2212c\u03c3} + 4\u222b2^{\u2212\u03c3})\n have h2 : \u222b \u03c3 in (3 : \u211d)..XR,\n (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) * dirichletC2\n = dirichletC2 * (\u222b \u03c3 in (3 : \u211d)..XR, 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) +\n \u222b \u03c3 in (3 : \u211d)..XR, 4 * (2 : \u211d) ^ (-\u03c3)) := by\n rw [integral_const_mul, intervalIntegral.integral_add hIntA hIntB]\n ring\n -- step 3: the two integral bounds\n have h3a : \u222b \u03c3 in (3 : \u211d)..XR, 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) \u2264\n Real.exp (4 / 3) / (2 * (Real.log 2 - 4 / 9)) := by\n rw [intervalIntegral.integral_const_mul]\n have h := integral_exp_neg_le hc hXR\n have he3c : Real.exp (-3 * (Real.log 2 - 4 / 9)) = Real.exp (4 / 3) / 8 := by\n have h3l2 : Real.exp (-(3 * Real.log 2)) = 1 / 8 := by\n have e1 : -(3 * Real.log 2) = Real.log (1 / 8) := by\n rw [Real.log_div (by norm_num : (1 : \u211d) \u2260 0) (by norm_num : (8 : \u211d) \u2260 0),\n Real.log_one, Real.log_pow]\n push_cast\n ring\n rw [e1, Real.exp_log (by norm_num : (0 : \u211d) < 1 / 8)]\n calc Real.exp (-3 * (Real.log 2 - 4 / 9))\n = Real.exp ((4 / 3) + -(3 * Real.log 2)) := by congr 1; ring\n _ = Real.exp (4 / 3) * Real.exp (-(3 * Real.log 2)) := by rw [Real.exp_add]\n _ = Real.exp (4 / 3) / 8 := by rw [h3l2]; ring\n rw [he3c] at h\n calc 4 * (Real.exp (-3 * (Real.log 2 - 4 / 9)) / (Real.log 2 - 4 / 9))\n = 4 * ((Real.exp (4 / 3) / 8) / (Real.log 2 - 4 / 9)) := by rw [he3c]\n _ = Real.exp (4 / 3) / (2 * (Real.log 2 - 4 / 9)) := by\n field_simp [hc.ne']\n ring\n have h3b : \u222b \u03c3 in (3 : \u211d)..XR, 4 * (2 : \u211d) ^ (-\u03c3) \u2264 1 / (2 * Real.log 2) := by\n have h2e : (fun \u03c3 : \u211d => (2 : \u211d) ^ (-\u03c3)) =\n (fun \u03c3 : \u211d => Real.exp (-(Real.log 2) * \u03c3)) := by\n funext \u03c3\n rw [Real.rpow_def_of_pos (by norm_num : (0 : \u211d) < 2)]\n congr 1\n ring\n rw [h2e, intervalIntegral.integral_const_mul]\n have h := integral_exp_neg_le (Real.log_pos (by norm_num : (1 : \u211d) < 2)) hXR\n have h3l2 : Real.exp (-3 * Real.log 2) = 1 / 8 := by\n have e1 : (-3 * Real.log 2) = Real.log (1 / 8) := by\n rw [Real.log_div (by norm_num : (1 : \u211d) \u2260 0) (by norm_num : (8 : \u211d) \u2260 0),\n Real.log_one, Real.log_pow]\n push_cast\n ring\n rw [e1, Real.exp_log (by norm_num : (0 : \u211d) < 1 / 8)]\n rw [h3l2] at h\n calc 4 * ((1 / 8) / Real.log 2) = 1 / (2 * Real.log 2) := by\n field_simp [Real.log_pos (by norm_num : (1 : \u211d) < 2)].ne'\n ring\n exact h.trans (by rw [h3l2])\n -- hmm, h's RHS after rw [h3l2] at h: (1/8)/log2; the calc shows 4\u00b7((1/8)/log2) = 1/(2 log2)\n -- step 4: the certified assembly\n have hlog2 : (0.6931471803 : \u211d) \u2264 Real.log 2 := Real.log_two_gt_d9\n have h48 : Real.exp (4 / 3) / (2 * (Real.log 2 - 4 / 9)) \u2264 (7.6545 : \u211d) := by\n have hcge := cdog_gt\n have h1 : Real.exp (4 / 3) / (2 * (Real.log 2 - 4 / 9)) \u2264 3.8073 / (2 * 0.2487) :=\n div_le_div exp_four_thirds_le (by linarith) (by norm_num) (by positivity)\n calc Real.exp (4 / 3) / (2 * (Real.log 2 - 4 / 9))\n \u2264 3.8073 / (2 * 0.2487) := h1\n _ \u2264 7.6545 := by norm_num\n have h72 : 1 / (2 * Real.log 2) \u2264 (0.7214 : \u211d) := by\n have h1 : 1 / (2 * Real.log 2) \u2264 1 / (2 * 0.6931471803) :=\n one_div_le_one_div_of_le (by positivity) (by linarith)\n calc 1 / (2 * Real.log 2) \u2264 1 / (2 * 0.6931471803) := h1\n _ \u2264 0.7214 := by norm_num\n have hC2 : dirichletC2 \u2264 1 := dirichletC2_le_one\n have hsum : dirichletC2 * (\u222b \u03c3 in (3 : \u211d)..XR, 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) +\n \u222b \u03c3 in (3 : \u211d)..XR, 4 * (2 : \u211d) ^ (-\u03c3)) \u2264 (8.38 : \u211d) := by\n have hA0 : (0 : \u211d) \u2264 Real.exp (4 / 3) / (2 * (Real.log 2 - 4 / 9)) := by positivity\n have hB0 : (0 : \u211d) \u2264 1 / (2 * Real.log 2) := by positivity\n calc dirichletC2 * (\u222b \u03c3 in (3 : \u211d)..XR, 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) +\n \u222b \u03c3 in (3 : \u211d)..XR, 4 * (2 : \u211d) ^ (-\u03c3))\n \u2264 1 * (Real.exp (4 / 3) / (2 * (Real.log 2 - 4 / 9)) + 1 / (2 * Real.log 2)) := by\n apply mul_le_mul hC2 (add_le_add h3a h3b) (by positivity) (by norm_num)\n _ = Real.exp (4 / 3) / (2 * (Real.log 2 - 4 / 9)) + 1 / (2 * Real.log 2) := by ring\n _ \u2264 7.6545 + 0.7214 := add_le_add h48 h72\n _ \u2264 8.38 := by norm_num\n calc \u2016HIntegral (Jlag n) 3 XR U\u2016\n \u2264 \u222b \u03c3 in (3 : \u211d)..XR,\n (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) * dirichletC2 := h1\n _ = dirichletC2 * (\u222b \u03c3 in (3 : \u211d)..XR, 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) +\n \u222b \u03c3 in (3 : \u211d)..XR, 4 * (2 : \u211d) ^ (-\u03c3)) := h2\n _ \u2264 8.38 := hsum\n\nend NguyenRH1\n\nend\n",
"structuredPatch": [
{
"oldStart": 612,
"oldLines": 15,
"newStart": 612,
"newLines": 15,
"lines": [
" rw [h2]",
" exact h1",
" have hIntA : IntervalIntegrable (fun \u03c3 : \u211d => 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3))",
"- volume 3 XR := by",
"+ MeasureTheory.volume 3 XR := by",
" apply ContinuousOn.intervalIntegrable",
" exact (hcontA.const_mul 4).continuousOn",
"- have hIntB : IntervalIntegrable (fun \u03c3 : \u211d => 4 * (2 : \u211d) ^ (-\u03c3)) volume 3 XR := by",
"+ have hIntB : IntervalIntegrable (fun \u03c3 : \u211d => 4 * (2 : \u211d) ^ (-\u03c3)) MeasureTheory.volume 3 XR := by",
" apply ContinuousOn.intervalIntegrable",
" exact (hcontB.const_mul 4).continuousOn",
" have hIntG : IntervalIntegrable (fun \u03c3 : \u211d =>",
" (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) * dirichletC2)",
"- volume 3 XR := by",
"+ MeasureTheory.volume 3 XR := by",
" apply ContinuousOn.intervalIntegrable",
" exact ((hcontA.add hcontB).const_mul dirichletC2).continuousOn",
" -- step 1: \u2016H\u2016 \u2264 \u222b envelope"
]
}
],
"userModified": false,
"replaceAll": false
}
tool: Edit ok
input
{
"file_path": "D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiArchimedean.lean",
"old_string": " have hs : Complex.Gamma ((1 + (0 : \u2102)) / 2) \u2260 0 := by\n have e : (1 + (0 : \u2102)) / 2 = 1 / 2 := by ring\n rw [e, Complex.Gamma_one_half_eq]\n intro hz\n rw [Complex.cpow_eq_zero_iff (by norm_num : ((1 : \u2102) / 2) \u2260 0)] at hz\n exact Real.pi_ne_zero (by exact_mod_cast hz.1)",
"new_string": " have hs : Complex.Gamma ((1 + (0 : \u2102)) / 2) \u2260 0 := by\n have e : (1 + (0 : \u2102)) / 2 = 1 / 2 := by ring\n rw [e, Complex.Gamma_one_half_eq]\n have hpi : (\u2191Real.pi : \u2102) \u2260 0 := by exact_mod_cast Real.pi_ne_zero\n rw [Complex.cpow_def_of_ne_zero hpi]\n exact Complex.exp_ne_zero _"
}
result 2026-08-22 06:21:45Z → 2026-08-26 06:20:19Z
{
"filePath": "D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiDogLeg.lean",
"oldString": " have h3b : \u222b \u03c3 in (3 : \u211d)..XR, 4 * (2 : \u211d) ^ (-\u03c3) \u2264 1 / (2 * Real.log 2) := by\n have h2e : (fun \u03c3 : \u211d => (2 : \u211d) ^ (-\u03c3)) =\n (fun \u03c3 : \u211d => Real.exp (-(Real.log 2) * \u03c3)) := by\n funext \u03c3\n rw [Real.rpow_def_of_pos (by norm_num : (0 : \u211d) < 2)]\n congr 1\n ring\n rw [h2e, intervalIntegral.integral_const_mul]\n have h := integral_exp_neg_le (Real.log_pos (by norm_num : (1 : \u211d) < 2)) hXR\n have h3l2 : Real.exp (-3 * Real.log 2) = 1 / 8 := by\n have e1 : (-3 * Real.log 2) = Real.log (1 / 8) := by\n rw [Real.log_div (by norm_num : (1 : \u211d) \u2260 0) (by norm_num : (8 : \u211d) \u2260 0),\n Real.log_one, Real.log_pow]\n push_cast\n ring\n rw [e1, Real.exp_log (by norm_num : (0 : \u211d) < 1 / 8)]\n rw [h3l2] at h\n calc 4 * ((1 / 8) / Real.log 2) = 1 / (2 * Real.log 2) := by\n field_simp [Real.log_pos (by norm_num : (1 : \u211d) < 2)].ne'\n ring\n exact h.trans (by rw [h3l2])\n -- hmm, h's RHS after rw [h3l2] at h: (1/8)/log2; the calc shows 4\u00b7((1/8)/log2) = 1/(2 log2)",
"newString": " have h3b : \u222b \u03c3 in (3 : \u211d)..XR, 4 * (2 : \u211d) ^ (-\u03c3) \u2264 1 / (2 * Real.log 2) := by\n have h2e : (fun \u03c3 : \u211d => (2 : \u211d) ^ (-\u03c3)) =\n (fun \u03c3 : \u211d => Real.exp (-(Real.log 2) * \u03c3)) := by\n funext \u03c3\n rw [Real.rpow_def_of_pos (by norm_num : (0 : \u211d) < 2)]\n congr 1\n ring\n rw [h2e, intervalIntegral.integral_const_mul]\n have h := integral_exp_neg_le (Real.log_pos (by norm_num : (1 : \u211d) < 2)) hXR\n have h3l2 : Real.exp (-3 * Real.log 2) = 1 / 8 := by\n have e1 : (-3 * Real.log 2) = Real.log (1 / 8) := by\n rw [Real.log_div (by norm_num : (1 : \u211d) \u2260 0) (by norm_num : (8 : \u211d) \u2260 0),\n Real.log_one, Real.log_pow]\n push_cast\n ring\n rw [e1, Real.exp_log (by norm_num : (0 : \u211d) < 1 / 8)]\n rw [h3l2] at h\n calc 4 * \u222b \u03c3 in (3 : \u211d)..XR, Real.exp (-(Real.log 2) * \u03c3)\n \u2264 4 * ((1 / 8) / Real.log 2) := mul_le_mul_of_nonneg_left h (by norm_num)\n _ = 1 / (2 * Real.log 2) := by\n field_simp [Real.log_pos (by norm_num : (1 : \u211d) < 2)].ne'\n ring",
"originalFile": "/-\nNguyenRH1/LiDogLeg.lean \u2014 ii\u2032-6-DL-1 (D-074, session 040): the zero-free\ndog-leg deformation of the Lagarias horizontal right tail.\n\nTHE CONTENT (D-074 \u00a73.1\u20133.2): on the dog-leg rectangle [3, X_R]\u00d7[T, U]\n(T > 0), the Lagarias integrand Jlag n s = (s/(s\u22121))\u207f\u22121 \u00b7 (\u2212\u03b6\u2032/\u03b6(s)) is\nholomorphic UNCONDITIONALLY (s \u2260 1 since im > 0; \u03b6 s \u2260 0 for re s \u2265 3 > 1\nby Mathlib's Euler-product nonvanishing `riemannZeta_ne_zero_of_one_lt_re`\n\u2014 NO perimeter hypothesis, no zero-avoidance at U). Cauchy's theorem\n(`HolomorphicOn.vanishesOnRectangle`) then gives the EXACT deformation\nidentity\n H(3\u2192X_R, T) = H(3\u2192X_R, U) \u2212 V(X_R, T\u2192U) + V(3, T\u2192U)\n(the upper right tail = the high horizontal \u2212 the right drop + the left\nlift), plus the Jlag conjugation identity for the lower-side transfer.\n\nThis is the repair of Finding F-D (D-072): the broken low-path envelope\nis ABANDONED (not bounded) \u2014 the magnitude bound comes later from the\nthree dog-leg pieces, all in the unconditionally zero-free region.\n-/\nimport Mathlib\nimport NguyenRH1.LiSides\nimport NguyenRH1.LiTightR\nimport NguyenRH1.LiBasePoints\n\nopen Zeta23 Complex Filter Topology\nopen scoped Nat\n\nnoncomputable section\n\nnamespace NguyenRH1\n\n/-! ## 1. Dog-leg analyticity (D-074 \u00a73.1; no perimeter) -/\n\n/-- The dog-leg corners (same real-part/imaginary-part form as rectZ/rectW). -/\ndef dogZ (T : \u211d) : \u2102 := ((3 : \u211d) : \u2102) + (T : \u211d) * Complex.I\ndef dogW (XR U : \u211d) : \u2102 := ((XR : \u211d) : \u2102) + (U : \u211d) * Complex.I\n\nlemma dogZ_re (T : \u211d) : (dogZ T).re = 3 := by simp [dogZ]\nlemma dogZ_im (T : \u211d) : (dogZ T).im = T := by simp [dogZ]\nlemma dogW_re (XR U : \u211d) : (dogW XR U).re = XR := by simp [dogW]\nlemma dogW_im (XR U : \u211d) : (dogW XR U).im = U := by simp [dogW]\n\n/-- Jlag is differentiable at every point with 3 \u2264 re, 0 < im:\n\u03b6 is zero-free for 1 < re (Mathlib `riemannZeta_ne_zero_of_one_lt_re`,\nUNCONDITIONAL \u2014 the Euler-product region) and s \u2260 1 (im \u2260 0).\nNO perimeter hypothesis. -/\ntheorem Jlag_differentiableAt_dogleg {n : \u2115} {s : \u2102}\n (hre : 3 \u2264 s.re) (him : 0 < s.im) :\n DifferentiableAt \u2102 (Jlag n) s := by\n apply Jlag_differentiableAt\n \u00b7 rintro rfl\n simp at him\n \u00b7 exact riemannZeta_ne_zero_of_one_lt_re (by linarith)\n\n/-- Jlag is holomorphic on the whole dog-leg rectangle\n[3, X_R]\u00d7[T, U] (T > 0). -/\ntheorem holomorphicOn_Jlag_dogleg {n : \u2115} {T U XR : \u211d}\n (hT : 0 < T) (hTU : T \u2264 U) (hXR : 3 \u2264 XR) :\n HolomorphicOn (Jlag n) (Rectangle (dogZ T) (dogW XR U)) := by\n intro s hs\n rw [Rectangle, Complex.mem_reProdIm, dogZ_re, dogW_re, dogZ_im, dogW_im] at hs\n rw [Set.uIcc_of_le hXR, Set.uIcc_of_le hTU] at hs\n exact (Jlag_differentiableAt_dogleg hs.1.1 (by linarith [hs.2.1])).differentiableWithinAt\n\n/-- **The dog-leg rectangle integral vanishes** (Cauchy; the region is\nunconditionally zero-free \u2014 the residue sum is EMPTY, no perimeter). -/\ntheorem rectangleIntegral_Jlag_dogleg_eq_zero {n : \u2115} {T U XR : \u211d}\n (hT : 0 < T) (hTU : T \u2264 U) (hXR : 3 \u2264 XR) :\n RectangleIntegral (Jlag n) (dogZ T) (dogW XR U) = 0 :=\n (holomorphicOn_Jlag_dogleg hT hTU hXR).vanishesOnRectangle subset_rfl\n\n/-- The (2\u03c0i)\u207b\u00b9-normalized form (API symmetry with rectInt'_Jlag). -/\ntheorem rectangleIntegral'_Jlag_dogleg_eq_zero {n : \u2115} {T U XR : \u211d}\n (hT : 0 < T) (hTU : T \u2264 U) (hXR : 3 \u2264 XR) :\n RectangleIntegral' (Jlag n) (dogZ T) (dogW XR U) = 0 := by\n rw [RectangleIntegral', rectangleIntegral_Jlag_dogleg_eq_zero hT hTU hXR,\n smul_zero]\n\n/-- **THE EXACT DOG-LEG DEFORMATION IDENTITY** (D-074 \u00a73.2 (\u2605), the\ncapstone for ii\u2032-6-c): the low right-horizontal equals the high\nhorizontal minus the right drop plus the left lift. Orientations: all\nH-integrals left-to-right, all V-integrals upward (the main contour's\ntop side is their reversal, handled at the fold site). -/\ntheorem upper_right_horizontal_eq_dogleg {n : \u2115} {T U XR : \u211d}\n (hT : 0 < T) (hTU : T \u2264 U) (hXR : 3 \u2264 XR) :\n HIntegral (Jlag n) 3 XR T =\n HIntegral (Jlag n) 3 XR U - VIntegral (Jlag n) XR T U +\n VIntegral (Jlag n) 3 T U := by\n have h0 := rectangleIntegral_Jlag_dogleg_eq_zero (n := n) hT hTU hXR\n unfold RectangleIntegral at h0\n rw [dogZ_re, dogZ_im, dogW_re, dogW_im] at h0\n linear_combination h0\n\n/-! ## 2. The conjugation identity (for the lower-side transfer, DL-5) -/\n\n/-- kFun is conjugation-symmetric (real-coefficient rational function). -/\ntheorem kFun_conj (n : \u2115) (s : \u2102) :\n kFun n ((starRingEnd \u2102) s) = (starRingEnd \u2102) (kFun n s) := by\n unfold kFun\n simp [map_sub, map_pow, map_one]\n\n/-- **Jlag is conjugation-symmetric** (from `riemannZeta_conj` +\n`iteratedDeriv_riemannZeta_conj`): Jlag n (s\u0304) = conj (Jlag n s).\nNeeded for the lower-horizontal transfer (DL-5). -/\ntheorem Jlag_conj (n : \u2115) {s : \u2102} (hs : s \u2260 1) :\n Jlag n ((starRingEnd \u2102) s) = (starRingEnd \u2102) (Jlag n s) := by\n have h1 : deriv riemannZeta ((starRingEnd \u2102) s) =\n (starRingEnd \u2102) (deriv riemannZeta s) := by\n have h := iteratedDeriv_riemannZeta_conj 1 hs\n rwa [iteratedDeriv_one] at h\n unfold Jlag\n rw [kFun_conj, _root_.riemannZeta_conj, h1]\n simp only [map_mul, map_neg, map_div\u2080]\n\n/-! ## 3. The left-lift bound (DL-2, D-074 \u00a73.3 V_left) -/\n\n/-- **Kernel on the lift**: \u2016kFun n (3+it)\u2016 \u2264 e^{5/2}+1 for n \u2264 t\u00b2\n(D-074 \u00a76: |(3+it)/(2+it)|\u00b2 = (9+t\u00b2)/(4+t\u00b2) = 1 + 5/(4+t\u00b2), whose n-th\npower is \u2264 e^{5n/(2(4+t\u00b2))} \u2264 e^{5/2}). -/\ntheorem kFun_three_add_it_norm_le_exp_five_halves_add_one {n : \u2115} {t : \u211d}\n (hT : (n : \u211d) \u2264 t ^ 2) :\n \u2016kFun n ((3 : \u211d) + t * Complex.I)\u2016 \u2264 Real.exp (5 / 2) + 1 := by\n rcases Nat.eq_zero_or_pos n with hn | hn\n \u00b7 subst hn\n simp only [kFun, pow_zero, sub_self, norm_zero]\n positivity\n \u00b7 have hnR : (1 : \u211d) \u2264 (n : \u211d) := by exact_mod_cast hn\n have ht2 : (0 : \u211d) < 4 + t ^ 2 := by positivity\n have hn4t2 : (n : \u211d) \u2264 4 + t ^ 2 := by linarith [hT]\n have hQpos : (0 : \u211d) \u2264 (9 + t ^ 2) / (4 + t ^ 2) := by positivity\n have hQle : (9 + t ^ 2) / (4 + t ^ 2) \u2264 Real.exp (5 / (n : \u211d)) := 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) \u2264 5 / (n : \u211d) :=\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 : \u211d))\n linarith\n have hQn : ((9 + t ^ 2) / (4 + t ^ 2)) ^ n \u2264 Real.exp 5 := by\n calc ((9 + t ^ 2) / (4 + t ^ 2)) ^ n \u2264 (Real.exp (5 / (n : \u211d))) ^ n :=\n pow_le_pow_left\u2080 hQpos hQle n\n _ = Real.exp 5 := by\n rw [\u2190 Real.exp_nat_mul]\n congr 1\n have hn0 : (n : \u211d) \u2260 0 := by exact_mod_cast hn.ne'\n field_simp [hn0]\n have hns3 : Complex.normSq ((3 : \u211d) + t * Complex.I) = 9 + t ^ 2 := by\n simp [Complex.normSq_apply]\n ring\n have hns2 : Complex.normSq ((2 : \u211d) + t * Complex.I) = 4 + t ^ 2 := by\n simp [Complex.normSq_apply]\n ring\n have hnormA : \u2016((3 : \u211d) + t * Complex.I)\u2016 = Real.sqrt (9 + t ^ 2) := by\n have h1 : \u2016((3 : \u211d) + t * Complex.I)\u2016 =\n Real.sqrt (Complex.normSq ((3 : \u211d) + t * Complex.I)) := by\n rw [Complex.normSq_eq_norm_sq, Real.sqrt_sq (norm_nonneg _)]\n rw [h1, hns3]\n have hnormB : \u2016((2 : \u211d) + t * Complex.I)\u2016 = Real.sqrt (4 + t ^ 2) := by\n have h1 : \u2016((2 : \u211d) + t * Complex.I)\u2016 =\n Real.sqrt (Complex.normSq ((2 : \u211d) + t * Complex.I)) := by\n rw [Complex.normSq_eq_norm_sq, Real.sqrt_sq (norm_nonneg _)]\n rw [h1, hns2]\n have hnorm : \u2016((3 : \u211d) + t * Complex.I) / ((2 : \u211d) + t * Complex.I)\u2016 =\n Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2)) := by\n rw [norm_div, hnormA, hnormB,\n \u2190 Real.sqrt_div (by positivity : (0 : \u211d) \u2264 9 + t ^ 2)]\n have hs1 : ((3 : \u211d) + t * Complex.I) - 1 = (2 : \u211d) + t * Complex.I := by\n push_cast\n ring\n unfold kFun\n rw [hs1]\n calc \u2016(((3 : \u211d) + t * Complex.I) / ((2 : \u211d) + t * Complex.I)) ^ n - 1\u2016\n \u2264 \u2016(((3 : \u211d) + t * Complex.I) / ((2 : \u211d) + t * Complex.I)) ^ n\u2016 + \u2016(1 : \u2102)\u2016 :=\n norm_sub_le _ _\n _ = (Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n + 1 := by\n rw [norm_pow, hnorm, norm_one]\n _ \u2264 Real.exp (5 / 2) + 1 := by\n have h4 : (Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n \u2264 Real.exp (5 / 2) := by\n have hx0 : (0 : \u211d) \u2264 Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2)) :=\n Real.sqrt_nonneg _\n have hx : (0 : \u211d) \u2264 (Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n :=\n pow_nonneg hx0 n\n have h5 : ((Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n) ^ 2 \u2264 Real.exp 5 := by\n have e : ((Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n) ^ 2 =\n ((9 + t ^ 2) / (4 + t ^ 2)) ^ n := by\n rw [\u2190 pow_mul, mul_comm n 2, pow_mul, Real.sq_sqrt hQpos]\n rw [e]\n exact hQn\n have h8 : (Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n =\n Real.sqrt (((Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n) ^ 2) := by\n rw [Real.sqrt_sq hx]\n rw [h8]\n calc Real.sqrt (((Real.sqrt ((9 + t ^ 2) / (4 + t ^ 2))) ^ n) ^ 2)\n \u2264 Real.sqrt (Real.exp 5) := Real.sqrt_le_sqrt h5\n _ = Real.exp (5 / 2) := (Real.exp_half 5).symm\n linarith [h4]\n\n/-- The Dirichlet majorant at s = 3 (summable since 3 > 1). -/\ndef dirichletC3 : \u211d :=\n \u2211' n : \u2115, \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (3 : \u2102) n\u2016\n\n/-- Termwise 3-vs-2 comparison for the \u039b L-series: \u039b(n)/n\u00b3 \u2264 (1/2)\u00b7\u039b(n)/n\u00b2. -/\nlemma norm_term_vonMangoldt_three_le_half (n : \u2115) :\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (3 : \u2102) n\u2016 \u2264\n (1 / 2) * \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (2 : \u2102) n\u2016 := by\n have h3re : ((3 : \u2102).re) = 3 := rfl\n have h2re : ((2 : \u2102).re) = 2 := rfl\n simp only [LSeries.norm_term_eq, h3re, h2re]\n split\n \u00b7 norm_num\n \u00b7 next hn =>\n rcases eq_or_ne n 1 with rfl | hn1\n \u00b7 simp [ArithmeticFunction.vonMangoldt_apply_one]\n \u00b7 have hn2 : 2 \u2264 n := by omega\n have h\u039b : \u2016(ArithmeticFunction.vonMangoldt n : \u2102)\u2016 =\n ArithmeticFunction.vonMangoldt n :=\n Complex.norm_of_nonneg ArithmeticFunction.vonMangoldt_nonneg\n rw [h\u039b]\n have e : ArithmeticFunction.vonMangoldt n / (n : \u211d) ^ (3 : \u211d) =\n (1 / (n : \u211d)) * (ArithmeticFunction.vonMangoldt n / (n : \u211d) ^ (2 : \u211d)) := by\n rw [show (3 : \u211d) = 2 + 1 by norm_num,\n Real.rpow_add (by positivity : (0 : \u211d) < (n : \u211d)), Real.rpow_one]\n field_simp [show (n : \u211d) \u2260 0 by positivity]\n have h12 : (1 : \u211d) / (n : \u211d) \u2264 1 / 2 :=\n one_div_le_one_div_of_le (by norm_num : (0 : \u211d) < 2)\n (by exact_mod_cast hn2 : (2 : \u211d) \u2264 (n : \u211d))\n have hpos : (0 : \u211d) \u2264 ArithmeticFunction.vonMangoldt n / (n : \u211d) ^ (2 : \u211d) :=\n div_nonneg ArithmeticFunction.vonMangoldt_nonneg\n (Real.rpow_nonneg (by positivity : (0 : \u211d) \u2264 (n : \u211d)) _)\n calc ArithmeticFunction.vonMangoldt n / (n : \u211d) ^ (3 : \u211d)\n = (1 / (n : \u211d)) * (ArithmeticFunction.vonMangoldt n / (n : \u211d) ^ (2 : \u211d)) := e\n _ \u2264 (1 / 2) * (ArithmeticFunction.vonMangoldt n / (n : \u211d) ^ (2 : \u211d)) :=\n mul_le_mul_of_nonneg_right h12 hpos\n\n/-- dirichletC3 \u2264 1/2 (the termwise comparison + dirichletC2 \u2264 1) \u2014\nthe certified C_zeta3 = 0.5 of D-074 \u00a74. (A tighter 0.17 build is\npossible via a 6-prime partial sum + antitone-integral tail; the fold\nis indifferent to the constant, so the cheap certified 0.5 is charged.) -/\nlemma dirichletC3_le_half : dirichletC3 \u2264 1 / 2 := by\n have hsum3 : Summable (fun n : \u2115 =>\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (3 : \u2102) n\u2016) := by\n rw [summable_norm_iff]\n exact ArithmeticFunction.LSeriesSummable_vonMangoldt (by norm_num)\n have hsum2 : Summable (fun n : \u2115 =>\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (2 : \u2102) n\u2016) := by\n rw [summable_norm_iff]\n exact ArithmeticFunction.LSeriesSummable_vonMangoldt (by norm_num)\n calc dirichletC3\n = \u2211' n : \u2115, \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (3 : \u2102) n\u2016 := rfl\n _ \u2264 \u2211' n : \u2115, (1 / 2) *\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (2 : \u2102) n\u2016 :=\n Summable.tsum_le_tsum (fun n => norm_term_vonMangoldt_three_le_half n) hsum3\n (hsum2.mul_left (1 / 2))\n _ = (1 / 2) * dirichletC2 := by rw [dirichletC2, tsum_mul_left]\n _ \u2264 1 / 2 := by linarith [dirichletC2_le_one]\n\n/-- \u2016\u03b6\u2032/\u03b6 s\u2016 \u2264 dirichletC3 for re s \u2265 3 (the s = 3 clone of the\nDirichlet-series majorant). -/\nlemma norm_logDeriv_zeta_le_dirichletC3 {s : \u2102} (hs : 3 \u2264 s.re) :\n \u2016logDeriv riemannZeta s\u2016 \u2264 dirichletC3 := by\n have hs1 : (1 : \u211d) < s.re := by linarith\n have h1 : -logDeriv riemannZeta s\n = LSeries (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) s := by\n have h2 := ArithmeticFunction.LSeries_vonMangoldt_eq_deriv_riemannZeta_div hs1\n rw [logDeriv, Pi.div_apply, h2]\n ring\n have hsum3 : Summable (fun n : \u2115 =>\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (3 : \u2102) n\u2016) := by\n rw [summable_norm_iff]\n exact ArithmeticFunction.LSeriesSummable_vonMangoldt (by norm_num)\n have hsumS : Summable (fun n : \u2115 =>\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) s n\u2016) := by\n rw [summable_norm_iff]\n exact ArithmeticFunction.LSeriesSummable_vonMangoldt hs1\n have hle : \u2016LSeries (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) s\u2016\n \u2264 dirichletC3 := by\n show \u2016\u2211' n : \u2115, LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) s n\u2016 \u2264 _\n calc \u2016\u2211' n : \u2115, LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) s n\u2016\n \u2264 \u2211' n : \u2115, \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) s n\u2016 :=\n norm_tsum_le_tsum_norm hsumS\n _ \u2264 \u2211' n : \u2115, \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (3 : \u2102) n\u2016 :=\n Summable.tsum_le_tsum (fun n => LSeries.norm_term_le_of_re_le_re _ (by\n simp\n exact hs) n) hsumS hsum3\n _ = dirichletC3 := rfl\n calc \u2016logDeriv riemannZeta s\u2016\n = \u2016LSeries (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) s\u2016 := by\n rw [\u2190 h1, norm_neg]\n _ \u2264 dirichletC3 := hle\n\n/-- \u2016\u03b6\u2032/\u03b6 s\u2016 \u2264 1/2 for re s \u2265 3 (the charged C_zeta3 = 0.5). -/\nlemma norm_logDeriv_zeta_le_half {s : \u2102} (hs : 3 \u2264 s.re) :\n \u2016logDeriv riemannZeta s\u2016 \u2264 1 / 2 :=\n (norm_logDeriv_zeta_le_dirichletC3 hs).trans dirichletC3_le_half\n\n/-- **The left-lift bound** (D-074 \u00a73.3 V_left): for 0 < T \u2264 U and\nn \u2264 T\u00b2, \u2016VIntegral (Jlag n) 3 T U\u2016 \u2264 (U \u2212 T)\u00b7(e^{5/2}+1)/2. The kernel\n\u2264 e^{5/2}+1 (the 1+5/(4+t\u00b2) computation), the zeta factor \u2264 1/2\n(certified, no perimeter). -/\ntheorem vIntegral_Jlag_three_norm_le {n : \u2115} {T U : \u211d}\n (hT0 : (0 : \u211d) < T) (hTU : T \u2264 U) (hTn : (n : \u211d) \u2264 T ^ 2) :\n \u2016VIntegral (Jlag n) 3 T U\u2016 \u2264 (U - T) * (Real.exp (5 / 2) + 1) / 2 := by\n have hnorm : \u2016VIntegral (Jlag n) 3 T U\u2016 =\n \u2016\u222b t in T..U, Jlag n ((3 : \u211d) + t * Complex.I)\u2016 := by\n unfold VIntegral\n rw [norm_smul, Complex.norm_I, one_mul]\n rw [hnorm]\n have hbound : \u2200 t \u2208 Set.Ioc T U,\n \u2016Jlag n ((3 : \u211d) + t * Complex.I)\u2016 \u2264 (Real.exp (5 / 2) + 1) * (1 / 2) := by\n intro t ht\n have htT : T < t := ht.1\n have ht2 : (n : \u211d) \u2264 t ^ 2 := by nlinarith [hTn, hT0]\n have hre : (3 : \u211d) \u2264 ((3 : \u211d) + t * Complex.I).re := by simp\n have h1 := kFun_three_add_it_norm_le_exp_five_halves_add_one ht2\n have h2 := norm_logDeriv_zeta_le_half (s := (3 : \u211d) + t * Complex.I) hre\n have hnorm3 : \u2016Jlag n ((3 : \u211d) + t * Complex.I)\u2016 =\n \u2016kFun n ((3 : \u211d) + t * Complex.I)\u2016 *\n \u2016logDeriv riemannZeta ((3 : \u211d) + t * Complex.I)\u2016 := by\n show \u2016kFun n ((3 : \u211d) + t * Complex.I) *\n (-logDeriv riemannZeta ((3 : \u211d) + t * Complex.I))\u2016 = _\n rw [norm_mul, norm_neg]\n rw [hnorm3]\n exact mul_le_mul h1 h2 (norm_nonneg _) (by positivity)\n have hint : \u2016\u222b t in T..U, Jlag n ((3 : \u211d) + t * Complex.I)\u2016 \u2264\n ((Real.exp (5 / 2) + 1) * (1 / 2)) * |U - T| := by\n apply intervalIntegral.norm_integral_le_of_norm_le_const\n intro t ht\n rw [Set.uIoc_of_le hTU] at ht\n exact hbound t ht\n have habs : |U - T| = U - T := abs_of_nonneg (by linarith)\n rw [habs] at hint\n calc \u2016\u222b t in T..U, Jlag n ((3 : \u211d) + t * Complex.I)\u2016\n \u2264 ((Real.exp (5 / 2) + 1) * (1 / 2)) * (U - T) := hint\n _ = (U - T) * (Real.exp (5 / 2) + 1) / 2 := by ring\n\n/-! ## 4. The high-horizontal stepping (DL-3, D-074 \u00a77 + D-073 \u00a74) -/\n\n/-- Termwise \u03c3-vs-2 comparison for the \u039b L-series (the (6.10) halving):\n\u039b(m)/m^\u03c3 \u2264 2^{\u2212(\u03c3\u22122)}\u00b7\u039b(m)/m\u00b2 for \u03c3 \u2265 2. -/\nlemma norm_term_vonMangoldt_le_two_pow {\u03c3 t : \u211d} (h\u03c3 : 2 \u2264 \u03c3) (m : \u2115) :\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102))\n ((\u03c3 : \u211d) + t * Complex.I) m\u2016 \u2264\n (2 : \u211d) ^ (-(\u03c3 - 2)) * \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (2 : \u2102) m\u2016 := by\n have h\u03c3re : ((\u03c3 : \u211d) + t * Complex.I).re = \u03c3 := by simp\n have h2re : ((2 : \u2102).re) = 2 := rfl\n simp only [LSeries.norm_term_eq, h\u03c3re, h2re]\n split\n \u00b7 norm_num\n \u00b7 next hm =>\n have h\u039b : \u2016(ArithmeticFunction.vonMangoldt m : \u2102)\u2016 =\n ArithmeticFunction.vonMangoldt m :=\n Complex.norm_of_nonneg ArithmeticFunction.vonMangoldt_nonneg\n rw [h\u039b]\n rcases eq_or_ne m 1 with rfl | hm1\n \u00b7 simp [ArithmeticFunction.vonMangoldt_apply_one]\n \u00b7 have hm2 : 2 \u2264 m := by omega\n have e : ArithmeticFunction.vonMangoldt m / (m : \u211d) ^ \u03c3 =\n (1 / (m : \u211d) ^ (\u03c3 - 2)) * (ArithmeticFunction.vonMangoldt m / (m : \u211d) ^ (2 : \u211d)) := by\n rw [show (\u03c3 : \u211d) = (\u03c3 - 2) + 2 by ring,\n Real.rpow_add (by positivity : (0 : \u211d) < (m : \u211d))]\n field_simp [show (m : \u211d) \u2260 0 by positivity]\n ring_nf\n rw [e]\n have hle : (1 : \u211d) / (m : \u211d) ^ (\u03c3 - 2) \u2264 (2 : \u211d) ^ (-(\u03c3 - 2)) := by\n rw [Real.rpow_neg (by norm_num : (0 : \u211d) \u2264 2), \u2190 one_div]\n apply one_div_le_one_div_of_le (Real.rpow_pos_of_pos (by norm_num : (0 : \u211d) < 2) _)\n exact Real.rpow_le_rpow (by norm_num : (0 : \u211d) \u2264 2)\n (by exact_mod_cast hm2 : (2 : \u211d) \u2264 (m : \u211d)) (by linarith : (0 : \u211d) \u2264 \u03c3 - 2)\n have hpos : (0 : \u211d) \u2264 ArithmeticFunction.vonMangoldt m / (m : \u211d) ^ (2 : \u211d) :=\n div_nonneg ArithmeticFunction.vonMangoldt_nonneg\n (Real.rpow_nonneg (by positivity : (0 : \u211d) \u2264 (m : \u211d)) _)\n exact mul_le_mul_of_nonneg_right hle hpos\n\n/-- \u2016\u03b6\u2032/\u03b6(\u03c3+it)\u2016 \u2264 2^{\u2212(\u03c3\u22122)}\u00b7dirichletC2 for \u03c3 \u2265 2 (the (6.10)\nhalving in LSeries form; dirichletC2 \u2264 1 makes the tail free). -/\nlemma norm_logDeriv_zeta_le_two_pow {\u03c3 t : \u211d} (h\u03c3 : 2 \u2264 \u03c3) :\n \u2016logDeriv riemannZeta ((\u03c3 : \u211d) + t * Complex.I)\u2016 \u2264\n (2 : \u211d) ^ (-(\u03c3 - 2)) * dirichletC2 := by\n have hs1 : (1 : \u211d) < ((\u03c3 : \u211d) + t * Complex.I).re := by simp; linarith\n have h1 : -logDeriv riemannZeta ((\u03c3 : \u211d) + t * Complex.I)\n = LSeries (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) ((\u03c3 : \u211d) + t * Complex.I) := by\n have h2 := ArithmeticFunction.LSeries_vonMangoldt_eq_deriv_riemannZeta_div hs1\n rw [logDeriv, Pi.div_apply, h2]\n ring\n have hsum2 : Summable (fun n : \u2115 =>\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (2 : \u2102) n\u2016) := by\n rw [summable_norm_iff]\n exact ArithmeticFunction.LSeriesSummable_vonMangoldt (by norm_num)\n have hsumS : Summable (fun n : \u2115 =>\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102))\n ((\u03c3 : \u211d) + t * Complex.I) n\u2016) := by\n rw [summable_norm_iff]\n exact ArithmeticFunction.LSeriesSummable_vonMangoldt hs1\n have hle : \u2016LSeries (fun n => (ArithmeticFunction.vonMangoldt n : \u2102))\n ((\u03c3 : \u211d) + t * Complex.I)\u2016 \u2264 (2 : \u211d) ^ (-(\u03c3 - 2)) * dirichletC2 := by\n show \u2016\u2211' n : \u2115, LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102))\n ((\u03c3 : \u211d) + t * Complex.I) n\u2016 \u2264 _\n calc \u2016\u2211' n : \u2115, LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102))\n ((\u03c3 : \u211d) + t * Complex.I) n\u2016\n \u2264 \u2211' n : \u2115, \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102))\n ((\u03c3 : \u211d) + t * Complex.I) n\u2016 :=\n norm_tsum_le_tsum_norm hsumS\n _ \u2264 \u2211' n : \u2115, (2 : \u211d) ^ (-(\u03c3 - 2)) *\n \u2016LSeries.term (fun n => (ArithmeticFunction.vonMangoldt n : \u2102)) (2 : \u2102) n\u2016 :=\n Summable.tsum_le_tsum (fun n => norm_term_vonMangoldt_le_two_pow h\u03c3 n) hsumS\n (hsum2.mul_left _)\n _ = (2 : \u211d) ^ (-(\u03c3 - 2)) * dirichletC2 := by rw [dirichletC2, tsum_mul_left]\n calc \u2016logDeriv riemannZeta ((\u03c3 : \u211d) + t * Complex.I)\u2016\n = \u2016LSeries (fun n => (ArithmeticFunction.vonMangoldt n : \u2102))\n ((\u03c3 : \u211d) + t * Complex.I)\u2016 := by\n rw [\u2190 h1, norm_neg]\n _ \u2264 (2 : \u211d) ^ (-(\u03c3 - 2)) * dirichletC2 := hle\n\n/-- **Kernel envelope** (D-074 \u00a77, the single-exponential form that\nreplaces the unit-step geometric series): \u2016(1+1/((\u03c3\u22121)+iU))\u207f\u2016 \u2264\ne^{(4/9)\u03c3} for \u03c3 \u2265 3 and n \u2264 (4/9)U\u00b2. From the (6.11) core\n\u20161+1/s\u2016 \u2264 1+(re s+1)/normSq s \u2264 1+\u03c3/U\u00b2. -/\ntheorem one_add_div_pow_norm_le_exp_four_ninths {n : \u2115} {\u03c3 U : \u211d}\n (h\u03c3 : 3 \u2264 \u03c3) (hU : 0 < U) (hnU : (n : \u211d) \u2264 (4 / 9) * U ^ 2) :\n \u2016(1 + 1/(((\u03c3 : \u211d) - 1) + U * Complex.I))\u2016 ^ n \u2264 Real.exp ((4 / 9) * \u03c3) := by\n have hs0 : (((\u03c3 : \u211d) - 1) + U * Complex.I) \u2260 0 := by\n intro h\n have him : (((\u03c3 : \u211d) - 1) + U * Complex.I).im = 0 := by rw [h]; simp\n simp at him\n linarith\n have hle := norm_one_add_one_div_le hs0\n have hre : (((\u03c3 : \u211d) - 1) + U * Complex.I).re + 1 = \u03c3 := by\n simp [Complex.add_re, Complex.ofReal_re, Complex.mul_re, Complex.I_re, Complex.I_im,\n Complex.sub_re, Complex.one_re]\n have hns : Complex.normSq (((\u03c3 : \u211d) - 1) + U * Complex.I) = (\u03c3 - 1) ^ 2 + U ^ 2 := by\n simp [Complex.normSq_apply]\n ring\n have hstep : ((((\u03c3 : \u211d) - 1) + U * Complex.I).re + 1) /\n Complex.normSq (((\u03c3 : \u211d) - 1) + U * Complex.I) \u2264 \u03c3 / U ^ 2 := by\n rw [hre, hns]\n have hU2 : (0 : \u211d) < U ^ 2 := by positivity\n have h1 : (0 : \u211d) \u2264 (\u03c3 - 1) ^ 2 := sq_nonneg _\n exact (div_le_div_iff_of_pos_left (by linarith : (0 : \u211d) < \u03c3)\n (by positivity) hU2).mpr (by linarith [h1])\n have hstep1 : 1 + ((((\u03c3 : \u211d) - 1) + U * Complex.I).re + 1) /\n Complex.normSq (((\u03c3 : \u211d) - 1) + U * Complex.I) \u2264 1 + \u03c3 / U ^ 2 := by\n linarith [hstep]\n have hpow1 : \u2016(1 + 1/(((\u03c3 : \u211d) - 1) + U * Complex.I))\u2016 ^ n \u2264 (1 + \u03c3 / U ^ 2) ^ n :=\n pow_le_pow_left\u2080 (norm_nonneg _) (hle.trans hstep1) n\n have hpow2 : (1 + \u03c3 / U ^ 2) ^ n \u2264 Real.exp ((n : \u211d) * (\u03c3 / U ^ 2)) := by\n calc (1 + \u03c3 / U ^ 2) ^ n \u2264 (Real.exp (\u03c3 / U ^ 2)) ^ n := by\n have h := Real.add_one_le_exp (\u03c3 / U ^ 2)\n exact pow_le_pow_left\u2080 (by positivity) (by linarith) n\n _ = Real.exp ((n : \u211d) * (\u03c3 / U ^ 2)) := (Real.exp_nat_mul (\u03c3 / U ^ 2) n).symm\n have hexp : (n : \u211d) * (\u03c3 / U ^ 2) \u2264 (4 / 9) * \u03c3 := by\n have hU2 : (0 : \u211d) < U ^ 2 := by positivity\n have h\u03c30 : (0 : \u211d) < \u03c3 := by linarith\n have h1 : (n : \u211d) / U ^ 2 \u2264 4 / 9 := by\n have h2 := div_le_div_of_nonneg_right hnU hU2.le\n rwa [mul_div_cancel_right\u2080 _ hU2.ne'] at h2\n rw [show (n : \u211d) * (\u03c3 / U ^ 2) = ((n : \u211d) / U ^ 2) * \u03c3 by ring]\n exact mul_le_mul_of_nonneg_right h1 h\u03c30.le\n calc \u2016(1 + 1/(((\u03c3 : \u211d) - 1) + U * Complex.I))\u2016 ^ n\n \u2264 Real.exp ((n : \u211d) * (\u03c3 / U ^ 2)) := hpow1.trans hpow2\n _ \u2264 Real.exp ((4 / 9) * \u03c3) := Real.exp_le_exp.mpr hexp\n\n/-! ## 5. The product envelope and the integral assembly (DL-3c/d) -/\n\n/-- **The product envelope** (D-074 \u00a77): for \u03c3 \u2265 3, 0 < t, n \u2264 (4/9)t\u00b2,\n\u2016Jlag n (\u03c3+it)\u2016 \u2264 (4\u00b7e^{\u2212c\u03c3} + 4\u00b72^{\u2212\u03c3})\u00b7dirichletC2, c = log 2 \u2212 4/9.\nThe kernel envelope (e^{(4/9)\u03c3}) times the zeta halving (2^{\u2212(\u03c3\u22122)})\ncollapses to the single exponential 4\u00b7e^{\u2212c\u03c3}: no geometric series. -/\ntheorem Jlag_dogleg_norm_le_envelope {n : \u2115} {\u03c3 t : \u211d}\n (h\u03c3 : 3 \u2264 \u03c3) (ht : 0 < t) (hnU : (n : \u211d) \u2264 (4 / 9) * t ^ 2) :\n \u2016Jlag n ((\u03c3 : \u211d) + t * Complex.I)\u2016 \u2264\n (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) * dirichletC2 := by\n have hw1 : ((\u03c3 : \u211d) + t * Complex.I) - 1 = ((\u03c3 : \u211d) - 1) + t * Complex.I := by\n push_cast\n ring\n have hs1ne : (((\u03c3 : \u211d) - 1) + t * Complex.I) \u2260 0 := by\n intro h\n have him : (((\u03c3 : \u211d) - 1) + t * Complex.I).im = 0 := by rw [h]; simp\n simp at him\n linarith\n have hwid : ((\u03c3 : \u211d) + t * Complex.I) / (((\u03c3 : \u211d) + t * Complex.I) - 1) =\n 1 + 1 / (((\u03c3 : \u211d) - 1) + t * Complex.I) := by\n rw [hw1]\n field_simp [hs1ne]\n ring\n have hker := one_add_div_pow_norm_le_exp_four_ninths h\u03c3 ht hnU\n have hzeta := norm_logDeriv_zeta_le_two_pow (show (2 : \u211d) \u2264 \u03c3 by linarith) (t := t)\n have hk : \u2016kFun n ((\u03c3 : \u211d) + t * Complex.I)\u2016 \u2264 Real.exp ((4 / 9) * \u03c3) + 1 := by\n unfold kFun\n rw [hwid]\n calc \u2016(1 + 1 / (((\u03c3 : \u211d) - 1) + t * Complex.I)) ^ n - 1\u2016\n \u2264 \u2016(1 + 1 / (((\u03c3 : \u211d) - 1) + t * Complex.I)) ^ n\u2016 + \u2016(1 : \u2102)\u2016 := norm_sub_le _ _\n _ = \u2016(1 + 1 / (((\u03c3 : \u211d) - 1) + t * Complex.I))\u2016 ^ n + 1 := by rw [norm_pow, norm_one]\n _ \u2264 Real.exp ((4 / 9) * \u03c3) + 1 := by linarith [hker]\n have hprod : \u2016Jlag n ((\u03c3 : \u211d) + t * Complex.I)\u2016 \u2264\n (Real.exp ((4 / 9) * \u03c3) + 1) * ((2 : \u211d) ^ (-(\u03c3 - 2)) * dirichletC2) := by\n have hn3 : \u2016Jlag n ((\u03c3 : \u211d) + t * Complex.I)\u2016 =\n \u2016kFun n ((\u03c3 : \u211d) + t * Complex.I)\u2016 *\n \u2016logDeriv riemannZeta ((\u03c3 : \u211d) + t * Complex.I)\u2016 := by\n show \u2016kFun n ((\u03c3 : \u211d) + t * Complex.I) *\n (-logDeriv riemannZeta ((\u03c3 : \u211d) + t * Complex.I))\u2016 = _\n rw [norm_mul, norm_neg]\n rw [hn3]\n exact mul_le_mul hk hzeta (norm_nonneg _)\n (add_nonneg (Real.exp_nonneg _) (by norm_num))\n have h2b : (2 : \u211d) ^ (-\u03c3) = Real.exp (-(Real.log 2) * \u03c3) := by\n rw [Real.rpow_def_of_pos (by norm_num : (0 : \u211d) < 2)]\n congr 1\n ring\n have h22 : (2 : \u211d) ^ (2 : \u211d) = 4 := by\n rw [Real.rpow_two]\n norm_num\n have h2a : (2 : \u211d) ^ (-(\u03c3 - 2)) = 4 * (2 : \u211d) ^ (-\u03c3) := by\n rw [show (-(\u03c3 - 2)) = -\u03c3 + 2 by ring, Real.rpow_add (by norm_num : (0 : \u211d) < 2), h2b, h22]\n ring\n have hexp_alg : Real.exp ((4 / 9) * \u03c3) * Real.exp (-(Real.log 2) * \u03c3) =\n Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) := by\n rw [\u2190 Real.exp_add]\n congr 1\n ring\n have halg : (Real.exp ((4 / 9) * \u03c3) + 1) * ((2 : \u211d) ^ (-(\u03c3 - 2))) =\n 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3) := by\n rw [h2a, h2b]\n calc (Real.exp ((4 / 9) * \u03c3) + 1) * (4 * Real.exp (-(Real.log 2) * \u03c3))\n = 4 * (Real.exp ((4 / 9) * \u03c3) * Real.exp (-(Real.log 2) * \u03c3)) +\n 4 * Real.exp (-(Real.log 2) * \u03c3) := by ring\n _ = 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * Real.exp (-(Real.log 2) * \u03c3) := by\n rw [hexp_alg]\n _ = 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3) := by\n rw [h2b]\n calc \u2016Jlag n ((\u03c3 : \u211d) + t * Complex.I)\u2016\n \u2264 (Real.exp ((4 / 9) * \u03c3) + 1) * ((2 : \u211d) ^ (-(\u03c3 - 2)) * dirichletC2) := hprod\n _ = ((Real.exp ((4 / 9) * \u03c3) + 1) * (2 : \u211d) ^ (-(\u03c3 - 2))) * dirichletC2 := by ring\n _ = (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) * dirichletC2 := by\n rw [halg]\n\n/-- The FTC-bound \u222b\u2083^XR e^{\u2212c\u03c3}d\u03c3 \u2264 e^{\u22123c}/c for c > 0. -/\nlemma integral_exp_neg_le {c XR : \u211d} (hc : 0 < c) (_hXR : 3 \u2264 XR) :\n \u222b \u03c3 in (3 : \u211d)..XR, Real.exp (-c * \u03c3) \u2264 Real.exp (-3 * c) / c := by\n have hF : \u2200 x \u2208 Set.uIcc (3 : \u211d) XR,\n HasDerivAt (fun \u03c3 => -Real.exp (-c * \u03c3) / c) (Real.exp (-c * x)) x := by\n intro x hx\n have h2 : HasDerivAt (fun \u03c3 => Real.exp (-c * \u03c3)) (Real.exp (-c * x) * (-c)) x := by\n have h := ((hasDerivAt_id' x).const_mul (-c)).exp\n rwa [mul_one] at h\n have h3 := h2.const_mul (-1 / c)\n rw [show (-1 / c) * (Real.exp (-c * x) * (-c)) = Real.exp (-c * x) by\n field_simp [hc.ne']] at h3\n have h5 : (fun \u03c3 => (-1 / c) * Real.exp (-c * \u03c3)) =\n (fun \u03c3 => -Real.exp (-c * \u03c3) / c) := by\n funext \u03c3\n field_simp [hc.ne']\n rw [h5] at h3\n exact h3\n have hint : IntervalIntegrable (fun \u03c3 => Real.exp (-c * \u03c3)) MeasureTheory.volume 3 XR := by\n apply ContinuousOn.intervalIntegrable\n exact (Real.continuous_exp.comp (continuous_const.mul continuous_id)).continuousOn\n rw [intervalIntegral.integral_eq_sub_of_hasDerivAt hF hint]\n have h1 : -Real.exp (-c * XR) / c \u2264 0 := by\n apply div_nonpos_of_nonpos_of_nonneg _ hc.le\n linarith [Real.exp_pos (-c * XR)]\n have e : -Real.exp (-c * 3) / c = Real.exp (-3 * c) / c := by\n congr 1\n congr 1\n ring\n rw [e]\n linarith [h1]\n\n/-- The certified exponent-decay constant c = log 2 \u2212 4/9 \u2265 0.2487. -/\nlemma cdog_gt : (0.2487 : \u211d) \u2264 Real.log 2 - 4 / 9 := by\n have h := Real.log_two_gt_d9\n norm_num at h\n linarith\n\n/-- The certified e^{4/3} \u2264 3.8073 (the (1\u2212x/16)\u207b\u00b9\u2076 route + d9 e). -/\nlemma exp_four_thirds_le : Real.exp (4 / 3) \u2264 (3.8073 : \u211d) := by\n have he13 : Real.exp (1 / 3) \u2264 (1.4006 : \u211d) :=\n le_trans (exp_le_inv_sub_sixteen (by norm_num) (by norm_num)) (by norm_num)\n rw [show (4 / 3 : \u211d) = 1 + 1 / 3 by norm_num, Real.exp_add]\n calc Real.exp 1 * Real.exp (1 / 3) \u2264 2.7182818286 * 1.4006 :=\n mul_le_mul Real.exp_one_lt_d9.le he13 (Real.exp_pos _).le (by norm_num)\n _ \u2264 3.8073 := by norm_num\n\n/-- **THE HIGH-HORIZONTAL BOUND** (D-074 \u00a77 capstone; D-073 Cor 4.2's\nR(1.5) in single-exponential-envelope form): for 0 < U, n \u2264 (4/9)U\u00b2\n(i.e. U \u2265 (3/2)\u221an) and 3 \u2264 XR, \u2016HIntegral (Jlag n) 3 XR U\u2016 \u2264 8.38\n(charged; the true value \u2264 1.2 at n = 10\u2075, E-034 V5). Charged with\ndirichletC2 \u2264 1 \u2014 the tight R(1.5) = 5.94 would need a dirichletC2 \u2264\n0.57 build (documented as the tightening path; the fold is\nindifferent: \u0394 \u2248 +2.4 per side). -/\ntheorem hIntegral_Jlag_dogleg_norm_le {n : \u2115} {U XR : \u211d}\n (hU : 0 < U) (hnU : (n : \u211d) \u2264 (4 / 9) * U ^ 2) (hXR : 3 \u2264 XR) :\n \u2016HIntegral (Jlag n) 3 XR U\u2016 \u2264 (8.38 : \u211d) := by\n have hc : (0 : \u211d) < Real.log 2 - 4 / 9 := by\n have h := cdog_gt\n linarith\n have hpt : \u2200 \u03c3 \u2208 Set.Ioc 3 XR,\n \u2016Jlag n ((\u03c3 : \u211d) + U * Complex.I)\u2016 \u2264\n (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) * dirichletC2 :=\n fun \u03c3 h\u03c3 => Jlag_dogleg_norm_le_envelope (by linarith [h\u03c3.1]) hU hnU\n have hcontA : Continuous (fun \u03c3 : \u211d => Real.exp (-(Real.log 2 - 4 / 9) * \u03c3)) :=\n Real.continuous_exp.comp (continuous_const.mul continuous_id)\n have hcontB : Continuous (fun \u03c3 : \u211d => (2 : \u211d) ^ (-\u03c3)) := by\n have h1 : Continuous (fun \u03c3 : \u211d => Real.exp (-(Real.log 2) * \u03c3)) :=\n Real.continuous_exp.comp (continuous_const.mul continuous_id)\n have h2 : (fun \u03c3 : \u211d => (2 : \u211d) ^ (-\u03c3)) =\n (fun \u03c3 : \u211d => Real.exp (-(Real.log 2) * \u03c3)) := by\n funext \u03c3\n rw [Real.rpow_def_of_pos (by norm_num : (0 : \u211d) < 2)]\n congr 1\n ring\n rw [h2]\n exact h1\n have hIntA : IntervalIntegrable (fun \u03c3 : \u211d => 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3))\n MeasureTheory.volume 3 XR := by\n apply ContinuousOn.intervalIntegrable\n exact (hcontA.const_mul 4).continuousOn\n have hIntB : IntervalIntegrable (fun \u03c3 : \u211d => 4 * (2 : \u211d) ^ (-\u03c3)) MeasureTheory.volume 3 XR := by\n apply ContinuousOn.intervalIntegrable\n exact (hcontB.const_mul 4).continuousOn\n have hIntG : IntervalIntegrable (fun \u03c3 : \u211d =>\n (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) * dirichletC2)\n MeasureTheory.volume 3 XR := by\n apply ContinuousOn.intervalIntegrable\n exact ((hcontA.add hcontB).const_mul dirichletC2).continuousOn\n -- step 1: \u2016H\u2016 \u2264 \u222b envelope\n have h1 : \u2016HIntegral (Jlag n) 3 XR U\u2016 \u2264\n \u222b \u03c3 in (3 : \u211d)..XR,\n (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) * dirichletC2 := by\n unfold HIntegral\n apply intervalIntegral.norm_integral_le_of_norm_le hXR _ hIntG\n exact Filter.Eventually.of_forall (fun \u03c3 h\u03c3 => hpt \u03c3 h\u03c3)\n -- step 2: \u222b envelope = dirichletC2\u00b7(4\u222be^{\u2212c\u03c3} + 4\u222b2^{\u2212\u03c3})\n have h2 : \u222b \u03c3 in (3 : \u211d)..XR,\n (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) * dirichletC2\n = dirichletC2 * (\u222b \u03c3 in (3 : \u211d)..XR, 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) +\n \u222b \u03c3 in (3 : \u211d)..XR, 4 * (2 : \u211d) ^ (-\u03c3)) := by\n rw [integral_const_mul, intervalIntegral.integral_add hIntA hIntB]\n ring\n -- step 3: the two integral bounds\n have h3a : \u222b \u03c3 in (3 : \u211d)..XR, 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) \u2264\n Real.exp (4 / 3) / (2 * (Real.log 2 - 4 / 9)) := by\n rw [intervalIntegral.integral_const_mul]\n have h := integral_exp_neg_le hc hXR\n have he3c : Real.exp (-3 * (Real.log 2 - 4 / 9)) = Real.exp (4 / 3) / 8 := by\n have h3l2 : Real.exp (-(3 * Real.log 2)) = 1 / 8 := by\n have e1 : -(3 * Real.log 2) = Real.log (1 / 8) := by\n rw [Real.log_div (by norm_num : (1 : \u211d) \u2260 0) (by norm_num : (8 : \u211d) \u2260 0),\n Real.log_one, Real.log_pow]\n push_cast\n ring\n rw [e1, Real.exp_log (by norm_num : (0 : \u211d) < 1 / 8)]\n calc Real.exp (-3 * (Real.log 2 - 4 / 9))\n = Real.exp ((4 / 3) + -(3 * Real.log 2)) := by congr 1; ring\n _ = Real.exp (4 / 3) * Real.exp (-(3 * Real.log 2)) := by rw [Real.exp_add]\n _ = Real.exp (4 / 3) / 8 := by rw [h3l2]; ring\n rw [he3c] at h\n calc 4 * (Real.exp (-3 * (Real.log 2 - 4 / 9)) / (Real.log 2 - 4 / 9))\n = 4 * ((Real.exp (4 / 3) / 8) / (Real.log 2 - 4 / 9)) := by rw [he3c]\n _ = Real.exp (4 / 3) / (2 * (Real.log 2 - 4 / 9)) := by\n field_simp [hc.ne']\n ring\n have h3b : \u222b \u03c3 in (3 : \u211d)..XR, 4 * (2 : \u211d) ^ (-\u03c3) \u2264 1 / (2 * Real.log 2) := by\n have h2e : (fun \u03c3 : \u211d => (2 : \u211d) ^ (-\u03c3)) =\n (fun \u03c3 : \u211d => Real.exp (-(Real.log 2) * \u03c3)) := by\n funext \u03c3\n rw [Real.rpow_def_of_pos (by norm_num : (0 : \u211d) < 2)]\n congr 1\n ring\n rw [h2e, intervalIntegral.integral_const_mul]\n have h := integral_exp_neg_le (Real.log_pos (by norm_num : (1 : \u211d) < 2)) hXR\n have h3l2 : Real.exp (-3 * Real.log 2) = 1 / 8 := by\n have e1 : (-3 * Real.log 2) = Real.log (1 / 8) := by\n rw [Real.log_div (by norm_num : (1 : \u211d) \u2260 0) (by norm_num : (8 : \u211d) \u2260 0),\n Real.log_one, Real.log_pow]\n push_cast\n ring\n rw [e1, Real.exp_log (by norm_num : (0 : \u211d) < 1 / 8)]\n rw [h3l2] at h\n calc 4 * ((1 / 8) / Real.log 2) = 1 / (2 * Real.log 2) := by\n field_simp [Real.log_pos (by norm_num : (1 : \u211d) < 2)].ne'\n ring\n exact h.trans (by rw [h3l2])\n -- hmm, h's RHS after rw [h3l2] at h: (1/8)/log2; the calc shows 4\u00b7((1/8)/log2) = 1/(2 log2)\n -- step 4: the certified assembly\n have hlog2 : (0.6931471803 : \u211d) \u2264 Real.log 2 := Real.log_two_gt_d9\n have h48 : Real.exp (4 / 3) / (2 * (Real.log 2 - 4 / 9)) \u2264 (7.6545 : \u211d) := by\n have hcge := cdog_gt\n have h1 : Real.exp (4 / 3) / (2 * (Real.log 2 - 4 / 9)) \u2264 3.8073 / (2 * 0.2487) :=\n div_le_div exp_four_thirds_le (by linarith) (by norm_num) (by positivity)\n calc Real.exp (4 / 3) / (2 * (Real.log 2 - 4 / 9))\n \u2264 3.8073 / (2 * 0.2487) := h1\n _ \u2264 7.6545 := by norm_num\n have h72 : 1 / (2 * Real.log 2) \u2264 (0.7214 : \u211d) := by\n have h1 : 1 / (2 * Real.log 2) \u2264 1 / (2 * 0.6931471803) :=\n one_div_le_one_div_of_le (by positivity) (by linarith)\n calc 1 / (2 * Real.log 2) \u2264 1 / (2 * 0.6931471803) := h1\n _ \u2264 0.7214 := by norm_num\n have hC2 : dirichletC2 \u2264 1 := dirichletC2_le_one\n have hsum : dirichletC2 * (\u222b \u03c3 in (3 : \u211d)..XR, 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) +\n \u222b \u03c3 in (3 : \u211d)..XR, 4 * (2 : \u211d) ^ (-\u03c3)) \u2264 (8.38 : \u211d) := by\n have hA0 : (0 : \u211d) \u2264 Real.exp (4 / 3) / (2 * (Real.log 2 - 4 / 9)) := by positivity\n have hB0 : (0 : \u211d) \u2264 1 / (2 * Real.log 2) := by positivity\n calc dirichletC2 * (\u222b \u03c3 in (3 : \u211d)..XR, 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) +\n \u222b \u03c3 in (3 : \u211d)..XR, 4 * (2 : \u211d) ^ (-\u03c3))\n \u2264 1 * (Real.exp (4 / 3) / (2 * (Real.log 2 - 4 / 9)) + 1 / (2 * Real.log 2)) := by\n apply mul_le_mul hC2 (add_le_add h3a h3b) (by positivity) (by norm_num)\n _ = Real.exp (4 / 3) / (2 * (Real.log 2 - 4 / 9)) + 1 / (2 * Real.log 2) := by ring\n _ \u2264 7.6545 + 0.7214 := add_le_add h48 h72\n _ \u2264 8.38 := by norm_num\n calc \u2016HIntegral (Jlag n) 3 XR U\u2016\n \u2264 \u222b \u03c3 in (3 : \u211d)..XR,\n (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) * dirichletC2 := h1\n _ = dirichletC2 * (\u222b \u03c3 in (3 : \u211d)..XR, 4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) +\n \u222b \u03c3 in (3 : \u211d)..XR, 4 * (2 : \u211d) ^ (-\u03c3)) := h2\n _ \u2264 8.38 := hsum\n\nend NguyenRH1\n\nend\n",
"structuredPatch": [
{
"oldStart": 677,
"oldLines": 11,
"newStart": 677,
"newLines": 11,
"lines": [
" ring",
" rw [e1, Real.exp_log (by norm_num : (0 : \u211d) < 1 / 8)]",
" rw [h3l2] at h",
"- calc 4 * ((1 / 8) / Real.log 2) = 1 / (2 * Real.log 2) := by",
"- field_simp [Real.log_pos (by norm_num : (1 : \u211d) < 2)].ne'",
"- ring",
"- exact h.trans (by rw [h3l2])",
"- -- hmm, h's RHS after rw [h3l2] at h: (1/8)/log2; the calc shows 4\u00b7((1/8)/log2) = 1/(2 log2)",
"+ calc 4 * \u222b \u03c3 in (3 : \u211d)..XR, Real.exp (-(Real.log 2) * \u03c3)",
"+ \u2264 4 * ((1 / 8) / Real.log 2) := mul_le_mul_of_nonneg_left h (by norm_num)",
"+ _ = 1 / (2 * Real.log 2) := by",
"+ field_simp [Real.log_pos (by norm_num : (1 : \u211d) < 2)].ne'",
"+ ring",
" -- step 4: the certified assembly",
" have hlog2 : (0.6931471803 : \u211d) \u2264 Real.log 2 := Real.log_two_gt_d9",
" have h48 : Real.exp (4 / 3) / (2 * (Real.log 2 - 4 / 9)) \u2264 (7.6545 : \u211d) := by"
]
}
],
"userModified": false,
"replaceAll": false
}
tool: Edit
input
{
"file_path": "D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiArchimedean.lean",
"old_string": " have h := logDeriv_Gamma\u211d_one_add (s := 0) hs hs2\n rw [add_zero] at h\n rw [h]\n have e2 : (1 : \u2102) / 2 = ((1 / 2 : \u211d) : \u2102) := by push_cast; ring\n rw [e2, Complex.digamma_one_half]\n rw [lagariasA1, log_four_pi]\n push_cast\n ring",
"new_string": " have h := logDeriv_Gamma\u211d_one_add (s := 0) hs hs2\n rw [add_zero] at h\n rw [h]\n rw [show Complex.log (2 : \u2102) = (Real.log 2 : \u2102) by\n rw [show (2 : \u2102) = ((2 : \u211d) : \u2102) by simp]\n exact (Complex.ofReal_log (by norm_num : (0 : \u211d) \u2264 2)).symm]\n rw [Complex.digamma_one_half]\n rw [lagariasA1, log_four_pi]\n push_cast\n ring"
}
raw content_json (database row)
[{"type":"thinking","thinking":"Several issues:\n\n1. **Line 36**: the ring in pi_cpow_neg_half_eq_exp failed because `Real.pi` vs `Real.log π` — look at the goal: `↑(Real.log Real.pi) * w * (-1/2) = w * ↑(Real.log π) * (-1/2)` — the problem: `Real.log Real.pi` (full name) vs `Real.log π` — the `π` notation vs `Real.pi` — they're the same but displayed differently — ring failed because... the goal shows both sides are equal up to commutativity: `↑(Real.log Real.pi) * w * (-1/2)` vs `w * ↑(Real.log π) * (-1/2)` — these ARE ring-equal (commutative) — ring should close... the error says ring failed with \"unsolved goals\" showing that — probably because `Real.log Real.pi` and `Real.log π` are not SYNTACTICALLY the same term (π is notation for Real.pi — should be the same...). Hmm — the `ring_nf` suggestion. Actually looking again: the LHS is from my `rw [← Complex.ofReal_log Real.pi_nonneg]` — producing ↑(Real.log Real.pi) — the RHS has ↑(Real.log π) — from the goal statement's `-(Real.log π : ℂ)/2 * w` — `Real.log π` — `π` vs `Real.pi` — same term (π is scoped notation for Real.pi) — so the two sides differ only by commutativity — ring should close! Why did it fail? — \"The ring tactic failed to close the goal. Use ring_nf...\" with the shown goal being EQUAL by comm — maybe the issue is the `(-1/2 : ℂ)` — negative fractional in ℂ — ring handles... Hmm — actually maybe the real problem: `↑(Real.log Real.pi)` — the cast is `RCLike.ofReal`? or `Complex.ofReal`? — if the two casts are different defs (↑ on LHS via one instance path, ↑ on RHS via another), ring's atom matching might see them as DIFFERENT atoms... The goal display shows both as ↑(...) — but ring_nf... Let me just use ring_nf as suggested — the hint says ring_nf works. Replace `ring` with `ring_nf`.\n\nHmm wait — actually the error at 36:75 says \"unsolved goals ⊢ ↑(Real.log Real.pi) * w * (-1/2) = w * ↑(Real.log π) * (-1/2)\" — these are visibly equal by (comm + assoc) — ring failing on this is odd unless the atoms differ. `Real.log Real.pi` vs `Real.log π` — if π = Real.pi notation — identical. The casts: `↑(Real.log Real.pi)` — is it `Complex.ofReal (Real.log Real.pi)`? and RHS `↑(Real.log π)` — same... UNLESS one is via `RCLike.ofReal` and the other `Complex.ofReal` — the coercion in my statement `-(Real.log π : ℂ)/2` uses the OfReal ℂ instance — which IS Complex.ofReal. And ofReal_log gives (↑(x.log) : ℂ) = ... hmm. Let me just try ring_nf.\n\n2. **Line 60**: `differentiableAt_const_mul` unknown — the name: `DifferentiableAt.const_mul : DifferentiableAt ℂ f x → DifferentiableAt ℂ (fun y => c * f y) x` — method form: `differentiableAt_id.const_mul _` ✓.\n\n3. **Line 66**: after rw [hfun, logDeriv_apply] — the goal has `deriv (fun w => cexp .. * Gamma (w/2)) (1+s) / (...)` — my `rw [logDeriv_mul ...]` failed because logDeriv_apply already unfolded logDeriv to deriv/· — the logDeriv_mul pattern `logDeriv (fun z => f z * g z) x` no longer occurs (it's been unfolded to the quotient). Fix: DON'T rw [logDeriv_apply] before logDeriv_mul. Remove the `logDeriv_apply` from that rw — just `rw [hfun]` then `rw [logDeriv_mul ...]`.\n\n4. **Line 115**: `Complex.cpow_eq_zero_iff` — wrong signature (it takes different args). Use my planned direct route:\n```lean\n have hs : Complex.Gamma ((1 + (0 : ℂ)) / 2) ≠ 0 := by\n have e : (1 + (0 : ℂ)) / 2 = 1 / 2 := by ring\n rw [e, Complex.Gamma_one_half_eq]\n have hpi : (↑Real.pi : ℂ) ≠ 0 := by exact_mod_cast Real.pi_ne_zero\n rw [Complex.cpow_def_of_ne_zero hpi]\n exact Complex.exp_ne_zero _\n```\n\n5. **Line 110**: unsolved goals in logDeriv_Gammaℝ_one — the final push_cast/ring didn't finish — because the goal after my rewrites still has the digamma/log forms. The issue: after `rw [h]` — h : logDeriv Gammaℝ 1 = −(log π)/2 + (1/2)·digamma ((1+0)/2) — wait I did `rw [add_zero] at h` FIRST then rw [h] — the order in my file: \n```lean\n have h := logDeriv_Gammaℝ_one_add (s := 0) hs hs2\n rw [add_zero] at h\n rw [h]\n have e2 : (1 : ℂ) / 2 = ((1 / 2 : ℝ) : ℂ) := by push_cast; ring\n rw [e2, Complex.digamma_one_half]\n rw [lagariasA1, log_four_pi]\n push_cast\n ring\n```\nHmm — after rw [add_zero] at h: h : logDeriv Gammaℝ (1 + 0)?? — add_zero rewrites (1 + 0) → 1? — add_zero : a + 0 = a — so (1+0) → 1 ✓ h : logDeriv Gammaℝ 1 = −↑(Real.log π)/2 + 1/2 * digamma ((1+0)/2)?? — add_zero also rewrites inside the digamma argument ((1+0)/2) → (1/2) ✓. Then rw [h] at goal ✓. Then e2 : (1:ℂ)/2 = ↑(1/2:ℝ) — the digamma argument in the goal is ((1:ℂ)/2) — rw [e2] → digamma ↑(1/2:ℝ) — then Complex.digamma_one_half : digamma (1/2) = ... — the (1/2) there is (1/2 : ℂ) via OfNat — NOT ↑(1/2:ℝ) — mismatch! digamma_one_half's argument is (1/2 : ℂ) [OfNat]. So I should NOT do e2 — instead keep (1:ℂ)/2 and rw [Complex.digamma_one_half] directly — wait but the goal's digamma argument after add_zero: ((1+0)/2) — hmm — add_zero turns (1+0)/2 into (1/2)? — add_zero's pattern ?a + 0 — matches (1 + 0) inside ((1+0)/2) → 1/2 — wait — ((1 + 0)/2) with add_zero → (1/2) — the division stays: 1/2 : ℂ — that's `HDiv.hDiv 1 2` — and digamma_one_half's argument `1/2` = HDiv.hDiv 1 2 — SAME ✓. So drop e2 entirely and rw [Complex.digamma_one_half] directly.\n Then the goal: −↑(Real.log π)/2 + 1/2 * (−2 * Complex.log 2 − ↑γ) = −↑lagariasA1 — with lagariasA1, log_four_pi rewrites — then push_cast + ring — the Complex.log 2 issue: digamma_one_half's RHS has `log 2` = Complex.log 2 (since digamma : ℂ → ℂ and the statement is in namespace Complex — `- 2 * log 2 - Real.eulerMascheroniConstant` — `log` resolves to Complex.log, `2 : ℂ` — and `Real.eulerMascheroniConstant` is cast to ℂ via ↑). So the goal after rw has Complex.log (2:ℂ). push_cast: does it normalize Complex.log 2 → ↑(Real.log 2)? push_cast has `Complex.ofReal_log`? Probably not in the default push_cast set. So rewrite manually: \n `rw [show Complex.log (2 : ℂ) = (Real.log 2 : ℂ) by rw [← Complex.ofReal_log (by norm_num : (0:ℝ) ≤ 2)]]` — hmm — Complex.ofReal_log (hx : 0 ≤ x) : (↑(Real.log x) : ℂ) = Complex.log ↑x — the ← direction: rewrites Complex.log ↑2 → ↑(Real.log 2) — the pattern Complex.log ↑2 — but the goal has Complex.log (2:ℂ) — is (2:ℂ) syntactically ↑(2:ℝ)? NO — (2:ℂ) is OfNat.ofNat 2 (ℂ's OfNat) — ↑2 is Complex.ofReal (2:ℝ) — different terms (equal via ofReal_ofNat simp lemma). So first: `rw [show (2 : ℂ) = ((2 : ℝ) : ℂ) from by simp]`? — `Complex.ofReal_ofNat : ((n : ℝ) : ℂ) = n`? — direction: ↑(2:ℝ) = (2:ℂ) — simp lemma `Complex.ofReal_ofNat : (↑(OfNat.ofNat n) : ℂ) = OfNat.ofNat n` — so `rw [← Complex.ofReal_ofNat]`?? on the (2:ℂ) occurrence — messy. Cleaner: `push_cast` FIRST might normalize (2:ℂ) vs ↑2: push_cast rewrites Complex.ofReal ↑n → ↑n (ofReal_ofNat is a push_cast lemma? `Complex.ofReal_ofNat` is a simp/push_cast lemma ✓ likely). So maybe just push_cast BEFORE the log rewrite normalizes... — but push_cast doesn't touch Complex.log (2:ℂ) (it's already ℂ). Hmm.\n\n The whole cast dance — let me simply do the final algebra in ℝ and cast at the very end? The goal is ℂ-valued. Alternative cleaner finish: prove the ℝ version: there's no real `logDeriv Gammaℝ 1`... skip.\n\n Deterministic approach: state the intermediate as a ℂ equation with ALL quantities as explicit casts of ℝ:\n```lean\n have hdig : Complex.digamma ((1 : ℂ) / 2) = (-(2 * Real.log 2) - Real.eulerMascheroniConstant : ℝ) := by\n rw [Complex.digamma_one_half]\n rw [← Complex.ofReal_log (by norm_num : (0 : ℝ) ≤ 2)]\n push_cast\n ring\n```\nHmm — the issue: digamma_one_half's RHS form. I don't know its exact syntactic form (Complex.log 2 vs Complex.log ↑2). Let me check the actual statement text once more: from the grep: `theorem digamma_one_half : digamma (1 / 2) = - 2 * log 2 - Real.eulerMascheroniConstant :=` — in namespace Complex (the file has `namespace Complex` before — digamma_one : digamma 1 = -Real.eulerMascheroniConstant — there the RHS is `- Real.eulerMascheroniConstant` — with a cast to ℂ inserted by elaboration: -↑γ. And log 2: `log` resolves in namespace Complex to Complex.log; `2` : ℂ. So RHS = -2 * Complex.log 2 - ↑γ where (2:ℂ) is OfNat.ofNat 2. So after rw [Complex.digamma_one_half], the goal contains Complex.log (OfNat.ofNat 2 : ℂ). To rewrite: `rw [← Complex.ofReal_log (by positivity : (0:ℝ) ≤ 2)]` — its pattern: Complex.log ↑(2:ℝ) — but goal has Complex.log (2:ℂ) — ↑(2:ℝ) = Complex.ofReal 2 — vs (2:ℂ) = OfNat.ofNat — NOT syntactic — rewrite fails. Pre-fix: `norm_num` might normalize (2:ℂ) to... no. Use: `rw [show (2 : ℂ) = ((2 : ℝ) : ℂ) by norm_num]`?? — (2:ℂ) = ↑(2:ℝ): `Complex.ofReal_ofNat : (↑(OfNat.ofNat n)) = OfNat.ofNat n` — direction gives ↑(2:ℝ) → (2:ℂ) — so `rw [← Complex.ofReal_ofNat]` rewrites (2:ℂ) → ↑(2:ℝ) — but it would rewrite ALL (2:ℂ) literals... — in this goal the only (2:ℂ) is inside Complex.log ✓ ok. Hmm wait — ofReal_ofNat : ↑(OfNat.ofNat n) = OfNat.ofNat n — the ← direction: OfNat.ofNat n → ↑(OfNat.ofNat n) — rewriting (2:ℂ) = OfNat.ofNat 2 → ↑((2:ℝ)) ✓. Then ← ofReal_log ✓.\n\nLet me also handle `Real.pi` vs `π` and just use ring_nf in pi_cpow_neg_half_eq_exp.\n\nLet me now rewrite the whole Part 1 with all fixes:\n\nActually — for h1's field_simp at the end: goal after rw [hd]: `exp(c(1+s)) * c / exp(c(1+s)) = c` — field_simp [exp_ne_zero] then ring — I wrote only field_simp — the goal might need ring after: from the error list, no error was reported for h1's field_simp — good (the errors were elsewhere). Similarly h2's field_simp+ring — no error reported — but those were after the failing logDeriv_mul so they weren't reached — the logDeriv_mul rw failure at line 66 blocked downstream. Let me fix all and recompile.","signature":""},{"type":"text","text":"Applying the fixes: ring_nf for the cast issue, method-form const_mul, removing the premature logDeriv_apply, cpow nonzero via exp, and the digamma cast dance."},{"type":"tool_use","id":"Edit_262","name":"Edit","input":{"file_path":"D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiArchimedean.lean","old_string":" rw [Complex.cpow_def_of_ne_zero (by exact_mod_cast Real.pi_ne_zero)]\n congr 1\n rw [← Complex.ofReal_log Real.pi_nonneg]\n ring","new_string":" rw [Complex.cpow_def_of_ne_zero (by exact_mod_cast Real.pi_ne_zero)]\n congr 1\n rw [← Complex.ofReal_log Real.pi_nonneg]\n ring_nf"},"extra_content":null},{"type":"tool_use","id":"Edit_263","name":"Edit","input":{"file_path":"D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiArchimedean.lean","old_string":" rw [hfun, logDeriv_apply]\n have hdif1 : DifferentiableAt ℂ (fun w : ℂ => Complex.exp (-(Real.log π : ℂ) / 2 * w))\n (1 + s) := by\n have h1 : DifferentiableAt ℂ (fun w : ℂ => -(Real.log π : ℂ) / 2 * w) (1 + s) :=\n differentiableAt_const_mul _\n exact Complex.differentiableAt_exp.comp (1 + s) h1","new_string":" rw [hfun]\n have hdif1 : DifferentiableAt ℂ (fun w : ℂ => Complex.exp (-(Real.log π : ℂ) / 2 * w))\n (1 + s) := by\n have h1 : DifferentiableAt ℂ (fun w : ℂ => -(Real.log π : ℂ) / 2 * w) (1 + s) :=\n differentiableAt_id.const_mul _\n exact Complex.differentiableAt_exp.comp (1 + s) h1"},"extra_content":null},{"type":"tool_use","id":"Edit_264","name":"Edit","input":{"file_path":"D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiArchimedean.lean","old_string":" have hs : Complex.Gamma ((1 + (0 : ℂ)) / 2) ≠ 0 := by\n have e : (1 + (0 : ℂ)) / 2 = 1 / 2 := by ring\n rw [e, Complex.Gamma_one_half_eq]\n intro hz\n rw [Complex.cpow_eq_zero_iff (by norm_num : ((1 : ℂ) / 2) ≠ 0)] at hz\n exact Real.pi_ne_zero (by exact_mod_cast hz.1)","new_string":" have hs : Complex.Gamma ((1 + (0 : ℂ)) / 2) ≠ 0 := by\n have e : (1 + (0 : ℂ)) / 2 = 1 / 2 := by ring\n rw [e, Complex.Gamma_one_half_eq]\n have hpi : (↑Real.pi : ℂ) ≠ 0 := by exact_mod_cast Real.pi_ne_zero\n rw [Complex.cpow_def_of_ne_zero hpi]\n exact Complex.exp_ne_zero _"},"extra_content":null},{"type":"tool_use","id":"Edit_265","name":"Edit","input":{"file_path":"D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiArchimedean.lean","old_string":" have h := logDeriv_Gammaℝ_one_add (s := 0) hs hs2\n rw [add_zero] at h\n rw [h]\n have e2 : (1 : ℂ) / 2 = ((1 / 2 : ℝ) : ℂ) := by push_cast; ring\n rw [e2, Complex.digamma_one_half]\n rw [lagariasA1, log_four_pi]\n push_cast\n ring","new_string":" have h := logDeriv_Gammaℝ_one_add (s := 0) hs hs2\n rw [add_zero] at h\n rw [h]\n rw [show Complex.log (2 : ℂ) = (Real.log 2 : ℂ) by\n rw [show (2 : ℂ) = ((2 : ℝ) : ℂ) by simp]\n exact (Complex.ofReal_log (by norm_num : (0 : ℝ) ≤ 2)).symm]\n rw [Complex.digamma_one_half]\n rw [lagariasA1, log_four_pi]\n push_cast\n ring"},"extra_content":null}]