Current task: —

← Session 21 — Tier ii′ planning + launch: close SfBoundProp in Lean (D-064)

#977 assistant 2026-08-21 22:21:17.633 UTC · 931→4355 tok open ⤢
thinking (8904 chars)
The cast dance is the issue: `-((i : ℤ) - 1)` displays as `-(↑i - 1)` with ↑i : ℤ — and the derivative coefficient is `↑(-(↑i - 1))` (cast of the INTEGER to ℂ) vs my hd statement's `(-((i : ℤ) - 1)) : ℂ` — these differ in display but... the error at 216:8 says expected `-(↑↑i - 1) * (w - 1) ^ (...)` — DOUBLE cast ↑↑i — the derivative value in hasDerivAt_zpow's result: `↑(m : ℤ)` where m = −(↑i−1) — so the coefficient is `↑(-(↑i - 1))` (cast of ℤ to ℂ) — and my hd statement wrote `((-((i : ℤ) - 1)) : ℂ)` — displayed as `-(↑↑i - 1)`?? — the double-cast: `↑(↑i)` — ↑i is ℕ→ℤ, then ↑↑i is ℤ→ℂ — so `(-((i:ℤ)−1)) : ℂ` displays as `-(↑↑i − 1)` where 1 : ℂ — while hasDerivAt_zpow's derivative is `↑(-(↑i − 1))` displayed as... the mismatch: `↑(-(↑i - 1)) * ...` vs `-(↑↑i - 1) * ...` — one has the whole integer cast, the other has ↑↑i − 1 (cast of i then subtract 1 in ℂ). These are EQUAL but not syntactically — the hasDerivAt_zpow I applied produced its own form, but my h2's stated type has the other form. Fix: make h2's stated type match hasDerivAt_zpow's OUTPUT form exactly: `hasDerivAt_zpow (-((i : ℤ) - 1)) (w - 1) (Or.inl hw1)` produces `HasDerivAt (fun x => x ^ (-(↑i - 1))) (↑(-(↑i - 1)) * (w - 1) ^ (-(↑i - 1) - 1)) (w - 1)` — note `↑(-(↑i - 1))` (whole integer cast). So h2's statement should be: ``` have h2 : HasDerivAt (fun x : ℂ => x ^ (-((i : ℤ) - 1))) ((↑(-((i : ℤ) - 1)) : ℂ) * (w - 1) ^ (-((i : ℤ) - 1) - 1)) (w - 1) := hasDerivAt_zpow (-((i : ℤ) - 1)) (w - 1) (Or.inl hw1) ``` Then hcomp : HasDerivAt ((·^m) ∘ (·−1)) (↑(-(↑i−1)) * (w−1)^(m−1) * 1) w — the goal: deriv (fun w => (w−1)^m) w = ((-((i:ℤ)−1)) : ℂ) * (w−1)^(m−1) — with the coefficient form `((-((i:ℤ)−1)) : ℂ)` vs `↑(-(↑i−1))` — same term, different notation — after the Function.comp_apply + mul_one rewrites, hcomp.deriv : deriv ((·^m) ∘ (·−1)) w = ↑(-(↑i−1)) * (w−1)^(m−1) — the GOAL has coefficient `(-((i:ℤ)−1)) : ℂ` — vs hcomp's `↑(-(↑i−1))` — SAME (both are "cast of the integer −(i−1) to ℂ") — just displayed differently. Should unify by defeq/rfl... The error at 220:10: `rw [Function.comp_apply, mul_one] at hcomp` — Function.comp_apply pattern `(?m ∘ ?m) ?m` — the hcomp's function is `((fun x => x ^ m) ∘ fun w => w - 1)` — comp_apply should match `(f ∘ g) x`... but hcomp's HasDerivAt has the function UNAPPLIED (as a whole function in HasDerivAt's first slot) — comp_apply needs an application. Use `simp only [Function.comp_apply, mul_one] at hcomp`? — comp_apply as simp rewrites `(f ∘ g) x` occurrences — the function argument of HasDerivAt is `(fun x => x^m) ∘ (fun w => w−1)` — as a bare function — no application to rewrite. The HasDerivAt.unfold? Instead use `HasDerivAt.comp`'s result directly via hcomp.deriv with the goal form: hcomp : HasDerivAt ((fun x => x^m) ∘ (fun w => w−1)) D w — hcomp.deriv : deriv ((fun x => x^m) ∘ (fun w => w−1)) w = D — the goal: deriv (fun w => (w−1)^m) w = D' — the functions (fun x => x^m) ∘ (fun w => w−1) vs (fun w => (w−1)^m) — defeq (comp_apply + eta): `exact hcomp.deriv` should work if D matches. D = ↑(-(↑i−1)) * (w−1)^(m−1) * 1 — with mul_one not applied — hcomp has `... * 1` at the end (from comp's h₂' * h' = D * 1): rw [mul_one] at hcomp fixes ✓ then exact hcomp.deriv — the coefficient ↑(-(↑i−1)) vs goal's ((-((i:ℤ)−1)) : ℂ) — defeq same ✓ exact should close. The error at 220 says Function.comp_apply pattern not found in `HasDerivAt ((fun x => x ^ m) ∘ fun w => w - 1) (...) w` — right, no application. Fix: drop Function.comp_apply, just `rw [mul_one] at hcomp; exact hcomp.deriv`. Line 229: `rw [show (-((i : ℤ) - 1) : ℤ) = 1 - (i : ℤ) from by omega]` — the pattern `-(↑i - 1)` not found in `-(↑↑i - 1) = 1 - ↑i` — the hc statement's LHS `((-((i : ℤ) - 1)) : ℂ)` — displayed as `-(↑↑i - 1)` — my show's LHS `(-((i : ℤ) - 1) : ℤ)` — with the ℤ-negation — these don't match syntactically: hc's LHS is `(↑(-(↑i − 1)) : ℂ)` (whole cast) vs my show pattern `(-((i:ℤ)−1) : ℤ)` — different! The hc statement should be about the CASTED value: `((-((i : ℤ) - 1) : ℤ) : ℂ) = 1 - (i : ℂ)` — i.e., ↑(−(↑i−1)) = 1 − ↑i. My show's LHS `(-((i : ℤ) - 1) : ℤ)` = −(↑i−1) : ℤ — and hc's LHS is the CAST of that to ℂ. The rewrite `rw [show (-((i : ℤ) - 1) : ℤ) = 1 - (i : ℤ) from by omega]` — I want to rewrite the INTEGER inside the cast: the cast is `((X : ℤ) : ℂ)` with X = −(↑i−1) — rewrite X → (1 − ↑i : ℤ): the pattern in hc's LHS is `(↑X : ℂ)` with X = `-(↑i - 1)`... The display `-(↑↑i - 1)` — hmm — that reads as −(↑↑i − 1) : ℂ — i.e., the negation OUTSIDE and ↑↑i − 1 inside — so hc's LHS is `-((↑(↑i)) - 1)`?? — meaning the cast got distributed: ↑(-(↑i−1)) was elaborated/simplified to -(↑↑i − 1)?? — Lean's coercion simp normal form: `↑(-(↑i − 1))` → `-(↑↑i − 1)` (pushing casts outward). So the actual term is `-(↑↑i - 1) : ℂ` (negation of (↑↑i − 1)). My show pattern `(-((i:ℤ)−1) : ℤ)` doesn't appear. Fix: state hc differently: ``` have hc : (-((i : ℤ) - 1) : ℂ) = 1 - (i : ℂ) := by simp [Int.cast_sub, Int.cast_one] rw [hc] ``` hc : (↑(-(↑i − 1)) : ℂ) = 1 − ↑i — proof: simp [Int.cast_sub, Int.cast_one] — LHS: ↑(−(↑i−1)) → −(↑↑i − 1)... simp should normalize both sides to the same: LHS −(↑↑i−1) = −↑↑i + 1; RHS 1 − ↑i: are these equal?? −(↑↑i − 1) = 1 − ↑↑i ✓ (as complex: −(x−1) = 1−x ✓) — simp/ring: ``` have hc : (-((i : ℤ) - 1) : ℂ) = 1 - (i : ℂ) := by push_cast ring rw [hc] ``` push_cast normalizes the LHS to −↑↑i + 1 or 1 − ↑↑i; then ring closes 1−↑↑i = 1−↑i (both ↑i : ℂ same cast ✓). And the earlier hd statement's coefficient: I wrote `((-((i : ℤ) - 1)) : ℂ) * (w - 1) ^ (...)` — after all these, hcomp.deriv should match by defeq (the cast forms are defeq-equal by push_cast normalization, but exact's defeq check goes through instance unfolding — might work). If not, I'll state hd with the normalized coefficient `-(↑i - 1 : ℂ)` from the start... Simplest: change hd's coefficient to `((1 : ℂ) - (i : ℂ))`-free form — keep `((-((i : ℤ) - 1)) : ℂ)` and let the downstream `rw [hc]` handle it — hc rewrites `(-((i:ℤ)−1) : ℂ)` — but the DISPLAYED term is `-(↑↑i−1)` — hc's LHS `(-((i:ℤ)−1) : ℂ)` — after push_cast in hc's PROOF the statement remains `↑(-(↑i−1)) = 1−↑i` — rewriting it in the goal requires the goal to contain `↑(-(↑i−1))` — the goal has `-(↑↑i−1)` (normalized form) — MISMATCH again. Ugh. The robust path: state hd's coefficient AS `(-(↑i - 1) : ℂ)` — i.e., the complex-number negation of (↑i − 1) — and prove the hasDerivAt result matches via push_cast normalization of hcomp.deriv's coefficient. Let me restructure hd: ``` have hd : deriv (fun w => (w - 1) ^ (-((i : ℤ) - 1))) w = ((-(↑i - 1)) : ℂ) * (w - 1) ^ (-((i : ℤ) - 1) - 1) := by have h2 := hasDerivAt_zpow (-((i : ℤ) - 1)) (w - 1) (Or.inl hw1) have h3 : HasDerivAt (fun w : ℂ => w - 1) 1 w := by simpa using (hasDerivAt_id w).sub_const 1 have hcomp := h2.comp w h3 rw [mul_one] at hcomp have hd' := hcomp.deriv push_cast at hd' ⊢ exact hd' ``` Hmm — push_cast at hd' ⊢ — normalizes both to the same form? push_cast on hd' : ↑(−(↑i−1))·... → −(↑↑i−1)·... and goal `(-(↑i−1) : ℂ)·...` — `-(↑i − 1)` with ↑i : ℂ — push_cast normalizes ↑↑i − 1 and ↑i − 1 differently?? (−(↑↑i − 1) : ℂ) vs (−(↑i − 1) : ℂ) — the first is −(x − 1) with x = ↑↑i, the second −(y) with y = ↑i − 1 — push_cast: ↑(↑i) = ↑i (one cast ✓ same). −(↑↑i − 1) = −(↑i − 1) ✓ syntactically after cast fusion ✓. OK — but wait, my hd's coefficient written `(-(↑i - 1) : ℂ)` — that's the complex negation applied to (↑i − 1) — is that the same as the goal's expected form downstream? In the final algebra I want the coefficient to cancel with −(A_i/(i−1)): −(A_i/(i−1)) · ((−(↑i−1))·X) = A_i·(↑i−1)/(↑i−1)·X = A_i·X ✓ via field_simp [hi1] + ring ✓. So let me set hd's coefficient to `(-(↑i - 1) : ℂ)` where ↑i : ℂ — write it as `(-((i : ℂ) - 1) : ℂ)` to be unambiguous... honestly at this point the cleanest is to avoid the coefficient naming entirely: prove hd with the coefficient AS IT COMES from hasDerivAt_zpow (i.e. `↑(-(↑i − 1))`), and in the final algebra, normalize with push_cast before field_simp. Let me restructure the whole term-derivative computation more robustly — actually let me just make hd's statement use EXACTLY the hasDerivAt_zpow output coefficient form, then in the final step push_cast + field_simp + ring: hd : deriv (fun w => (w - 1) ^ (-((i : ℤ) - 1))) w = ((↑(-((i : ℤ) - 1))) : ℂ) * (w - 1) ^ (-((i : ℤ) - 1) - 1) with proof: hcomp.deriv after mul_one — then in the final: rw [deriv_const_mul ..., hd]; then push_cast; field_simp [hw1, hi1]; ring. The `↑(-((i : ℤ) - 1))` written in Lean: `((-((i : ℤ) - 1) : ℤ) : ℂ)`? — hmm, `↑(-((i:ℤ)−1))` — write `((-((i : ℤ) - 1) : ℤ) : ℂ)` — explicit both casts. Then hcomp.deriv's coefficient is exactly that ✓ exact hcomp.deriv closes after mul_one ✓. Let me rewrite lines 212–233 accordingly.
Let me rewrite the problematic derivative block with exact cast forms.
tool: Edit ok
input
{
  "file_path": "D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiPrincipal.lean",
  "old_string": "    have hd : deriv (fun w => (w - 1) ^ (-((i : \u2124) - 1))) w\n        = ((-((i : \u2124) - 1)) : \u2102) * (w - 1) ^ (-((i : \u2124) - 1) - 1) := by\n      have h2 : HasDerivAt (fun x : \u2102 => x ^ (-((i : \u2124) - 1)))\n          ((-((i : \u2124) - 1)) * (w - 1) ^ (-((i : \u2124) - 1) - 1)) (w - 1) :=\n        hasDerivAt_zpow (-((i : \u2124) - 1)) (w - 1) (Or.inl hw1)\n      have h3 : HasDerivAt (fun w : \u2102 => w - 1) 1 w := by\n        simpa using (hasDerivAt_id w).sub_const 1\n      have hcomp := h2.comp w h3\n      rw [Function.comp_apply, mul_one] at hcomp\n      exact hcomp.deriv\n    rw [deriv_const_mul _ (by\n      have hw1' : w - 1 \u2260 0 := sub_ne_zero.mpr hw\n      exact (((hasDerivAt_zpow (-((i : \u2124) - 1)) (w - 1) (Or.inl hw1')).differentiableAt).comp w\n        (((hasDerivAt_id w).sub_const 1).differentiableAt))), hd]\n    have hm : (-((i : \u2124) - 1) - 1 : \u2124) = -(i : \u2124) := by omega\n    rw [hm]\n    have hc : ((-((i : \u2124) - 1)) : \u2102) = 1 - (i : \u2102) := by\n      rw [show (-((i : \u2124) - 1) : \u2124) = 1 - (i : \u2124) from by omega]\n      simp [Int.cast_sub, Int.cast_one]\n    rw [hc]\n    field_simp [hw1, hi1]\n    rw [zpow_neg, zpow_natCast]\n    field_simp [hw1]\n    ring",
  "new_string": "    have hd : deriv (fun w => (w - 1) ^ (-((i : \u2124) - 1))) w\n        = ((-((i : \u2124) - 1) : \u2124) : \u2102) * (w - 1) ^ (-((i : \u2124) - 1) - 1) := by\n      have h2 : HasDerivAt (fun x : \u2102 => x ^ (-((i : \u2124) - 1)))\n          (((-((i : \u2124) - 1) : \u2124) : \u2102) * (w - 1) ^ (-((i : \u2124) - 1) - 1)) (w - 1) :=\n        hasDerivAt_zpow (-((i : \u2124) - 1)) (w - 1) (Or.inl hw1)\n      have h3 : HasDerivAt (fun w : \u2102 => w - 1) 1 w := by\n        simpa using (hasDerivAt_id w).sub_const 1\n      have hcomp := h2.comp w h3\n      rw [mul_one] at hcomp\n      exact hcomp.deriv\n    rw [deriv_const_mul _ (by\n      have hw1' : w - 1 \u2260 0 := sub_ne_zero.mpr hw\n      exact (((hasDerivAt_zpow (-((i : \u2124) - 1)) (w - 1) (Or.inl hw1')).differentiableAt).comp w\n        (((hasDerivAt_id w).sub_const 1).differentiableAt))), hd]\n    have hm : (-((i : \u2124) - 1) - 1 : \u2124) = -(i : \u2124) := by omega\n    rw [hm]\n    push_cast\n    field_simp [hw1, hi1]\n    rw [zpow_neg, zpow_natCast]\n    field_simp [hw1]\n    ring"
}
result 2026-08-21 22:21:18Z → 2026-08-26 06:29:12Z
{
  "filePath": "D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiDogLeg.lean",
  "oldString": "  rw [intervalIntegral.integral_eq_sub_of_hasDerivAt hF hint]\n  have h1 : (0 : \u211d) \u2264 Real.exp (-c * XR) / c := by positivity\n  have e : Real.exp (-c * 3) = Real.exp (-3 * c) := by\n    congr 1\n    ring\n  rw [e]\n  linarith [h1]",
  "newString": "  rw [intervalIntegral.integral_eq_sub_of_hasDerivAt hF hint, e, sub_le_iff_le_add]\n  have h1 : (0 : \u211d) \u2264 Real.exp (-c * XR) := (Real.exp_pos _).le\n  have h2 : -Real.exp (-c * XR) / c \u2264 0 := by\n    apply div_nonpos_of_nonpos_of_nonneg _ hc.le\n    linarith [h1]\n  linarith [h2]",
  "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  calc \u2016Jlag n ((\u03c3 : \u211d) + t * Complex.I)\u2016\n      \u2264 (Real.exp ((4 / 9) * \u03c3) + 1) * ((2 : \u211d) ^ (-(\u03c3 - 2)) * dirichletC2) := hprod\n    _ = dirichletC2 * ((Real.exp ((4 / 9) * \u03c3) + 1) * (2 : \u211d) ^ (-(\u03c3 - 2))) := by ring\n    _ = dirichletC2 * (4 * Real.exp (-(Real.log 2 - 4 / 9) * \u03c3) + 4 * (2 : \u211d) ^ (-\u03c3)) := 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 : (0 : \u211d) \u2264 Real.exp (-c * XR) / c := by positivity\n  have e : Real.exp (-c * 3) = Real.exp (-3 * c) := by\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    have h := (hIntA.add hIntB).const_mul dirichletC2\n    convert h using 1\n    ext \u03c3\n    ring\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 [intervalIntegral.integral_const_mul, intervalIntegral.integral_add hIntA hIntB]\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 [show ((1 : \u211d) / 8) = (2 ^ 3 : \u211d)\u207b\u00b9 by norm_num, Real.log_inv, 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 [show ((1 : \u211d) / 8) = (2 ^ 3 : \u211d)\u207b\u00b9 by norm_num, Real.log_inv, 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\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": 553,
      "oldLines": 13,
      "newStart": 553,
      "newLines": 12,
      "lines": [
        "   have hint : IntervalIntegrable (fun \u03c3 => Real.exp (-c * \u03c3)) MeasureTheory.volume 3 XR := by",
        "     apply ContinuousOn.intervalIntegrable",
        "     exact (Real.continuous_exp.comp (continuous_const.mul continuous_id)).continuousOn",
        "-  rw [intervalIntegral.integral_eq_sub_of_hasDerivAt hF hint]",
        "-  have h1 : (0 : \u211d) \u2264 Real.exp (-c * XR) / c := by positivity",
        "-  have e : Real.exp (-c * 3) = Real.exp (-3 * c) := by",
        "-    congr 1",
        "-    ring",
        "-  rw [e]",
        "-  linarith [h1]",
        "+  rw [intervalIntegral.integral_eq_sub_of_hasDerivAt hF hint, e, sub_le_iff_le_add]",
        "+  have h1 : (0 : \u211d) \u2264 Real.exp (-c * XR) := (Real.exp_pos _).le",
        "+  have h2 : -Real.exp (-c * XR) / c \u2264 0 := by",
        "+    apply div_nonpos_of_nonpos_of_nonneg _ hc.le",
        "+    linarith [h1]",
        "+  linarith [h2]",
        " ",
        " /-- The certified exponent-decay constant c = log 2 \u2212 4/9 \u2265 0.2487. -/",
        " lemma cdog_gt : (0.2487 : \u211d) \u2264 Real.log 2 - 4 / 9 := by"
      ]
    }
  ],
  "userModified": false,
  "replaceAll": false
}
raw content_json (database row)
[{"type":"thinking","thinking":"The cast dance is the issue: `-((i : ℤ) - 1)` displays as `-(↑i - 1)` with ↑i : ℤ — and the derivative coefficient is `↑(-(↑i - 1))` (cast of the INTEGER to ℂ) vs my hd statement's `(-((i : ℤ) - 1)) : ℂ` — these differ in display but... the error at 216:8 says expected `-(↑↑i - 1) * (w - 1) ^ (...)` — DOUBLE cast ↑↑i — the derivative value in hasDerivAt_zpow's result: `↑(m : ℤ)` where m = −(↑i−1) — so the coefficient is `↑(-(↑i - 1))` (cast of ℤ to ℂ) — and my hd statement wrote `((-((i : ℤ) - 1)) : ℂ)` — displayed as `-(↑↑i - 1)`?? — the double-cast: `↑(↑i)` — ↑i is ℕ→ℤ, then ↑↑i is ℤ→ℂ — so `(-((i:ℤ)−1)) : ℂ` displays as `-(↑↑i − 1)` where 1 : ℂ — while hasDerivAt_zpow's derivative is `↑(-(↑i − 1))` displayed as... the mismatch: `↑(-(↑i - 1)) * ...` vs `-(↑↑i - 1) * ...` — one has the whole integer cast, the other has ↑↑i − 1 (cast of i then subtract 1 in ℂ). These are EQUAL but not syntactically — the hasDerivAt_zpow I applied produced its own form, but my h2's stated type has the other form. Fix: make h2's stated type match hasDerivAt_zpow's OUTPUT form exactly: `hasDerivAt_zpow (-((i : ℤ) - 1)) (w - 1) (Or.inl hw1)` produces `HasDerivAt (fun x => x ^ (-(↑i - 1))) (↑(-(↑i - 1)) * (w - 1) ^ (-(↑i - 1) - 1)) (w - 1)` — note `↑(-(↑i - 1))` (whole integer cast). So h2's statement should be:\n```\n      have h2 : HasDerivAt (fun x : ℂ => x ^ (-((i : ℤ) - 1)))\n          ((↑(-((i : ℤ) - 1)) : ℂ) * (w - 1) ^ (-((i : ℤ) - 1) - 1)) (w - 1) :=\n        hasDerivAt_zpow (-((i : ℤ) - 1)) (w - 1) (Or.inl hw1)\n```\nThen hcomp : HasDerivAt ((·^m) ∘ (·−1)) (↑(-(↑i−1)) * (w−1)^(m−1) * 1) w — the goal: deriv (fun w => (w−1)^m) w = ((-((i:ℤ)−1)) : ℂ) * (w−1)^(m−1) — with the coefficient form `((-((i:ℤ)−1)) : ℂ)` vs `↑(-(↑i−1))` — same term, different notation — after the Function.comp_apply + mul_one rewrites, hcomp.deriv : deriv ((·^m) ∘ (·−1)) w = ↑(-(↑i−1)) * (w−1)^(m−1) — the GOAL has coefficient `(-((i:ℤ)−1)) : ℂ` — vs hcomp's `↑(-(↑i−1))` — SAME (both are \"cast of the integer −(i−1) to ℂ\") — just displayed differently. Should unify by defeq/rfl... The error at 220:10: `rw [Function.comp_apply, mul_one] at hcomp` — Function.comp_apply pattern `(?m ∘ ?m) ?m` — the hcomp's function is `((fun x => x ^ m) ∘ fun w => w - 1)` — comp_apply should match `(f ∘ g) x`... but hcomp's HasDerivAt has the function UNAPPLIED (as a whole function in HasDerivAt's first slot) — comp_apply needs an application. Use `simp only [Function.comp_apply, mul_one] at hcomp`? — comp_apply as simp rewrites `(f ∘ g) x` occurrences — the function argument of HasDerivAt is `(fun x => x^m) ∘ (fun w => w−1)` — as a bare function — no application to rewrite. The HasDerivAt.unfold? Instead use `HasDerivAt.comp`'s result directly via hcomp.deriv with the goal form: hcomp : HasDerivAt ((fun x => x^m) ∘ (fun w => w−1)) D w — hcomp.deriv : deriv ((fun x => x^m) ∘ (fun w => w−1)) w = D — the goal: deriv (fun w => (w−1)^m) w = D' — the functions (fun x => x^m) ∘ (fun w => w−1) vs (fun w => (w−1)^m) — defeq (comp_apply + eta): `exact hcomp.deriv` should work if D matches. D = ↑(-(↑i−1)) * (w−1)^(m−1) * 1 — with mul_one not applied — hcomp has `... * 1` at the end (from comp's h₂' * h' = D * 1): rw [mul_one] at hcomp fixes ✓ then exact hcomp.deriv — the coefficient ↑(-(↑i−1)) vs goal's ((-((i:ℤ)−1)) : ℂ) — defeq same ✓ exact should close.\n\nThe error at 220 says Function.comp_apply pattern not found in `HasDerivAt ((fun x => x ^ m) ∘ fun w => w - 1) (...) w` — right, no application. Fix: drop Function.comp_apply, just `rw [mul_one] at hcomp; exact hcomp.deriv`.\n\nLine 229: `rw [show (-((i : ℤ) - 1) : ℤ) = 1 - (i : ℤ) from by omega]` — the pattern `-(↑i - 1)` not found in `-(↑↑i - 1) = 1 - ↑i` — the hc statement's LHS `((-((i : ℤ) - 1)) : ℂ)` — displayed as `-(↑↑i - 1)` — my show's LHS `(-((i : ℤ) - 1) : ℤ)` — with the ℤ-negation — these don't match syntactically: hc's LHS is `(↑(-(↑i − 1)) : ℂ)` (whole cast) vs my show pattern `(-((i:ℤ)−1) : ℤ)` — different! The hc statement should be about the CASTED value: `((-((i : ℤ) - 1) : ℤ) : ℂ) = 1 - (i : ℂ)` — i.e., ↑(−(↑i−1)) = 1 − ↑i. My show's LHS `(-((i : ℤ) - 1) : ℤ)` = −(↑i−1) : ℤ — and hc's LHS is the CAST of that to ℂ. The rewrite `rw [show (-((i : ℤ) - 1) : ℤ) = 1 - (i : ℤ) from by omega]` — I want to rewrite the INTEGER inside the cast: the cast is `((X : ℤ) : ℂ)` with X = −(↑i−1) — rewrite X → (1 − ↑i : ℤ): the pattern in hc's LHS is `(↑X : ℂ)` with X = `-(↑i - 1)`... The display `-(↑↑i - 1)` — hmm — that reads as −(↑↑i − 1) : ℂ — i.e., the negation OUTSIDE and ↑↑i − 1 inside — so hc's LHS is `-((↑(↑i)) - 1)`?? — meaning the cast got distributed: ↑(-(↑i−1)) was elaborated/simplified to -(↑↑i − 1)?? — Lean's coercion simp normal form: `↑(-(↑i − 1))` → `-(↑↑i − 1)` (pushing casts outward). So the actual term is `-(↑↑i - 1) : ℂ` (negation of (↑↑i − 1)). My show pattern `(-((i:ℤ)−1) : ℤ)` doesn't appear. Fix: state hc differently:\n```\n    have hc : (-((i : ℤ) - 1) : ℂ) = 1 - (i : ℂ) := by\n      simp [Int.cast_sub, Int.cast_one]\n    rw [hc]\n```\nhc : (↑(-(↑i − 1)) : ℂ) = 1 − ↑i — proof: simp [Int.cast_sub, Int.cast_one] — LHS: ↑(−(↑i−1)) → −(↑↑i − 1)... simp should normalize both sides to the same: LHS −(↑↑i−1) = −↑↑i + 1; RHS 1 − ↑i: are these equal?? −(↑↑i − 1) = 1 − ↑↑i ✓ (as complex: −(x−1) = 1−x ✓) — simp/ring:\n```\n    have hc : (-((i : ℤ) - 1) : ℂ) = 1 - (i : ℂ) := by\n      push_cast\n      ring\n    rw [hc]\n```\npush_cast normalizes the LHS to −↑↑i + 1 or 1 − ↑↑i; then ring closes 1−↑↑i = 1−↑i (both ↑i : ℂ same cast ✓).\n\nAnd the earlier hd statement's coefficient: I wrote `((-((i : ℤ) - 1)) : ℂ) * (w - 1) ^ (...)` — after all these, hcomp.deriv should match by defeq (the cast forms are defeq-equal by push_cast normalization, but exact's defeq check goes through instance unfolding — might work). If not, I'll state hd with the normalized coefficient `-(↑i - 1 : ℂ)` from the start... Simplest: change hd's coefficient to `((1 : ℂ) - (i : ℂ))`-free form — keep `((-((i : ℤ) - 1)) : ℂ)` and let the downstream `rw [hc]` handle it — hc rewrites `(-((i:ℤ)−1) : ℂ)` — but the DISPLAYED term is `-(↑↑i−1)` — hc's LHS `(-((i:ℤ)−1) : ℂ)` — after push_cast in hc's PROOF the statement remains `↑(-(↑i−1)) = 1−↑i` — rewriting it in the goal requires the goal to contain `↑(-(↑i−1))` — the goal has `-(↑↑i−1)` (normalized form) — MISMATCH again. Ugh. The robust path: state hd's coefficient AS `(-(↑i - 1) : ℂ)` — i.e., the complex-number negation of (↑i − 1) — and prove the hasDerivAt result matches via push_cast normalization of hcomp.deriv's coefficient. Let me restructure hd:\n```\n    have hd : deriv (fun w => (w - 1) ^ (-((i : ℤ) - 1))) w\n        = ((-(↑i - 1)) : ℂ) * (w - 1) ^ (-((i : ℤ) - 1) - 1) := by\n      have h2 := hasDerivAt_zpow (-((i : ℤ) - 1)) (w - 1) (Or.inl hw1)\n      have h3 : HasDerivAt (fun w : ℂ => w - 1) 1 w := by\n        simpa using (hasDerivAt_id w).sub_const 1\n      have hcomp := h2.comp w h3\n      rw [mul_one] at hcomp\n      have hd' := hcomp.deriv\n      push_cast at hd' ⊢\n      exact hd'\n```\nHmm — push_cast at hd' ⊢ — normalizes both to the same form? push_cast on hd' : ↑(−(↑i−1))·... → −(↑↑i−1)·... and goal `(-(↑i−1) : ℂ)·...` — `-(↑i − 1)` with ↑i : ℂ — push_cast normalizes ↑↑i − 1 and ↑i − 1 differently?? (−(↑↑i − 1) : ℂ) vs (−(↑i − 1) : ℂ) — the first is −(x − 1) with x = ↑↑i, the second −(y) with y = ↑i − 1 — push_cast: ↑(↑i) = ↑i (one cast ✓ same). −(↑↑i − 1) = −(↑i − 1) ✓ syntactically after cast fusion ✓. OK — but wait, my hd's coefficient written `(-(↑i - 1) : ℂ)` — that's the complex negation applied to (↑i − 1) — is that the same as the goal's expected form downstream? In the final algebra I want the coefficient to cancel with −(A_i/(i−1)): −(A_i/(i−1)) · ((−(↑i−1))·X) = A_i·(↑i−1)/(↑i−1)·X = A_i·X ✓ via field_simp [hi1] + ring ✓. So let me set hd's coefficient to `(-(↑i - 1) : ℂ)` where ↑i : ℂ — write it as `(-((i : ℂ) - 1) : ℂ)` to be unambiguous... honestly at this point the cleanest is to avoid the coefficient naming entirely: prove hd with the coefficient AS IT COMES from hasDerivAt_zpow (i.e. `↑(-(↑i − 1))`), and in the final algebra, normalize with push_cast before field_simp. Let me restructure the whole term-derivative computation more robustly — actually let me just make hd's statement use EXACTLY the hasDerivAt_zpow output coefficient form, then in the final step push_cast + field_simp + ring:\n\nhd : deriv (fun w => (w - 1) ^ (-((i : ℤ) - 1))) w\n    = ((↑(-((i : ℤ) - 1))) : ℂ) * (w - 1) ^ (-((i : ℤ) - 1) - 1)\nwith proof: hcomp.deriv after mul_one — then in the final: rw [deriv_const_mul ..., hd]; then push_cast; field_simp [hw1, hi1]; ring.\n\nThe `↑(-((i : ℤ) - 1))` written in Lean: `((-((i : ℤ) - 1) : ℤ) : ℂ)`? — hmm, `↑(-((i:ℤ)−1))` — write `((-((i : ℤ) - 1) : ℤ) : ℂ)` — explicit both casts. Then hcomp.deriv's coefficient is exactly that ✓ exact hcomp.deriv closes after mul_one ✓.\n\nLet me rewrite lines 212–233 accordingly.","signature":""},{"type":"text","text":"Let me rewrite the problematic derivative block with exact cast forms."},{"type":"tool_use","id":"Edit_276","name":"Edit","input":{"file_path":"D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiPrincipal.lean","old_string":"    have hd : deriv (fun w => (w - 1) ^ (-((i : ℤ) - 1))) w\n        = ((-((i : ℤ) - 1)) : ℂ) * (w - 1) ^ (-((i : ℤ) - 1) - 1) := by\n      have h2 : HasDerivAt (fun x : ℂ => x ^ (-((i : ℤ) - 1)))\n          ((-((i : ℤ) - 1)) * (w - 1) ^ (-((i : ℤ) - 1) - 1)) (w - 1) :=\n        hasDerivAt_zpow (-((i : ℤ) - 1)) (w - 1) (Or.inl hw1)\n      have h3 : HasDerivAt (fun w : ℂ => w - 1) 1 w := by\n        simpa using (hasDerivAt_id w).sub_const 1\n      have hcomp := h2.comp w h3\n      rw [Function.comp_apply, mul_one] at hcomp\n      exact hcomp.deriv\n    rw [deriv_const_mul _ (by\n      have hw1' : w - 1 ≠ 0 := sub_ne_zero.mpr hw\n      exact (((hasDerivAt_zpow (-((i : ℤ) - 1)) (w - 1) (Or.inl hw1')).differentiableAt).comp w\n        (((hasDerivAt_id w).sub_const 1).differentiableAt))), hd]\n    have hm : (-((i : ℤ) - 1) - 1 : ℤ) = -(i : ℤ) := by omega\n    rw [hm]\n    have hc : ((-((i : ℤ) - 1)) : ℂ) = 1 - (i : ℂ) := by\n      rw [show (-((i : ℤ) - 1) : ℤ) = 1 - (i : ℤ) from by omega]\n      simp [Int.cast_sub, Int.cast_one]\n    rw [hc]\n    field_simp [hw1, hi1]\n    rw [zpow_neg, zpow_natCast]\n    field_simp [hw1]\n    ring","new_string":"    have hd : deriv (fun w => (w - 1) ^ (-((i : ℤ) - 1))) w\n        = ((-((i : ℤ) - 1) : ℤ) : ℂ) * (w - 1) ^ (-((i : ℤ) - 1) - 1) := by\n      have h2 : HasDerivAt (fun x : ℂ => x ^ (-((i : ℤ) - 1)))\n          (((-((i : ℤ) - 1) : ℤ) : ℂ) * (w - 1) ^ (-((i : ℤ) - 1) - 1)) (w - 1) :=\n        hasDerivAt_zpow (-((i : ℤ) - 1)) (w - 1) (Or.inl hw1)\n      have h3 : HasDerivAt (fun w : ℂ => w - 1) 1 w := by\n        simpa using (hasDerivAt_id w).sub_const 1\n      have hcomp := h2.comp w h3\n      rw [mul_one] at hcomp\n      exact hcomp.deriv\n    rw [deriv_const_mul _ (by\n      have hw1' : w - 1 ≠ 0 := sub_ne_zero.mpr hw\n      exact (((hasDerivAt_zpow (-((i : ℤ) - 1)) (w - 1) (Or.inl hw1')).differentiableAt).comp w\n        (((hasDerivAt_id w).sub_const 1).differentiableAt))), hd]\n    have hm : (-((i : ℤ) - 1) - 1 : ℤ) = -(i : ℤ) := by omega\n    rw [hm]\n    push_cast\n    field_simp [hw1, hi1]\n    rw [zpow_neg, zpow_natCast]\n    field_simp [hw1]\n    ring"},"extra_content":null}]