Current task: —

← Session 28 — ii′-5e: partial-fraction identity (zero series + F entire)

#1549 assistant 2026-08-23 18:22:43.544 UTC · 6109→2231 tok open ⤢
thinking (5543 chars)
Now the tail bound. Let me think about the cleanest formulation once more, aiming for minimal Lean pain. **The tail bound** I need: for X ≥ 2 (I'll use X := 3R/2 or just 2R−1...): ∑' ρ : {ρ // IsNontrivialZero ρ ∧ X < |ρ.im|}, (zeroMult ρ : ℝ)/(1 + ρ.im²) ≤ C·A0count·(log X)/X·... Hmm — actually, wait. Let me reconsider: do I even need the tail as a SEPARATE subtype tsum? The full series bound structure: ‖seriesFun s‖ ≤ ∑'_{all zeros} ‖term s ρ‖ = Σ_{ρ ∈ F} ‖term‖ + ∑'_{ρ ∉ F} ‖term‖ [tsum_split_finset, F := {‖ρ‖ ≤ 2R} finset] The tail ∑'_{∉F} ‖term‖ ≤ ∑'_{∉F} (17R/6)·m/(1+γ²) = (17R/6)·∑'_{∉F} m/(1+γ²). For ∑'_{∉F} m/(1+γ²): the set {∉F} = {‖ρ‖ > 2R}: |γ| > 2R−1 ≥ 3R/2 (R ≥ 2): so {∉F} ⊆ G := {ρ // nontriv ∧ 3R/2 < |γ|}: ∑'_{∉F} ≤ ∑'_{G} (nonneg, subset of subtypes — the support-indicator or tsum_le_tsum via the subtype inclusion...). Hmm — subtype-of-subtype: {∉F} as a subtype of the zero-subtype vs G as another: the tsum over {∉F} = ∑' over the zero subtype of (indicator {∉F})·f ≤ ∑' over zero-subtype of (indicator G)·f = ∑' over G-subtype — via Summable.tsum_le_tsum with the indicator functions on the FULL zero subtype (indicator ≤ indicator pointwise ✓ since {∉F} ⊆ G) — and ∑' (indicator A)·f = ∑'_{A-subtype} f — needs a bridge lemma `tsum_subtype_eq_...`? There's `tsum_subtype` : ∑' x : s, f x = ∑' x, s.indicator f x? something like `tsum_subtype (f) (s) : ∑' x : s, f x = ∑' x, s.indicator f x`?? exists I believe (`tsum_subtype`). And summability of indicator: `Summable.indicator (hf : Summable f) (s)`? ✓ exists. So ∑'_{∉F} m/(1+γ²) ≤ ∑'_{zeros} (G.indicator (m/(1+γ²))) = ∑'_{G-subtype} m/(1+γ²) — and the G-tail bound via dyadic shells on G. The G-tail dyadic bound — via the ℝ≥0∞ route for free tsum_comm, or direct: ∑'_{G} m/(1+γ²) where G = {3R/2 < |γ|}: split G by |γ| ≤ 2^k·(3R/2)... — the dyadic split of a TSUM over a subtype by shells — ONE more layer of the same pain. Let me just prove the dyadic-tail bound ONCE, generically, for the zero subtype, in a form directly reusable: **`zero_tail_inv_sq_le`**: ∀ X ≥ 4, ∑' ρ : {ρ // IsNontrivialZero ρ ∧ X ≤ |ρ.im|}, (zeroMult ρ : ℝ)/(1 + ρ.im^2) ≤ 40·A0count·Real.log X / X·... hmm — the cleanest proof of THIS via the window count: ∑'_{G_X} m/(1+γ²) ≤ Σ_{j=0}^∞ (count of {X + j ≤ |γ| < X+j+1})·1/(1+(X+j)²) ≤ Σ_j 2·A₀·log(3(X+j+1)+5)·.../ (X+j)² with the window count at the unit ordinate windows. The count of {X+j ≤ |γ| < X+j+1} = Ncount(X+j, X+j+1] + Ncount(−(X+j+1), −(X+j)] ≤ 2·A₀·log(X+j+1+3) (Ncount_window_le each — via |t|+3 = X+j+4 ✓). So the sum ≤ Σ_j 2A₀·log(X+j+4)/(X+j)². Now Σ_{j≥0} log(X+j+4)/(X+j)²: substitute i = ⌈X⌉+j ≥ ... messy. Bound: for X ≥ 4, j ≥ 0: log(X+j+4) ≤ log((X+4)(j+1))·... hmm X+j+4 ≤ (X+4)(j+1) ⟺ X+j+4 ≤ Xj + X + 4j + 4 ⟺ 0 ≤ Xj + 3j ✓ (X,j ≥ 0): so log(X+j+4) ≤ log(X+4) + log(j+1). And (X+j)² ≥ X²(1+j/X...)·... use (X+j)² ≥ X·(X+j)·... hmm — (X+j)² ≥ X² + j²: 1/(X+j)² ≤ 1/(X²+j²)·... For the sum: Σ_j [log(X+4) + log(j+1)]/(X+j)² ≤ log(X+4)·Σ_j 1/(X+j)² + Σ_j log(j+1)/(X+j)²: - Σ_j 1/(X+j)² ≤ 1/X² + ∫₀^∞ ... ≤ 2/X for X ≥ 1 (Σ_{j≥0} 1/(X+j)² ≤ 1/X² + ∫₀^∞ dt/(X+t)² = 1/X² + 1/X ≤ 2/X ✓). In Lean: the series-to-integral: `Summable` of 1/(X+j)² + the tail bound — Mathlib: `tsum_one_div_nat...`? There's `summable_nat_add_iff` (used in LiDigamma) + comparisons... the tail Σ_{j} 1/(X+j)² ≤ 2/X: prove via the telescope: 1/(X+j)² ≤ 1/((X+j−1)(X+j)) = 1/(X+j−1) − 1/(X+j) for X+j ≥ 2... 5e-ii's `tsum_one_div_sub_telescope` exists! (1/N tail): ∑'ₙ (1/(n+N) − 1/(n+N+1)) = 1/N ✓ BANKED in LiDigammaLeft. And 1/(X+j)² ≤ 1/((X+j)(X+j−1)) ≤ ... hmm the telescope is over nat-indexed shifts with real N: for real X: 1/(X+j)² ≤ 1/((X+j−1)(X+j)) = 1/(X+j−1) − 1/(X+j) — the telescope over j : ℕ with REAL shift — the banked one is `1/(n+N) − 1/(n+N+1)` with N : ℕ?? Let me check its exact form... `tsum_one_div_sub_telescope` from session 027: "1/N tail" — form unknown (N real or nat?). This is getting really deep into estimation plumbing. STOP — PACING CHECK: this session has been very long. The remaining 5e-v work (tail bound + F-finset shell bounds + assembly + logDeriv assembly + squeeze + capstone) is easily 700+ more lines. The right move per the pacing directive (§8.5: NO RUSH; sub-stage rule; break prompt): commit the current clean state, update STATE.md with the precise remaining plan, write journal-030, and close the session. The next session resumes at 5e-v-b's tail bound with the full design recorded. Actually — hold on. Let me reconsider the size one final time, because there might be a shortcut I'm missing for the TAIL specifically: The tail ∑'_{|γ| > 3R/2} m/(1+γ²): instead of bounding by O(log R / R), note: I need the total circle bound to be o(R). The tail contributes (17R/6)·tail — so I need tail = o(1)... any explicit decay works: tail ≤ 40A₀·log(R)/R is plenty. Is there a SOFTER bound that's much cheaper to prove? E.g. tail ≤ C·A₀·log(R)/R via... what about using the convergence of Σ m/(1+γ²) directly: the tail of a convergent series → 0 — but I need an explicit RATE to beat the 17R/6 factor (tail ≪ 1/R needed). A rate needs the count input — no escape. What about pulling the 1/(1+γ²) tail bound from ZERO_SUM_INV_SQ's proof internals? Zeta23's ZeroSummability.lean has `zero_sum_inv_sq_gen` with the dyadic/unit-window summation — the tail bound is INSIDE that proof: "Σ_ρ m_ρ/(1+|γ_ρ|²) converges (dyadic/unit-window summation of the local count)". Is there a PACKAGED tail estimate in Zeta23? Let me check ZeroSummability for a tail lemma.
Let me check whether Zeta23's ZeroSummability has a packaged tail estimate before building my own.
tool: Bash
input
{
  "command": "cd D:/Python/Quantum/zeta-23-lean && grep -n \"theorem\\|lemma\" Zeta23/WeilEF/ZeroSummability.lean | head -20",
  "description": "ZeroSummability declarations"
}
raw content_json (database row)
[{"type":"thinking","thinking":"Now the tail bound. Let me think about the cleanest formulation once more, aiming for minimal Lean pain.\n\n**The tail bound** I need: for X ≥ 2 (I'll use X := 3R/2 or just 2R−1...):\n∑' ρ : {ρ // IsNontrivialZero ρ ∧ X < |ρ.im|}, (zeroMult ρ : ℝ)/(1 + ρ.im²) ≤ C·A0count·(log X)/X·... \n\nHmm — actually, wait. Let me reconsider: do I even need the tail as a SEPARATE subtype tsum? The full series bound structure:\n\n‖seriesFun s‖ ≤ ∑'_{all zeros} ‖term s ρ‖ \n  = Σ_{ρ ∈ F} ‖term‖ + ∑'_{ρ ∉ F} ‖term‖  [tsum_split_finset, F := {‖ρ‖ ≤ 2R} finset]\n  \nThe tail ∑'_{∉F} ‖term‖ ≤ ∑'_{∉F} (17R/6)·m/(1+γ²) = (17R/6)·∑'_{∉F} m/(1+γ²).\n\nFor ∑'_{∉F} m/(1+γ²): the set {∉F} = {‖ρ‖ > 2R}: |γ| > 2R−1 ≥ 3R/2 (R ≥ 2): so {∉F} ⊆ G := {ρ // nontriv ∧ 3R/2 < |γ|}: ∑'_{∉F} ≤ ∑'_{G} (nonneg, subset of subtypes — the support-indicator or tsum_le_tsum via the subtype inclusion...). Hmm — subtype-of-subtype: {∉F} as a subtype of the zero-subtype vs G as another: the tsum over {∉F} = ∑' over the zero subtype of (indicator {∉F})·f ≤ ∑' over zero-subtype of (indicator G)·f = ∑' over G-subtype — via Summable.tsum_le_tsum with the indicator functions on the FULL zero subtype (indicator ≤ indicator pointwise ✓ since {∉F} ⊆ G) — and ∑' (indicator A)·f = ∑'_{A-subtype} f — needs a bridge lemma `tsum_subtype_eq_...`? There's `tsum_subtype` : ∑' x : s, f x = ∑' x, s.indicator f x? something like `tsum_subtype (f) (s) : ∑' x : s, f x = ∑' x, s.indicator f x`?? exists I believe (`tsum_subtype`). And summability of indicator: `Summable.indicator (hf : Summable f) (s)`? ✓ exists.\n\nSo ∑'_{∉F} m/(1+γ²) ≤ ∑'_{zeros} (G.indicator (m/(1+γ²))) = ∑'_{G-subtype} m/(1+γ²) — and the G-tail bound via dyadic shells on G.\n\nThe G-tail dyadic bound — via the ℝ≥0∞ route for free tsum_comm, or direct: \n\n∑'_{G} m/(1+γ²) where G = {3R/2 < |γ|}: split G by |γ| ≤ 2^k·(3R/2)... — the dyadic split of a TSUM over a subtype by shells — ONE more layer of the same pain. \n\nLet me just prove the dyadic-tail bound ONCE, generically, for the zero subtype, in a form directly reusable:\n\n**`zero_tail_inv_sq_le`**: ∀ X ≥ 4, ∑' ρ : {ρ // IsNontrivialZero ρ ∧ X ≤ |ρ.im|}, (zeroMult ρ : ℝ)/(1 + ρ.im^2) ≤ 40·A0count·Real.log X / X·... \n\nhmm — the cleanest proof of THIS via the window count: \n\n∑'_{G_X} m/(1+γ²) ≤ Σ_{j=0}^∞ (count of {X + j ≤ |γ| < X+j+1})·1/(1+(X+j)²)\n≤ Σ_j 2·A₀·log(3(X+j+1)+5)·.../ (X+j)²\n\nwith the window count at the unit ordinate windows. The count of {X+j ≤ |γ| < X+j+1} = Ncount(X+j, X+j+1] + Ncount(−(X+j+1), −(X+j)] ≤ 2·A₀·log(X+j+1+3) (Ncount_window_le each — via |t|+3 = X+j+4 ✓). So the sum ≤ Σ_j 2A₀·log(X+j+4)/(X+j)².\n\nNow Σ_{j≥0} log(X+j+4)/(X+j)²: substitute i = ⌈X⌉+j ≥ ... messy. Bound: for X ≥ 4, j ≥ 0: log(X+j+4) ≤ log((X+4)(j+1))·... hmm X+j+4 ≤ (X+4)(j+1) ⟺ X+j+4 ≤ Xj + X + 4j + 4 ⟺ 0 ≤ Xj + 3j ✓ (X,j ≥ 0): so log(X+j+4) ≤ log(X+4) + log(j+1). And (X+j)² ≥ X²(1+j/X...)·... use (X+j)² ≥ X·(X+j)·... hmm — (X+j)² ≥ X² + j²: 1/(X+j)² ≤ 1/(X²+j²)·... For the sum: Σ_j [log(X+4) + log(j+1)]/(X+j)² ≤ log(X+4)·Σ_j 1/(X+j)² + Σ_j log(j+1)/(X+j)²:\n- Σ_j 1/(X+j)² ≤ 1/X² + ∫₀^∞ ... ≤ 2/X for X ≥ 1 (Σ_{j≥0} 1/(X+j)² ≤ 1/X² + ∫₀^∞ dt/(X+t)² = 1/X² + 1/X ≤ 2/X ✓). In Lean: the series-to-integral: `Summable` of 1/(X+j)² + the tail bound — Mathlib: `tsum_one_div_nat...`? There's `summable_nat_add_iff` (used in LiDigamma) + comparisons... the tail Σ_{j} 1/(X+j)² ≤ 2/X: prove via the telescope: 1/(X+j)² ≤ 1/((X+j−1)(X+j)) = 1/(X+j−1) − 1/(X+j) for X+j ≥ 2... 5e-ii's `tsum_one_div_sub_telescope` exists! (1/N tail): ∑'ₙ (1/(n+N) − 1/(n+N+1)) = 1/N ✓ BANKED in LiDigammaLeft. And 1/(X+j)² ≤ 1/((X+j)(X+j−1)) ≤ ... hmm the telescope is over nat-indexed shifts with real N: for real X: 1/(X+j)² ≤ 1/((X+j−1)(X+j)) = 1/(X+j−1) − 1/(X+j) — the telescope over j : ℕ with REAL shift — the banked one is `1/(n+N) − 1/(n+N+1)` with N : ℕ?? Let me check its exact form... `tsum_one_div_sub_telescope` from session 027: \"1/N tail\" — form unknown (N real or nat?). \n\nThis is getting really deep into estimation plumbing. STOP — PACING CHECK: this session has been very long. The remaining 5e-v work (tail bound + F-finset shell bounds + assembly + logDeriv assembly + squeeze + capstone) is easily 700+ more lines. The right move per the pacing directive (§8.5: NO RUSH; sub-stage rule; break prompt): commit the current clean state, update STATE.md with the precise remaining plan, write journal-030, and close the session. The next session resumes at 5e-v-b's tail bound with the full design recorded.\n\nActually — hold on. Let me reconsider the size one final time, because there might be a shortcut I'm missing for the TAIL specifically:\n\nThe tail ∑'_{|γ| > 3R/2} m/(1+γ²): instead of bounding by O(log R / R), note: I need the total circle bound to be o(R). The tail contributes (17R/6)·tail — so I need tail = o(1)... any explicit decay works: tail ≤ 40A₀·log(R)/R is plenty. Is there a SOFTER bound that's much cheaper to prove? E.g. tail ≤ C·A₀·log(R)/R via... what about using the convergence of Σ m/(1+γ²) directly: the tail of a convergent series → 0 — but I need an explicit RATE to beat the 17R/6 factor (tail ≪ 1/R needed). A rate needs the count input — no escape.\n\nWhat about pulling the 1/(1+γ²) tail bound from ZERO_SUM_INV_SQ's proof internals? Zeta23's ZeroSummability.lean has `zero_sum_inv_sq_gen` with the dyadic/unit-window summation — the tail bound is INSIDE that proof: \"Σ_ρ m_ρ/(1+|γ_ρ|²) converges (dyadic/unit-window summation of the local count)\". Is there a PACKAGED tail estimate in Zeta23? Let me check ZeroSummability for a tail lemma.","signature":""},{"type":"text","text":"Let me check whether Zeta23's ZeroSummability has a packaged tail estimate before building my own."},{"type":"tool_use","id":"Bash_333","name":"Bash","input":{"command":"cd D:/Python/Quantum/zeta-23-lean && grep -n \"theorem\\|lemma\" Zeta23/WeilEF/ZeroSummability.lean | head -20","description":"ZeroSummability declarations"},"extra_content":null}]