Current task: —

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

#1527 assistant 2026-08-23 17:01:36.903 UTC · 1445→1212 tok open ⤢
thinking (3021 chars)
`LSeries.norm_term_le_of_re_le_re (f) {s s'} (h : s.re ≤ s'.re) (n) : ‖term f s' n‖ ≤ ‖term f s n‖` ✓ — so with s' := s (my point, re ≥ 2) and s := 2: ‖term Λ s n‖ ≤ ‖term Λ 2 n‖ ✓. Now let me design the full 5e-v build. This is big, so let me organize into sub-stages and decide the final capstone form. **5e-v sub-stage plan:** - v-a: the Dirichlet bound lemma + the logDeriv ΓR pointwise identity at pole-free points (or the closure trick — decide: closure trick is cleaner); plus the conjugate-symmetry for IsNontrivialZero (for the lower half-circle). - v-b: the series circle bound (the radial split) — the analytic heart. - v-c: the full circle bound assembly + the squeeze + the ∃ B capstone. Actually wait — let me reconsider the squeeze's needs once more. The squeeze: G(z) := (Gentire z − Gentire 0)/z. Max-modulus on the disc |z| ≤ R_k: |G(z)| ≤ sup_{|w|=R_k} |G w| ≤ (sup_{|w|=R_k} |Gentire w| + |Gentire 0|)/R_k. With sup |Gentire| ≤ C(log R_k)³ (say): |G(z)| ≤ (C(log R_k)³ + |Gentire 0|)/R_k → 0 as k → ∞ ⟹ G(z) = 0 for every fixed z (taking k large enough that z ∈ disc). ⟹ Gentire z = Gentire 0 for all z ✓. For the max-modulus step on the disc: Zeta23's `AnalyticOn.norm_le_of_norm_le_on_sphere` — check its statement (5c pattern). G entire ⟹ AnalyticOn on the closed disc ✓. Also G's analyticity at 0: G(z) = (F(z)−F(0))/z with F = Gentire entire: the difference quotient at 0: F(z) = F(0) + c₁z + ... ⟹ (F(z)−F(0))/z = c₁ + ... analytic: Mathlib: is there `AnalyticAt.sub_self_div`? or `AnalyticAt.div` of...? D-068 §5: "the difference-quotient analyticity — check Mathlib for AnalyticAt of (f w − f z)/(w − z); if missing, build from the HasFPowerSeriesAt tail (~30 lines)". Let me check Mathlib for it: `AnalyticAt.fun_sub_div`? hmm. There IS something: for HasFPowerSeriesAt f p x: f w − f z = ... The quotient (f w − f z)/(w−z) as a function of w at z: equals deriv-ish + higher terms: p.hasFPowerSeriesAt... build: (f w − f z)/(w − z) = Σ_{n≥1} pₙ (w−z)^{n−1}·... = Σ_m p_{m+1}(w−z)^m — a power series with radius ≥ radius of p: `HasFPowerSeriesAt` of the shifted series: FormalMultilinearSeries... there's a known API: `HasFPowerSeriesAt.hasFPowerSeriesAt_sub...`? Hmm. Alternatively: G(z) = ∫₀¹ F'(tz) dt-style? no. Let me search Mathlib for "sub_div" analyticity or `AnalyticAt.fun_...`. Actually — simplest: G(z) = (F(z) − F(0))/z for z ≠ 0 and G(0) = F'(0)... a piecewise def — no. The power-series tail: Mathlib `FormalMultilinearSeries` API: there might be `HasFPowerSeriesAt.div_sub...`. Search needed. Hmm — actually wait. There's an even simpler classical dodge for the squeeze that AVOIDS the difference quotient: use the bound at TWO radii... no. Or: apply max-modulus to F − F(0) on the disc and note F − F(0) vanishes at 0 ⟹ ... the standard argument: |F(z) − F(0)| ≤ sup_sphere|F−F(0)| — that gives O((log R)³) not o(1). The divide-by-z is essential. So the difference-quotient analyticity is needed. Let me check Mathlib: `AnalyticAt.sub_div`? Let me grep for the pattern.
Now checking the two remaining API pieces: the difference-quotient analyticity and Zeta23's max-modulus-on-sphere.
tool: Bash
input
{
  "command": "cd D:/Python/Quantum/zeta-23-lean/.lake/packages/mathlib && grep -rn \"sub.*div.*AnalyticAt\\|AnalyticAt.*sub.*div\\|hasFPowerSeriesAt.*sub\\|quotient\" Mathlib/Analysis/Analytic/Constructions.lean | head -8; grep -rn \"norm_le_of_norm_le_on_sphere\\|norm_le_on_sphere\" D:/Python/Quantum/zeta-23-lean/Zeta23/ --include=*.lean | head -4",
  "description": "Difference-quotient analyticity + sphere max-modulus"
}
raw content_json (database row)
[{"type":"thinking","thinking":"`LSeries.norm_term_le_of_re_le_re (f) {s s'} (h : s.re ≤ s'.re) (n) : ‖term f s' n‖ ≤ ‖term f s n‖` ✓ — so with s' := s (my point, re ≥ 2) and s := 2: ‖term Λ s n‖ ≤ ‖term Λ 2 n‖ ✓.\n\nNow let me design the full 5e-v build. This is big, so let me organize into sub-stages and decide the final capstone form.\n\n**5e-v sub-stage plan:**\n- v-a: the Dirichlet bound lemma + the logDeriv ΓR pointwise identity at pole-free points (or the closure trick — decide: closure trick is cleaner); plus the conjugate-symmetry for IsNontrivialZero (for the lower half-circle).\n- v-b: the series circle bound (the radial split) — the analytic heart.\n- v-c: the full circle bound assembly + the squeeze + the ∃ B capstone.\n\nActually wait — let me reconsider the squeeze's needs once more. The squeeze: G(z) := (Gentire z − Gentire 0)/z. Max-modulus on the disc |z| ≤ R_k: |G(z)| ≤ sup_{|w|=R_k} |G w| ≤ (sup_{|w|=R_k} |Gentire w| + |Gentire 0|)/R_k. With sup |Gentire| ≤ C(log R_k)³ (say): |G(z)| ≤ (C(log R_k)³ + |Gentire 0|)/R_k → 0 as k → ∞ ⟹ G(z) = 0 for every fixed z (taking k large enough that z ∈ disc). ⟹ Gentire z = Gentire 0 for all z ✓.\n\nFor the max-modulus step on the disc: Zeta23's `AnalyticOn.norm_le_of_norm_le_on_sphere` — check its statement (5c pattern). G entire ⟹ AnalyticOn on the closed disc ✓. Also G's analyticity at 0: G(z) = (F(z)−F(0))/z with F = Gentire entire: the difference quotient at 0: F(z) = F(0) + c₁z + ... ⟹ (F(z)−F(0))/z = c₁ + ... analytic: Mathlib: is there `AnalyticAt.sub_self_div`? or `AnalyticAt.div` of...? D-068 §5: \"the difference-quotient analyticity — check Mathlib for AnalyticAt of (f w − f z)/(w − z); if missing, build from the HasFPowerSeriesAt tail (~30 lines)\". Let me check Mathlib for it: `AnalyticAt.fun_sub_div`? hmm. There IS something: for HasFPowerSeriesAt f p x: f w − f z = ... The quotient (f w − f z)/(w−z) as a function of w at z: equals deriv-ish + higher terms: p.hasFPowerSeriesAt... build: (f w − f z)/(w − z) = Σ_{n≥1} pₙ (w−z)^{n−1}·... = Σ_m p_{m+1}(w−z)^m — a power series with radius ≥ radius of p: `HasFPowerSeriesAt` of the shifted series: FormalMultilinearSeries... there's a known API: `HasFPowerSeriesAt.hasFPowerSeriesAt_sub...`? Hmm. Alternatively: G(z) = ∫₀¹ F'(tz) dt-style? no. Let me search Mathlib for \"sub_div\" analyticity or `AnalyticAt.fun_...`.\n\nActually — simplest: G(z) = (F(z) − F(0))/z for z ≠ 0 and G(0) = F'(0)... a piecewise def — no. The power-series tail: Mathlib `FormalMultilinearSeries` API: there might be `HasFPowerSeriesAt.div_sub...`. Search needed.\n\nHmm — actually wait. There's an even simpler classical dodge for the squeeze that AVOIDS the difference quotient: use the bound at TWO radii... no. Or: apply max-modulus to F − F(0) on the disc and note F − F(0) vanishes at 0 ⟹ ... the standard argument: |F(z) − F(0)| ≤ sup_sphere|F−F(0)| — that gives O((log R)³) not o(1). The divide-by-z is essential. So the difference-quotient analyticity is needed. Let me check Mathlib:\n\n`AnalyticAt.sub_div`? Let me grep for the pattern.","signature":""},{"type":"text","text":"Now checking the two remaining API pieces: the difference-quotient analyticity and Zeta23's max-modulus-on-sphere."},{"type":"tool_use","id":"Bash_243","name":"Bash","input":{"command":"cd D:/Python/Quantum/zeta-23-lean/.lake/packages/mathlib && grep -rn \"sub.*div.*AnalyticAt\\|AnalyticAt.*sub.*div\\|hasFPowerSeriesAt.*sub\\|quotient\" Mathlib/Analysis/Analytic/Constructions.lean | head -8; grep -rn \"norm_le_of_norm_le_on_sphere\\|norm_le_on_sphere\" D:/Python/Quantum/zeta-23-lean/Zeta23/ --include=*.lean | head -4","description":"Difference-quotient analyticity + sphere max-modulus"},"extra_content":null}]