Current task: —

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

#1522 assistant 2026-08-23 16:56:20.857 UTC · 859→8891 tok open ⤢
thinking (23625 chars)
Session 030: ii′-5e-v — the circle bound + the squeeze ⟹ capstone ∃ B identity. Let me plan this carefully. The target (D-068 §5): On |s| = R_k (5e-i's γ-gap circles): - |ζ′/ζ|: right part (re ≥ 1/2, |t| ≥ 10): 5c; left part (re ≤ 1/2, |t| ≥ 10): 5d; right near-axis (|t| < 10, re ≈ +R): Dirichlet-series bound ‖ζ′/ζ‖ ≤ Σ Λ(n)/n^re ≤ C for re ≥ 2 (Zeta23 LSeries vonMangoldt); left near-axis (re ≈ −R): FE-reflect pointwise. - |series|: O((log R)³/c) by the radial split. - |elems|: −1/s, −1/(s−1) = O(1/R); ½log π const; ½ψ(s/2) = O(log R). Total: |F| ≤ C(log R_k)³ on |s| = R_k. Then the squeeze: G(z) := (Gentire z − Gentire 0)/z entire; |G| ≤ C(log R)³/R on circles → 0 ⟹ G ≡ 0 ⟹ Gentire ≡ Gentire 0. Let me think about what's REALLY needed and the simplest honest route. First — the squeeze. Actually, do I even need the (log R)³ tightness? The squeeze needs |F|/R → 0 along SOME sequence of circles R_k → ∞. O((log R)³) is plenty; even O(R^{1/2}) would do. So the circle bound just needs to be o(R). The radial split gives (log R)³/c — with c the pigeonhole constant from ZeroCountProp (perimeter!) — hmm, the γ-gap circles from 5e-i: `exists_gapCircle_radius` gives R ∈ [4k+5/2, 4k+3] with ordinate clearance ≥ 1/(16·C0hat(4k+9/2)) — that uses the perimeter ZeroCountProp (Trudgian N(T)/S(T) in Ĉ₀ form)! Wait — C0hat is the perimeter-based count function? Let me check: LiGapCircles used "the perimeter ZeroCountProp (Trudgian N(T)/S(T) in Ĉ₀ form)". So the circles' clearance constant depends on the perimeter. Hmm — but the perimeter is a DECLARED hypothesis (Trudgian N(T)/S(T) is inside the trusted perimeter per D-062 §4). So the capstone will be conditional on the perimeter? No wait — the perimeter hypotheses are the declared computational inputs (RHUpTo, LiVerifiedUpTo, Trudgian N(T)/S(T), M₀) that the FINAL theorem is conditional on. The SfBoundProp closure (ii′-7) is allowed to use the perimeter. So using ZeroCountProp here is fine — but it makes the identity proof depend on it as a hypothesis. Hmm, wait — but the partial-fraction identity itself is UNCONDITIONAL mathematics. The Lean proof can take the perimeter as a hypothesis; at ii′-7 the perimeter is declared. Actually — hold on: is ZeroCountProp a Prop-valued hypothesis or a proved fact in NguyenRH1? From ii′-4: "L3 `exists_zero_avoiding_T` — ... from the perimeter `ZeroCountProp` (Trudgian N(T)/S(T) in Ĉ₀ form)". So ZeroCountProp is a structure/Prop that gets INSTANTIATED by the declared Trudgian fact. Let me check how it's used — LiContour's exists_zero_avoiding_T takes it as a hypothesis? And LiGapCircles' exists_gapCircle_radius — does it take ZeroCountProp as an argument? Let me check the signatures. Also 5c's `logDeriv_riemannZeta_sub_nearZeros_le` — "no perimeter hypothesis (Jensen count input)" per STATE. Good. Actually, wait — I should reconsider. For the circle bound on the SERIES, the count input is the number of zeros in annuli/unit windows. Two options: (a) perimeter ZeroCountProp (Trudgian) — but that makes the capstone identity depend on the perimeter hypothesis, which then propagates into SfBoundProp's proof... which is FINE since SfBoundProp's closure at ii′-7 is allowed the perimeter. But it's cleaner to avoid unnecessary dependencies. (b) The Jensen count (5c's scaledZeta_jensen_count): N(disc) ≤ log((9/4)|t|²)/log(33/32) — a PROVED unconditional count for the disc at 2+it radius 5/2. From that, unit-window counts follow: zeros in [t−1, t+1]×[0,1]... the disc covers the window... a unit window [a, a+1] at height t sits inside the disc at 2+it of radius 5/2? The window {0 < re < 1, t ≤ im ≤ t+1}: point 0.5 + i(t+0.5): distance to 2+it: √(1.5² + 0.5²) = √2.5 ≈ 1.58 < 2.5 ✓. So the unit-window count ≤ disc count ≤ (2/... )·log-ish. Hmm — but that disc count is at height t: ≤ log((9/4)|t|²)/log(33/32) for |t| ≥ 10. For |t| < 10: finiteness + a direct bound? The zeros in the compact region {|im| ≤ 10, 0 ≤ re ≤ 1} — finite (compact-finiteness) — but I need an EXPLICIT bound... Jensen on a fixed disc: disc at 2 radius 5/2... hmm |t| < 10 with various t. Use one big disc: the disc at 2+i·0... radius: to cover |im| ≤ 10, re ∈ [0,1]: center 0.5, radius 10.5? Jensen on that disc needs a bound on |ζ| there — the level-2 EM bound (5b: ‖ζ‖ ≤ (3/4)|t|² on B(2+it, 5/2) for |t| ≥ 10). For the bounded region use a max-modulus bound on |ζ| in the fixed compact disc — via the EM representation directly (5b's representation is valid for re > −1 everywhere: ζ(s) = 1/2 + 1/(s−1) − s(s+1)∫B̃₂x^{−s−2} — on a fixed compact avoiding s = 1 this gives an explicit finite bound). This is getting heavy. Hmm wait — actually, let me reconsider what the series bound really needs. The radial split: - |ρ| ≤ R/2: term ≤ 2/|ρ|·mult; sum over all such ρ: Σ_{|ρ|≤R/2} m/|ρ| = O((log R)²) — needs Σ_{|ρ|≤X} m/|ρ| ≤ C(log X)²-ish — from unit-window counts. - The critical annulus [R−2, R+2]: count × (2 log R)/c. - etc. All of these follow from a UNIT-WINDOW count: N(t) := #{ρ : t ≤ im ρ ≤ t+1} ≤ C₀ log(|t|+2)-ish for ALL t (including |t| < 10 with a constant). The cleanest UNCONDITIONAL such count... Actually — wait. What does 5e-i's exists_gapCircle_radius actually use and produce? Let me re-read: "R ∈ [4k+5/2, 4k+3] with dist(R/2,ℤ) ≥ 1/4 and every zero ordinate either ≥ 1 away or at clearance ≥ 1/(16·C0hat(4k+9/2))" — so the circle bound ALREADY consumes the perimeter-flavored C0hat (if ZeroCountProp is a hypothesis) — hmm, "the perimeter ZeroCountProp (Trudgian N(T)/S(T) in Ĉ₀ form) via the midpoint pigeonhole". Let me check whether exists_gapCircle_radius takes ZeroCountProp as an explicit hypothesis argument. If it does, then the capstone identity proof will have that hypothesis too, and at ii′-7 it gets instantiated by the declared Trudgian input. That IS the design (D-064 §4 perimeter: Trudgian N(T)/S(T) declared). So the cleanest path: follow the 5e-i pattern — take the perimeter count as the explicit hypothesis `ZeroCountProp` (matching LiContour/LiGapCircles signatures). Wait, but then EVERYTHING in 5e-v depends on ZeroCountProp — including the final ∃ B identity. At ii′-7, the identity is used to prove SfBoundProp — and the perimeter hypothesis is exactly the declared Trudgian N(T)/S(T) — consistent. OK. Hmm, actually — hold on. Let me reconsider whether the series circle bound needs the count AT ALL beyond what the γ-gap gives. The critical annulus [R−2, R+2]: the terms are m_ρ·|1/(s−ρ) + 1/ρ| ≤ m_ρ·(|s−ρ|⁻¹ + |ρ|⁻¹)... the γ-gap gives |s−ρ| ≥ c/(2 log R) for zeros with ordinate in the critical band — and the COUNT of such zeros ≍ C₀(R) — needs the count. Yes, the count is needed. Via ZeroCountProp hypothesis (the Ĉ₀ form) — exactly as 5e-i did. Fine. Let me now check the exact statements of the pieces: 1. LiGapCircles.exists_gapCircle_radius — signature and hypotheses. 2. LiDisc.logDeriv_riemannZeta_sub_nearZeros_le — exact statement. 3. LiReflect.logDeriv_riemannZeta_sub_nearZeros_le_left — exact statement. 4. nearZeros definition (the near-sum). 5. The ZeroCountProp / C0hat forms. 6. 5e-ii's digamma bounds exact statements. 7. The Dirichlet bound for re ≥ 2: need ‖ζ′/ζ‖ ≤ C for re ≥ 2 — from the Dirichlet series −ζ′/ζ = Σ Λ(n)n^{−s}: ‖·‖ ≤ Σ Λ(n)/n² = −ζ′/ζ(2) ≈ 0.569. What exists in Zeta23? "LSeries vonMangoldt — inventory session 019 ✓; the Σ Λ(n)/n² majorant via LSeries absSummable". So some assembly needed. 8. Max-modulus: Zeta23 `AnalyticOn.norm_le_of_norm_le_on_sphere`. 9. The difference quotient: (G z − G 0)/z analytic at 0. Also — WAIT. Big realization check: for the squeeze I need the circle bound for the ENTIRE function Gentire, evaluated at circle points (good points where Gentire = Fexpr). The bound on Fexpr decomposes into the pieces. The pieces at circle points with |im s| < 10, re s ≈ ±R: these are the near-axis parts. Hmm, this is a genuinely big estimation build. Let me think about the simplest sufficient bounds: For |s| = R, the pieces: (A) seriesFun: the radial split needs: (i) Σ_{|ρ|≤2R} m_ρ ≤ ??: count in a disc — Jensen (5c) or perimeter. For the [R±2] annulus: count in annulus ≤ count in disc(2R) ≤ ... Actually the split needs: - Σ_{|ρ| ≤ R/2} m/|ρ| ≤ Σ_{j ≤ log2 R} (count in dyadic shell)/2^j — from unit-window counts or disc counts at dyadic scales. - The [R−2, R+2] annulus: count ≤ C·(log R)·2 (unit windows covering the annulus: the annulus |ρ| ∈ [R−2, R+2], re ∈ (0,1): im ∈ [±(R−3), ±(R+2)]: ~4 unit windows on each side... ~8 unit windows; each ≤ C₀ log(2R)) + the γ-gap clearance |s−ρ| ≥ c/(2 log R)?? — wait, 5e-i gives: every zero ordinate γ is either ≥ 1 away from R or at clearance ≥ 1/(16·C0hat(4k+9/2)) from R — hmm, "ordinate clearance": |R − γ| ≥ 1/(16·Ĉ₀) for γ ∈ [R−1, R+1] and |R − γ| ≥ 1 automatically outside? Let me re-read exists_gapCircle_radius's exact statement. This is getting deep. The right move: read the exact current statements of the pieces (5c capstone, 5d capstone, 5e-i, 5e-ii, nearZeros def, ZeroCountProp/C0hat, and check what Zeta23 has for the Dirichlet bound), then design 5e-v concretely. Given the complexity, this session should probably be: (a) the circle bound for each piece as separate lemmas, (b) the assembly + squeeze + capstone. It's a big session; possibly split into two sub-stages: 5e-v-a (the piecewise circle bounds) and 5e-v-b (squeeze + capstone). Actually — let me reconsider the SCOPE to keep this tractable. The squeeze needs: ∃ sequence R_k → ∞ with sup_{|z|=R_k} |Gentire z| = o(R_k). Simplest sufficient per-piece bounds on |s| = R (R ≥ 4, on a gap circle): 1. **seriesFun**: needs the real work (radial split + counts). 2. **logDeriv ζ**: split the circle into 4 arcs: - re s ≥ 2 (right near-axis arc; |t| ≤ √(R²−4) ≈ R): Dirichlet bound ‖ζ′/ζ‖ ≤ C (constant!) for re ≥ 2 — C = Σ Λ(n)/n² = −ζ′/ζ(2) ≈ 0.57. - 1/2 ≤ re ≤ 2 (right strip): if |t| ≥ 10: 5c: ‖ζ′/ζ − Σ_{near} m/(s−ρ)‖ ≤ 100000(log|t|)²; the near sum: |s−ρ| ≥ |t−γ| ≥ gap (the γ-gap: for zeros with γ near t... the near sum is over nearZeros t = {ρ : |γ − t| < 1}-ish — the circle's |t| for re ∈ [1/2, 2] is ≈ R (within 2 of R) — so near zeros have γ ∈ [R±3]-ish, within the γ-gap's clearance ⟹ each |s−ρ| ≥ |t−γ| ≥ clearance-ish; count ≤ count in unit window ≤ C₀·log R). So ‖ζ′/ζ‖ ≤ 100000(log R)² + C₀ log R · 16Ĉ₀·(2 log R)-ish = O((log R)³) ✓. If |t| < 10 (the top/bottom of the right strip — wait re ∈ [1/2,2] with |s| = R ⟹ |t| = √(R²−re²) ≥ √(R²−4) ≥ R/2 ≥ 2 for R ≥ 4 — so |t| is NEVER < 10 on this arc for R ≥ 4·... R ≥ 4k+2.5 ≥ 6.5 ⟹ √(R²−4) ≥ 6.2... hmm 6.2 < 10! So the right strip arc DOES hit |t| < 10 when re ∈ [1/2, 2] requires |t| ≥ √(R²−4) ≈ R ≥ 6.5 — could be in [6.5, 10) for R ∈ [6.5, 10] i.e. k = 1 only (R₁ ∈ [6.5, 7])... wait √(R²−4) for R = 6.5: √(42.25−4) = √38.25 ≈ 6.19 < 10 — but re ∈ [1/2, 2] with |s| = 6.5 forces |t| ≥ 6.19 — so for k=1 the right-strip arc has |t| ∈ [6.19, 6.5] ⊂ [0,10) — 5c needs |t| ≥ 10! Hmm. Handle |t| < 10 + re ∈ [1/2, 2] directly: that's a FIXED compact region (re ∈ [1/2,2], |t| ≤ 10, avoiding zeros — on the circle the zeros are γ-gapped...). A compactness bound on ‖ζ′/ζ‖ over {re ∈ [1/2,2], |t| ≤ 10} minus small discs around the finitely many zeros there — the circle passes at distance ≥ gap from zeros — a UNIFORM bound on the circle in this region from continuity on the compact set {re ∈ [1/2,2], |t|≤10} ∩ {|s−ρ| ≥ gap for the finitely many zeros ρ in the region}... This needs a compactness argument with the explicit zero-free region — doable but annoying. ALTERNATIVE: only use the circles for k ≥ k₀ with R_k ≥ 20 (say) — the squeeze only needs a SEQUENCE of circles → ∞, so I can start at k = 5 (R ≥ 22.5) and have |t| ≥ √(R²−4) ≥ 22 ≥ 10 everywhere on the strip arcs ✓✓. MUCH simpler: restrict to k ≥ 5. Then |t| < 10 only on the near-axis arcs where re ≈ ±R (re ≥ 2 or re ≤ −... wait: |t| < 10 on |s| = R means re² ≥ R² − 100 ⟹ |re| ≥ √(R²−100) ≈ R − small: so the near-axis arcs are re ≥ √(R²−100) (right) and re ≤ −√(R²−100) (left). For re ≥ 2... wait the right near-axis arc: re ∈ [√(R²−100), R] ⊆ [2, R] for R ≥ 11 ✓ Dirichlet bound applies (re ≥ 2 ✓✓). The left near-axis arc: re ≤ −√(R²−100) ≤ −10: FE-reflect: 1−s has re ≥ 11 ⟹ ζ′/ζ(1−s) Dirichlet-bounded ✓; logDeriv ΓR(1−s): re((1−s)/2) ≥ 5, |im| < 10/2 = 5: 5e-ii's (B) norm_digamma_le_of_two_le_re covers re ≥ 2, |im| ≤ 5 ✓!! and logDeriv ΓR(s): s/2 has re ≤ −5, |im| ≤ 5: 5e-ii's (A) norm_digamma_le_of_dist_nat (dist(s/2, −ℕ) ≥ 1/4 from the circle property dist(R/2, ℤ) ≥ 1/4 — need dist(s/2, −ℕ) ≥ 1/4 on the left arc: |s/2 + n| for n ≥ 0: s/2 ≈ −R/2: dist(R/2, ℤ) ≥ 1/4 ⟹ |s/2 − (−n)| ≥ |re s/2 + n| − ... hmm: ‖s/2 + n‖ ≥ |re(s/2)+n| ≥ dist(re(s/2), −ℕ)·... re(s/2) ∈ [−R/2, −√(R²−100)/2]: dist(re(s/2), ℤ)... the circle property is dist(R/2, ℤ) ≥ 1/4 where R = |s| — but re(s/2) ≠ R/2 exactly (it's −R/2 only at the leftmost point). |re(s/2)| ≤ R/2 with... hmm: |re(s/2) + n| where re(s/2) ∈ [−R/2, −√(R²−100)/2]: the distance from −re(s/2) ∈ [√(R²−100)/2, R/2] to the nearest integer n: since R/2 has dist ≥ 1/4 to ℤ and √((R/2)² − 25) ≥ R/2 − 25/R·... the interval [√(R²−100)/2, R/2] has length ≈ 25/R small and its right endpoint R/2 is 1/4 from integers — so every point of the interval is within... hmm no: the interval [R/2 − 26/R, R/2] — points in it can be CLOSE to an integer (if R/2 is 1/4 above an integer, points 1/4 below R/2 could be near that integer...). |x − n| for x ∈ [R/2 − 26/R, R/2]: if dist(R/2, ℤ) = d ≥ 1/4 with nearest integer m: then for x in the interval: |x − m| ≥ d − 26/R ≥ 1/4 − 26/R ≥ 1/8 for R ≥ 208·... 26/R ≤ 1/8 ⟺ R ≥ 208 — k ≥ 51. Hmm — again just take k large (k ≥ 52) OR use a cruder bound for smaller... Actually |x − m'| for OTHER integers m' ≥ ... this is the D-068 §2 line: "dist(s/2, −ℕ) ≥ 1/4 − O(1/R) ≥ 1/8 on the near-axis left part". Fine — take k ≥ k₀ := 52 say (R ≥ 210). Actually simpler: make the threshold explicit in the lemma (k ≥ K for a suitable explicit K) — the squeeze only needs k → ∞. Wait, actually, let me reconsider: do I even need the near-axis LEFT digamma bound via dist? The left arc point s has im s ∈ (−10, 10): logDeriv ΓR s = −(log π)/2 + ½ψ(s/2) — via 5e-ii's (G) `logDeriv_Gammaℝ_eq` needs im s ≠ 0; im s = 0 (the point s = −R exactly): handle separately or by the m-fold shift... 5e-ii's (G) is stated for im ≠ 0. The real point s = −R: logDeriv ΓR at −R: R/2 not an integer ⟹ ΓR analytic nonzero at −R ⟹ logDeriv analytic ⟹ continuous ⟹ bounded on the small... ugh, a one-off. Better: bound ψ(s/2) DIRECTLY via 5e-ii's (A) norm_digamma_le_of_dist_nat which is stated for re ≤ 2 with dist(w, −ℕ) ≥ c — covering REAL points (the pole-avoidance form digamma_add_natCast′) ✓ — so at w = s/2 (including real): ‖ψ(w)‖ ≤ (46 + 2/c) + 23 log(2+‖w‖) with c = 1/8 ✓ O(log R) ✓. And (A) covers all of the left arc (re w = re s/2 ≤ −5 ≤ 2 ✓) including the real point ✓. And for logDeriv ΓR(1−s): w = (1−s)/2: re w ≥ 5.5, |im w| < 5: (B) covers re ≥ 2, |im| ≤ 5 ✓ (B: norm_digamma_le_of_two_le_re : re w ≥ 2, |im w| ≤ 5 ⟹ ‖ψ‖ ≤ 20 log(2+‖w‖)) — wait what about |im w| > 5 on... no — on the left arc |im s| < 10 ⟹ |im((1−s)/2)| < 5 ✓. But logDeriv ΓR s = −(log π)/2 + ½ψ(s/2) is (G) which needs im s ≠ 0 — for the REAL point s = −R: (G) doesn't apply. Get logDeriv ΓR(−R) = −(log π)/2 + ½ψ(−R/2) at the real point from... the digamma definition: logDeriv ΓR s = −(log π)/2 + ψ(s/2)/2 — as FUNCTIONS: ΓR = π^(−s/2)Γ(s/2): logDeriv ΓR = logDeriv (π^(−s/2)) + logDeriv (Γ(s/2)) — at real −R (ΓR(−R) ≠ 0 analytic): logDeriv ΓR(−R) = −(log π)/2 + ½·(Γ'(−R/2)/Γ(−R/2)) = −(logπ)/2 + ½ψ(−R/2) — where ψ = logDeriv Γ by definition ✓ — this holds wherever ΓR is analytic & nonzero and the pieces are differentiable — at s = −R (R/2 ∉ ℤ): Γ(−R/2): −R/2 ∉ {0,−1,...} ⟹ differentiable + Gamma_ne_zero ✓. So the identity at the real point follows from the logDeriv product rule DIRECTLY (not via (G)). Build a small lemma: `logDeriv_Gammaℝ_apply_of_not_neg_nat`: for s with s/2 ∉ {0}∪−ℕ (i.e. ∀ m, s/2 ≠ −m): logDeriv ΓR s = −(log π)/2 + ψ(s/2)/2 — pointwise, no im condition. Hmm — ΓR def: `Gammaℝ s = π^(−s/2)·Γ(s/2)`? Mathlib: `Complex.Gammaℝ s = π ^ (-s/2) * Gamma (s/2)`? — 5d's `logDeriv_Gammaℝ_shift` used "Gammaℝ_def + Gamma_add_one twice + exp-form cpow arithmetic". So Gammaℝ_def exists. The pointwise logDeriv: logDeriv (π^(−·/2)·Γ(·/2)) s = logDeriv(π^(−·/2)) s + logDeriv(Γ(·/2)) s (logDeriv_mul: both nonzero/differentiable at s: π^(−s/2) ≠ 0 ✓ (cpow of positive real — exp form — never 0), Γ(s/2) ≠ 0 (s/2 ∉ −ℕ∪{0} ✓ Complex.Gamma_ne_zero), differentiability ✓ (differentiableAt_Gamma needs s/2 ≠ −m ✓; the π^(−s/2) = exp(−s/2·log π): differentiable everywhere ✓)); = −(log π)/2 (logDeriv of exp-linear) + (½Γ'(s/2))/Γ(s/2) = ... logDeriv(Γ(·/2)) s = deriv(Γ∘(/2)) s/Γ(s/2) = ½Γ'(s/2)/Γ(s/2) = ½ψ(s/2) — via logDeriv_comp (digamma_def: ψ = logDeriv Γ ✓). ~40 lines. Fine. Hmm wait — actually, do I even need the pointwise logDeriv ΓR identity at the real point? The near-axis LEFT arc bound: I could instead bound ‖logDeriv ΓR‖ on the arc via a UNIFORM route: logDeriv ΓR is CONTINUOUS on the arc (arc avoids −2ℕ since dist(R/2,ℤ) ≥ 1/4... the arc {re ≤ −√(R²−100), |s| = R} — contains only points with |im| ≤ 10 — the arc avoids the trivial zeros −2n (|−2n| = 2n; |s| = R with dist(R/2,ℤ) ≥ 1/4 ⟹ R ≠ 2n ✓ and near... the arc is a compact set where logDeriv ΓR is continuous (analytic off its poles −2n, none on/near the arc since dist(R/2, ℤ) ≥ 1/4 gives the arc's closest approach to −2n... the point of the arc nearest to −2n = −R-ish is at distance ≥ |R − 2n| − small ≥ ... hmm need care but plausible). Then continuity on compact ⟹ bounded — but NOT with an explicit O(log R) constant — compactness gives SOME bound possibly growing with R uncontrolled?? No — the arc MOVES with R; compactness per arc gives a bound that could a priori grow arbitrarily. So NO — I need the explicit ψ-identity + digamma bounds. OK: build the pointwise logDeriv ΓR identity (the general one, no im condition, valid where s/2 avoids poles) and use 5e-ii's (A) at every arc point including the real one. For non-real arc points 5e-ii's (G) also works but the uniform new lemma is cleaner. Hmm wait, actually simpler: check — does 5e-ii's (G) `logDeriv_Gammaℝ_eq` really require im ≠ 0? "for im s ≠ 0 (the m-fold shift + 5d's EventuallyEq machinery)". Yes im ≠ 0. So I build the real-point-capable version. Actually — hold on, maybe simplest: the arc minus its real point is handled by (G); the real point −R itself: the bound on |F(−R)| via... continuity of F?? No — F is entire (5e-iv) ⟹ continuous ⟹ the bound at the real point follows from the bound at nearby arc points by continuity?! NO — the max-modulus squeeze needs the bound at ALL circle points — but actually max-modulus on the sphere needs the bound on the WHOLE sphere — I can get the sphere bound as a SUP: if |F| ≤ C(log R)³ on the sphere minus one point, then by continuity |F(−R)| ≤ C(log R)³ too (F continuous, the bound set is closed) ✓! Formalize: the sphere bound via sup over the dense subset + continuity — `IsClosed` preimages: {z ∈ sphere : ‖F z‖ ≤ M} is closed (continuity) and contains the dense (co-point) subset ⟹ = whole sphere ✓. That's clean: prove the bound on {s : ‖s‖ = R, im s ≠ 0} and extend by continuity. Or even simpler — include the real points via the new pointwise identity lemma. I'll decide when writing; the continuity extension is a clean ~20-line argument and avoids the new identity. Hmm, but the sup-form max-modulus: Zeta23's `AnalyticOn.norm_le_of_norm_le_on_sphere` — presumably ‖f z‖ ≤ sup on sphere for z inside — if I have ‖F‖ ≤ M on sphere∖{±R}: get ≤ M on the full sphere by closure, then apply. OK. 3. **The elementary terms**: 1/s, 1/(s−1): ‖1/s‖ = 1/R, ‖1/(s−1)‖ ≤ 1/(R−1) ✓ trivial. (log π)/2 const ✓. ψ(s/2)/2: on the RIGHT arc (re s ≥ 2-ish): (B) covers re(s/2) ≥ 1... (B) needs re w ≥ 2: re(s/2) ≥ √(R²−100)/2 ≥ 5 for R ≥ 11 ✓. On the right-strip arcs (re ∈ [1/2,2], |t| ≥ 10): w = s/2: re w ∈ [1/4, 1], |im w| ≥ 5: 5d's `norm_digamma_sub_log_le_of_two_le_abs_im` (‖ψ(w) − log w‖ ≤ 3 for 2 ≤ |im w|) ⟹ ‖ψ(w)‖ ≤ ‖log w‖ + 3 ≤ log‖w‖ + π + 3 = O(log R) ✓ (‖log w‖ ≤ log‖w‖ + π — banked in LiReflect line 414: `‖log w‖ ≤ log ‖w‖ + π` for ‖w‖ ≥ 1 ✓). On the LEFT strip arc (re ∈ [−√..., 1/2], |t| ≥ 10): w = s/2: |im w| ≥ 5 ✓ 5d's bound again ✓ O(log R) ✓. On the left near-axis arc: (A) with c = 1/8 ✓ O(log R) ✓. So ψ-part is O(log R) everywhere ✓. 4. **seriesFun** — the real work. The radial split on |s| = R (gap circle, k ≥ some k₀): Term bound: ‖1/(s−ρ) + 1/ρ‖ = ‖s‖/(‖ρ‖‖s−ρ‖) = R/(‖ρ‖‖s−ρ‖) (for ρ ≠ s ✓ gap). - Shell |ρ| ≤ R/2: ‖s−ρ‖ ≥ R − ‖ρ‖ ≥ R/2 ⟹ term ≤ R/(‖ρ‖·R/2) = 2/‖ρ‖. Sum: Σ_{|ρ|≤R/2} m/‖ρ‖. - Shell R/2 < |ρ| ≤ R−2: ‖s−ρ‖ ≥ |R − ‖ρ‖|·?? — ‖s−ρ‖ ≥ ‖s‖ − ‖ρ‖ = R − ‖ρ‖ ✓ (reverse triangle) ⟹ term ≤ R/(‖ρ‖(R−‖ρ‖)) ≤ 2/(R−‖ρ‖) (‖ρ‖ > R/2). Sum: Σ_{j} (count in sub-shell [R−2^{j}...])... dyadic in d := R − ‖ρ‖ ∈ [2, R/2]: Σ over dyadic d-shells: count(shell d ∈ [2^j, 2^{j+1}])·2/2^j. Count in the shell {‖ρ‖ ∈ [R−2^{j+1}, R−2^j]}: zeros with im ∈ [±(R−2^{j+1}), ±(R−2^j)] roughly — bounded by unit-window counts: ≤ C·2^{j+1}·(count per unit window ≤ C₀ log(2R)): so shell-sum ≤ Σ_j 2/2^j · C 2^{j+1} C₀ log R ≍ Σ_j 4C·C₀ log R over j ≤ log₂ R shells = O((log R)²·C₀) ✓. - Critical annulus [R−2, R+2]: term ≤ R/(‖ρ‖·‖s−ρ‖): ‖ρ‖ ≥ R−2 ≥ R/2, ‖s−ρ‖ ≥ |t − γ| ≥ gap_R where t = im s with |t| ∈ [√(R²−1)... hmm: ‖s−ρ‖ ≥ |im(s−ρ)| = |t − γ| and the zeros in the annulus have |γ| ∈ [R−3, R+2]-ish ⊆ the clearance zone of the circle at height ≈ R: 5e-i gives |R − |γ||... wait — the γ-gap is about |R − γ| where γ is the ORDINATE: |t − γ| ≥ |R − |γ|| − |R − |t||: |t| = √(R² − re²) ∈ [0, R]: for the strip arcs (re ≤ 2) |t| ≥ √(R²−4): |R − |t|| = R − √(R²−4) ≤ 4/R·R/(R+√...) = (R−√(R²−4)) = 4/(R+√(R²−4)) ≤ 4/R ≤ 1/2 (R ≥ 8) — and 5e-i's clearance: zeros with |γ| ∈ [R−1, R+1] have |R − |γ|| ≥ 1/(16·Ĉ₀(4k+9/2))... hold on, let me look at the exact statement of exists_gapCircle_radius — "every zero ordinate either ≥ 1 away or at clearance ≥ 1/(16·C0hat(4k+9/2))" — i.e. |R − γ| ≥ 1 OR |R − γ| ≥ 1/(16·C0hat(...)). Combined: |R−γ| ≥ min(1, 1/(16Ĉ₀)) = 1/(16Ĉ₀) (if Ĉ₀ ≥ 1/16). Then |t − γ| ≥ |R − |γ|| − |R − |t|| ≥ 1/(16Ĉ₀) − 4/R — needs 4/R ≤ 1/(32Ĉ₀) ⟺ R ≥ 128·Ĉ₀ — Ĉ₀(4k+9/2) grows like log k — so k ≥ some explicit threshold. Fine (k ≥ K₀ with K₀ explicit from Ĉ₀'s growth... Ĉ₀ is the Trudgian constant — C0hat(T) ≍ log T? — need an upper bound on C0hat to pick K₀ — or just leave the threshold symbolic: the squeeze needs the bound for a SEQUENCE k_j → ∞ — I can take k ≥ K₀ where K₀ is chosen so that 4/R_k ≤ 1/(32·C0hat(4k+9/2)) — existence of such K₀ needs C0hat(4k+9/2) = o(k) — C0hat ≍ log T ✓ — but proving C0hat(4k+9/2)·128 ≤ 4k+2 for large k needs C0hat's actual form. Hmm — what IS C0hat? From ii′-4: "the perimeter ZeroCountProp (Trudgian N(T)/S(T) in Ĉ₀ form)" — C0hat is presumably an explicit function like C₀·(log(T/2π)+...)... I need to look at its definition. This is a LOT. Let me now go read the exact statements: LiGapCircles (exists_gapCircle_radius + C0hat def), LiContour (ZeroCountProp + C0hat), LiDisc capstone, LiReflect capstone + nearZeros, LiDigammaLeft (A), (B), (G), LiReflect's 5d digamma-sub-log, and the Zeta23 Dirichlet-series assets. Then write the design into a short D-069 note? D-068 §5 already sketches it. Given the size, I'll aim for: 5e-v-a (piecewise bounds: digamma/elem/logDeriv parts) + 5e-v-b (the series bound) + 5e-v-c (squeeze + capstone). This session: as far as we get, committing per sub-stage. Let me read the key statements.
Session 030: **ii′-5e-v** (circle bound + squeeze ⟹ ∃ B capstone). First I need the exact statements of all inputs: 5e-i's circles, 5c/5d's R-bounds, 5e-ii's digamma bounds, the C0hat/ZeroCountProp forms, and the max-modulus API.
tool: Read ok
input
{
  "file_path": "D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiGapCircles.lean"
}
result 2026-08-23 16:56:21Z → 2026-08-24 20:39:44Z
{
  "type": "text",
  "file": {
    "filePath": "D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiTightR.lean",
    "content": "\n/-- loglog k \u2265 \u22120.37 for k \u2265 1 (the bridge nonnegativity input). -/\nlemma loglog_ge_neg_point37 {k : \u2115} (hk : 1 \u2264 k) :\n    (-0.37 : \u211d) \u2264 Real.log (Real.log k) := by\n  rcases eq_or_ne k 1 with rfl | hk1\n  \u00b7 rw [Real.log_one, Real.log_zero]\n    norm_num\n  \u00b7 have hk2 : 2 \u2264 k := by omega\n    have h1 : (0.693 : \u211d) \u2264 Real.log 2 := Real.log_two_gt_d9.le.trans (by norm_num)\n    have h2 : (0.693 : \u211d) \u2264 Real.log k := by\n      have h3 : Real.log 2 \u2264 Real.log k :=\n        Real.log_le_log (by norm_num : (0 : \u211d) < 2) (by exact_mod_cast hk2 : (2 : \u211d) \u2264 (k : \u211d))\n      linarith [h1, h3]\n    have h4 : Real.log 0.693 \u2264 Real.log (Real.log k) :=\n      Real.log_le_log (by norm_num : (0 : \u211d) < 0.693) h2\n    have h5 : (-0.37 : \u211d) \u2264 Real.log 0.693 := by\n      have h6 : (1 / 0.693 : \u211d) \u2264 Real.exp 0.37 := by\n        have h7 := Real.sum_le_exp_of_nonneg (show (0 : \u211d) \u2264 0.37 by norm_num) 5\n        rw [Finset.sum_range_succ, Finset.sum_range_succ, Finset.sum_range_succ,\n          Finset.sum_range_succ, Finset.sum_range_succ, Finset.sum_range_zero] at h7\n        norm_num at h7\n        have h8 : (1 / 0.693 : \u211d) \u2264 1.447671 := by norm_num\n        linarith [h7, h8]\n      have h7 : Real.log (1 / 0.693) \u2264 0.37 := by\n        have h8 := Real.log_le_log (by norm_num : (0 : \u211d) < 1 / 0.693) h6\n        rwa [Real.log_exp] at h8\n      rw [Real.log_div (by norm_num : (1 : \u211d) \u2260 0) (by norm_num : (0.693 : \u211d) \u2260 0),\n        Real.log_one] at h7\n      linarith [h7]\n    linarith [h4, h5]",
    "numLines": 30,
    "startLine": 3488,
    "totalLines": 3763
  }
}
raw content_json (database row)
[{"type":"thinking","thinking":"Session 030: ii′-5e-v — the circle bound + the squeeze ⟹ capstone ∃ B identity. Let me plan this carefully.\n\nThe target (D-068 §5):\nOn |s| = R_k (5e-i's γ-gap circles):\n- |ζ′/ζ|: right part (re ≥ 1/2, |t| ≥ 10): 5c; left part (re ≤ 1/2, |t| ≥ 10): 5d; right near-axis (|t| < 10, re ≈ +R): Dirichlet-series bound ‖ζ′/ζ‖ ≤ Σ Λ(n)/n^re ≤ C for re ≥ 2 (Zeta23 LSeries vonMangoldt); left near-axis (re ≈ −R): FE-reflect pointwise.\n- |series|: O((log R)³/c) by the radial split.\n- |elems|: −1/s, −1/(s−1) = O(1/R); ½log π const; ½ψ(s/2) = O(log R).\nTotal: |F| ≤ C(log R_k)³ on |s| = R_k.\n\nThen the squeeze: G(z) := (Gentire z − Gentire 0)/z entire; |G| ≤ C(log R)³/R on circles → 0 ⟹ G ≡ 0 ⟹ Gentire ≡ Gentire 0.\n\nLet me think about what's REALLY needed and the simplest honest route.\n\nFirst — the squeeze. Actually, do I even need the (log R)³ tightness? The squeeze needs |F|/R → 0 along SOME sequence of circles R_k → ∞. O((log R)³) is plenty; even O(R^{1/2}) would do. So the circle bound just needs to be o(R). The radial split gives (log R)³/c — with c the pigeonhole constant from ZeroCountProp (perimeter!) — hmm, the γ-gap circles from 5e-i: `exists_gapCircle_radius` gives R ∈ [4k+5/2, 4k+3] with ordinate clearance ≥ 1/(16·C0hat(4k+9/2)) — that uses the perimeter ZeroCountProp (Trudgian N(T)/S(T) in Ĉ₀ form)! Wait — C0hat is the perimeter-based count function? Let me check: LiGapCircles used \"the perimeter ZeroCountProp (Trudgian N(T)/S(T) in Ĉ₀ form)\". So the circles' clearance constant depends on the perimeter. Hmm — but the perimeter is a DECLARED hypothesis (Trudgian N(T)/S(T) is inside the trusted perimeter per D-062 §4). So the capstone will be conditional on the perimeter? No wait — the perimeter hypotheses are the declared computational inputs (RHUpTo, LiVerifiedUpTo, Trudgian N(T)/S(T), M₀) that the FINAL theorem is conditional on. The SfBoundProp closure (ii′-7) is allowed to use the perimeter. So using ZeroCountProp here is fine — but it makes the identity proof depend on it as a hypothesis. Hmm, wait — but the partial-fraction identity itself is UNCONDITIONAL mathematics. The Lean proof can take the perimeter as a hypothesis; at ii′-7 the perimeter is declared. Actually — hold on: is ZeroCountProp a Prop-valued hypothesis or a proved fact in NguyenRH1? From ii′-4: \"L3 `exists_zero_avoiding_T` — ... from the perimeter `ZeroCountProp` (Trudgian N(T)/S(T) in Ĉ₀ form)\". So ZeroCountProp is a structure/Prop that gets INSTANTIATED by the declared Trudgian fact. Let me check how it's used — LiContour's exists_zero_avoiding_T takes it as a hypothesis? And LiGapCircles' exists_gapCircle_radius — does it take ZeroCountProp as an argument? Let me check the signatures.\n\nAlso 5c's `logDeriv_riemannZeta_sub_nearZeros_le` — \"no perimeter hypothesis (Jensen count input)\" per STATE. Good.\n\nActually, wait — I should reconsider. For the circle bound on the SERIES, the count input is the number of zeros in annuli/unit windows. Two options:\n(a) perimeter ZeroCountProp (Trudgian) — but that makes the capstone identity depend on the perimeter hypothesis, which then propagates into SfBoundProp's proof... which is FINE since SfBoundProp's closure at ii′-7 is allowed the perimeter. But it's cleaner to avoid unnecessary dependencies.\n(b) The Jensen count (5c's scaledZeta_jensen_count): N(disc) ≤ log((9/4)|t|²)/log(33/32) — a PROVED unconditional count for the disc at 2+it radius 5/2. From that, unit-window counts follow: zeros in [t−1, t+1]×[0,1]... the disc covers the window... a unit window [a, a+1] at height t sits inside the disc at 2+it of radius 5/2? The window {0 < re < 1, t ≤ im ≤ t+1}: point 0.5 + i(t+0.5): distance to 2+it: √(1.5² + 0.5²) = √2.5 ≈ 1.58 < 2.5 ✓. So the unit-window count ≤ disc count ≤ (2/... )·log-ish. Hmm — but that disc count is at height t: ≤ log((9/4)|t|²)/log(33/32) for |t| ≥ 10. For |t| < 10: finiteness + a direct bound? The zeros in the compact region {|im| ≤ 10, 0 ≤ re ≤ 1} — finite (compact-finiteness) — but I need an EXPLICIT bound... Jensen on a fixed disc: disc at 2 radius 5/2... hmm |t| < 10 with various t. Use one big disc: the disc at 2+i·0... radius: to cover |im| ≤ 10, re ∈ [0,1]: center 0.5, radius 10.5? Jensen on that disc needs a bound on |ζ| there — the level-2 EM bound (5b: ‖ζ‖ ≤ (3/4)|t|² on B(2+it, 5/2) for |t| ≥ 10). For the bounded region use a max-modulus bound on |ζ| in the fixed compact disc — via the EM representation directly (5b's representation is valid for re > −1 everywhere: ζ(s) = 1/2 + 1/(s−1) − s(s+1)∫B̃₂x^{−s−2} — on a fixed compact avoiding s = 1 this gives an explicit finite bound). This is getting heavy.\n\nHmm wait — actually, let me reconsider what the series bound really needs. The radial split:\n- |ρ| ≤ R/2: term ≤ 2/|ρ|·mult; sum over all such ρ: Σ_{|ρ|≤R/2} m/|ρ| = O((log R)²) — needs Σ_{|ρ|≤X} m/|ρ| ≤ C(log X)²-ish — from unit-window counts.\n- The critical annulus [R−2, R+2]: count × (2 log R)/c.\n- etc.\n\nAll of these follow from a UNIT-WINDOW count: N(t) := #{ρ : t ≤ im ρ ≤ t+1} ≤ C₀ log(|t|+2)-ish for ALL t (including |t| < 10 with a constant). \n\nThe cleanest UNCONDITIONAL such count... Actually — wait. What does 5e-i's exists_gapCircle_radius actually use and produce? Let me re-read: \"R ∈ [4k+5/2, 4k+3] with dist(R/2,ℤ) ≥ 1/4 and every zero ordinate either ≥ 1 away or at clearance ≥ 1/(16·C0hat(4k+9/2))\" — so the circle bound ALREADY consumes the perimeter-flavored C0hat (if ZeroCountProp is a hypothesis) — hmm, \"the perimeter ZeroCountProp (Trudgian N(T)/S(T) in Ĉ₀ form) via the midpoint pigeonhole\". Let me check whether exists_gapCircle_radius takes ZeroCountProp as an explicit hypothesis argument. If it does, then the capstone identity proof will have that hypothesis too, and at ii′-7 it gets instantiated by the declared Trudgian input. That IS the design (D-064 §4 perimeter: Trudgian N(T)/S(T) declared). So the cleanest path: follow the 5e-i pattern — take the perimeter count as the explicit hypothesis `ZeroCountProp` (matching LiContour/LiGapCircles signatures).\n\nWait, but then EVERYTHING in 5e-v depends on ZeroCountProp — including the final ∃ B identity. At ii′-7, the identity is used to prove SfBoundProp — and the perimeter hypothesis is exactly the declared Trudgian N(T)/S(T) — consistent. OK.\n\nHmm, actually — hold on. Let me reconsider whether the series circle bound needs the count AT ALL beyond what the γ-gap gives. The critical annulus [R−2, R+2]: the terms are m_ρ·|1/(s−ρ) + 1/ρ| ≤ m_ρ·(|s−ρ|⁻¹ + |ρ|⁻¹)... the γ-gap gives |s−ρ| ≥ c/(2 log R) for zeros with ordinate in the critical band — and the COUNT of such zeros ≍ C₀(R) — needs the count. Yes, the count is needed. Via ZeroCountProp hypothesis (the Ĉ₀ form) — exactly as 5e-i did. Fine.\n\nLet me now check the exact statements of the pieces:\n1. LiGapCircles.exists_gapCircle_radius — signature and hypotheses.\n2. LiDisc.logDeriv_riemannZeta_sub_nearZeros_le — exact statement.\n3. LiReflect.logDeriv_riemannZeta_sub_nearZeros_le_left — exact statement.\n4. nearZeros definition (the near-sum).\n5. The ZeroCountProp / C0hat forms.\n6. 5e-ii's digamma bounds exact statements.\n7. The Dirichlet bound for re ≥ 2: need ‖ζ′/ζ‖ ≤ C for re ≥ 2 — from the Dirichlet series −ζ′/ζ = Σ Λ(n)n^{−s}: ‖·‖ ≤ Σ Λ(n)/n² = −ζ′/ζ(2) ≈ 0.569. What exists in Zeta23? \"LSeries vonMangoldt — inventory session 019 ✓; the Σ Λ(n)/n² majorant via LSeries absSummable\". So some assembly needed.\n8. Max-modulus: Zeta23 `AnalyticOn.norm_le_of_norm_le_on_sphere`.\n9. The difference quotient: (G z − G 0)/z analytic at 0.\n\nAlso — WAIT. Big realization check: for the squeeze I need the circle bound for the ENTIRE function Gentire, evaluated at circle points (good points where Gentire = Fexpr). The bound on Fexpr decomposes into the pieces. The pieces at circle points with |im s| < 10, re s ≈ ±R: these are the near-axis parts.\n\nHmm, this is a genuinely big estimation build. Let me think about the simplest sufficient bounds:\n\nFor |s| = R, the pieces:\n(A) seriesFun: the radial split needs:\n   (i) Σ_{|ρ|≤2R} m_ρ ≤ ??: count in a disc — Jensen (5c) or perimeter. For the [R±2] annulus: count in annulus ≤ count in disc(2R) ≤ ...\n   Actually the split needs:\n   - Σ_{|ρ| ≤ R/2} m/|ρ| ≤ Σ_{j ≤ log2 R} (count in dyadic shell)/2^j — from unit-window counts or disc counts at dyadic scales.\n   - The [R−2, R+2] annulus: count ≤ C·(log R)·2 (unit windows covering the annulus: the annulus |ρ| ∈ [R−2, R+2], re ∈ (0,1): im ∈ [±(R−3), ±(R+2)]: ~4 unit windows on each side... ~8 unit windows; each ≤ C₀ log(2R)) + the γ-gap clearance |s−ρ| ≥ c/(2 log R)?? — wait, 5e-i gives: every zero ordinate γ is either ≥ 1 away from R or at clearance ≥ 1/(16·C0hat(4k+9/2)) from R — hmm, \"ordinate clearance\": |R − γ| ≥ 1/(16·Ĉ₀) for γ ∈ [R−1, R+1] and |R − γ| ≥ 1 automatically outside? Let me re-read exists_gapCircle_radius's exact statement.\n\nThis is getting deep. The right move: read the exact current statements of the pieces (5c capstone, 5d capstone, 5e-i, 5e-ii, nearZeros def, ZeroCountProp/C0hat, and check what Zeta23 has for the Dirichlet bound), then design 5e-v concretely. Given the complexity, this session should probably be: (a) the circle bound for each piece as separate lemmas, (b) the assembly + squeeze + capstone. It's a big session; possibly split into two sub-stages: 5e-v-a (the piecewise circle bounds) and 5e-v-b (squeeze + capstone).\n\nActually — let me reconsider the SCOPE to keep this tractable. The squeeze needs: ∃ sequence R_k → ∞ with sup_{|z|=R_k} |Gentire z| = o(R_k). \n\nSimplest sufficient per-piece bounds on |s| = R (R ≥ 4, on a gap circle):\n\n1. **seriesFun**: needs the real work (radial split + counts).\n\n2. **logDeriv ζ**: split the circle into 4 arcs:\n   - re s ≥ 2 (right near-axis arc; |t| ≤ √(R²−4) ≈ R): Dirichlet bound ‖ζ′/ζ‖ ≤ C (constant!) for re ≥ 2 — C = Σ Λ(n)/n² = −ζ′/ζ(2) ≈ 0.57.\n   - 1/2 ≤ re ≤ 2 (right strip): if |t| ≥ 10: 5c: ‖ζ′/ζ − Σ_{near} m/(s−ρ)‖ ≤ 100000(log|t|)²; the near sum: |s−ρ| ≥ |t−γ| ≥ gap (the γ-gap: for zeros with γ near t... the near sum is over nearZeros t = {ρ : |γ − t| < 1}-ish — the circle's |t| for re ∈ [1/2, 2] is ≈ R (within 2 of R) — so near zeros have γ ∈ [R±3]-ish, within the γ-gap's clearance ⟹ each |s−ρ| ≥ |t−γ| ≥ clearance-ish; count ≤ count in unit window ≤ C₀·log R). So ‖ζ′/ζ‖ ≤ 100000(log R)² + C₀ log R · 16Ĉ₀·(2 log R)-ish = O((log R)³) ✓.\n     If |t| < 10 (the top/bottom of the right strip — wait re ∈ [1/2,2] with |s| = R ⟹ |t| = √(R²−re²) ≥ √(R²−4) ≥ R/2 ≥ 2 for R ≥ 4 — so |t| is NEVER < 10 on this arc for R ≥ 4·... R ≥ 4k+2.5 ≥ 6.5 ⟹ √(R²−4) ≥ 6.2... hmm 6.2 < 10! So the right strip arc DOES hit |t| < 10 when re ∈ [1/2, 2] requires |t| ≥ √(R²−4) ≈ R ≥ 6.5 — could be in [6.5, 10) for R ∈ [6.5, 10] i.e. k = 1 only (R₁ ∈ [6.5, 7])... wait √(R²−4) for R = 6.5: √(42.25−4) = √38.25 ≈ 6.19 < 10 — but re ∈ [1/2, 2] with |s| = 6.5 forces |t| ≥ 6.19 — so for k=1 the right-strip arc has |t| ∈ [6.19, 6.5] ⊂ [0,10) — 5c needs |t| ≥ 10! Hmm. Handle |t| < 10 + re ∈ [1/2, 2] directly: that's a FIXED compact region (re ∈ [1/2,2], |t| ≤ 10, avoiding zeros — on the circle the zeros are γ-gapped...). A compactness bound on ‖ζ′/ζ‖ over {re ∈ [1/2,2], |t| ≤ 10} minus small discs around the finitely many zeros there — the circle passes at distance ≥ gap from zeros — a UNIFORM bound on the circle in this region from continuity on the compact set {re ∈ [1/2,2], |t|≤10} ∩ {|s−ρ| ≥ gap for the finitely many zeros ρ in the region}... This needs a compactness argument with the explicit zero-free region — doable but annoying. ALTERNATIVE: only use the circles for k ≥ k₀ with R_k ≥ 20 (say) — the squeeze only needs a SEQUENCE of circles → ∞, so I can start at k = 5 (R ≥ 22.5) and have |t| ≥ √(R²−4) ≥ 22 ≥ 10 everywhere on the strip arcs ✓✓. MUCH simpler: restrict to k ≥ 5. Then |t| < 10 only on the near-axis arcs where re ≈ ±R (re ≥ 2 or re ≤ −... wait: |t| < 10 on |s| = R means re² ≥ R² − 100 ⟹ |re| ≥ √(R²−100) ≈ R − small: so the near-axis arcs are re ≥ √(R²−100) (right) and re ≤ −√(R²−100) (left). For re ≥ 2... wait the right near-axis arc: re ∈ [√(R²−100), R] ⊆ [2, R] for R ≥ 11 ✓ Dirichlet bound applies (re ≥ 2 ✓✓). The left near-axis arc: re ≤ −√(R²−100) ≤ −10: FE-reflect: 1−s has re ≥ 11 ⟹ ζ′/ζ(1−s) Dirichlet-bounded ✓; logDeriv ΓR(1−s): re((1−s)/2) ≥ 5, |im| < 10/2 = 5: 5e-ii's (B) norm_digamma_le_of_two_le_re covers re ≥ 2, |im| ≤ 5 ✓!! and logDeriv ΓR(s): s/2 has re ≤ −5, |im| ≤ 5: 5e-ii's (A) norm_digamma_le_of_dist_nat (dist(s/2, −ℕ) ≥ 1/4 from the circle property dist(R/2, ℤ) ≥ 1/4 — need dist(s/2, −ℕ) ≥ 1/4 on the left arc: |s/2 + n| for n ≥ 0: s/2 ≈ −R/2: dist(R/2, ℤ) ≥ 1/4 ⟹ |s/2 − (−n)| ≥ |re s/2 + n| − ... hmm: ‖s/2 + n‖ ≥ |re(s/2)+n| ≥ dist(re(s/2), −ℕ)·... re(s/2) ∈ [−R/2, −√(R²−100)/2]: dist(re(s/2), ℤ)... the circle property is dist(R/2, ℤ) ≥ 1/4 where R = |s| — but re(s/2) ≠ R/2 exactly (it's −R/2 only at the leftmost point). |re(s/2)| ≤ R/2 with... hmm: |re(s/2) + n| where re(s/2) ∈ [−R/2, −√(R²−100)/2]: the distance from −re(s/2) ∈ [√(R²−100)/2, R/2] to the nearest integer n: since R/2 has dist ≥ 1/4 to ℤ and √((R/2)² − 25) ≥ R/2 − 25/R·... the interval [√(R²−100)/2, R/2] has length ≈ 25/R small and its right endpoint R/2 is 1/4 from integers — so every point of the interval is within... hmm no: the interval [R/2 − 26/R, R/2] — points in it can be CLOSE to an integer (if R/2 is 1/4 above an integer, points 1/4 below R/2 could be near that integer...). |x − n| for x ∈ [R/2 − 26/R, R/2]: if dist(R/2, ℤ) = d ≥ 1/4 with nearest integer m: then for x in the interval: |x − m| ≥ d − 26/R ≥ 1/4 − 26/R ≥ 1/8 for R ≥ 208·... 26/R ≤ 1/8 ⟺ R ≥ 208 — k ≥ 51. Hmm — again just take k large (k ≥ 52) OR use a cruder bound for smaller... Actually |x − m'| for OTHER integers m' ≥ ... this is the D-068 §2 line: \"dist(s/2, −ℕ) ≥ 1/4 − O(1/R) ≥ 1/8 on the near-axis left part\". Fine — take k ≥ k₀ := 52 say (R ≥ 210). Actually simpler: make the threshold explicit in the lemma (k ≥ K for a suitable explicit K) — the squeeze only needs k → ∞.\n\n   Wait, actually, let me reconsider: do I even need the near-axis LEFT digamma bound via dist? The left arc point s has im s ∈ (−10, 10): logDeriv ΓR s = −(log π)/2 + ½ψ(s/2) — via 5e-ii's (G) `logDeriv_Gammaℝ_eq` needs im s ≠ 0; im s = 0 (the point s = −R exactly): handle separately or by the m-fold shift... 5e-ii's (G) is stated for im ≠ 0. The real point s = −R: logDeriv ΓR at −R: R/2 not an integer ⟹ ΓR analytic nonzero at −R ⟹ logDeriv analytic ⟹ continuous ⟹ bounded on the small... ugh, a one-off. Better: bound ψ(s/2) DIRECTLY via 5e-ii's (A) norm_digamma_le_of_dist_nat which is stated for re ≤ 2 with dist(w, −ℕ) ≥ c — covering REAL points (the pole-avoidance form digamma_add_natCast′) ✓ — so at w = s/2 (including real): ‖ψ(w)‖ ≤ (46 + 2/c) + 23 log(2+‖w‖) with c = 1/8 ✓ O(log R) ✓. And (A) covers all of the left arc (re w = re s/2 ≤ −5 ≤ 2 ✓) including the real point ✓. And for logDeriv ΓR(1−s): w = (1−s)/2: re w ≥ 5.5, |im w| < 5: (B) covers re ≥ 2, |im| ≤ 5 ✓ (B: norm_digamma_le_of_two_le_re : re w ≥ 2, |im w| ≤ 5 ⟹ ‖ψ‖ ≤ 20 log(2+‖w‖)) — wait what about |im w| > 5 on... no — on the left arc |im s| < 10 ⟹ |im((1−s)/2)| < 5 ✓.\n   But logDeriv ΓR s = −(log π)/2 + ½ψ(s/2) is (G) which needs im s ≠ 0 — for the REAL point s = −R: (G) doesn't apply. Get logDeriv ΓR(−R) = −(log π)/2 + ½ψ(−R/2) at the real point from... the digamma definition: logDeriv ΓR s = −(log π)/2 + ψ(s/2)/2 — as FUNCTIONS: ΓR = π^(−s/2)Γ(s/2): logDeriv ΓR = logDeriv (π^(−s/2)) + logDeriv (Γ(s/2)) — at real −R (ΓR(−R) ≠ 0 analytic): logDeriv ΓR(−R) = −(log π)/2 + ½·(Γ'(−R/2)/Γ(−R/2)) = −(logπ)/2 + ½ψ(−R/2) — where ψ = logDeriv Γ by definition ✓ — this holds wherever ΓR is analytic & nonzero and the pieces are differentiable — at s = −R (R/2 ∉ ℤ): Γ(−R/2): −R/2 ∉ {0,−1,...} ⟹ differentiable + Gamma_ne_zero ✓. So the identity at the real point follows from the logDeriv product rule DIRECTLY (not via (G)). Build a small lemma: `logDeriv_Gammaℝ_apply_of_not_neg_nat`: for s with s/2 ∉ {0}∪−ℕ (i.e. ∀ m, s/2 ≠ −m): logDeriv ΓR s = −(log π)/2 + ψ(s/2)/2 — pointwise, no im condition. Hmm — ΓR def: `Gammaℝ s = π^(−s/2)·Γ(s/2)`? Mathlib: `Complex.Gammaℝ s = π ^ (-s/2) * Gamma (s/2)`? — 5d's `logDeriv_Gammaℝ_shift` used \"Gammaℝ_def + Gamma_add_one twice + exp-form cpow arithmetic\". So Gammaℝ_def exists. The pointwise logDeriv: logDeriv (π^(−·/2)·Γ(·/2)) s = logDeriv(π^(−·/2)) s + logDeriv(Γ(·/2)) s (logDeriv_mul: both nonzero/differentiable at s: π^(−s/2) ≠ 0 ✓ (cpow of positive real — exp form — never 0), Γ(s/2) ≠ 0 (s/2 ∉ −ℕ∪{0} ✓ Complex.Gamma_ne_zero), differentiability ✓ (differentiableAt_Gamma needs s/2 ≠ −m ✓; the π^(−s/2) = exp(−s/2·log π): differentiable everywhere ✓)); = −(log π)/2 (logDeriv of exp-linear) + (½Γ'(s/2))/Γ(s/2) = ... logDeriv(Γ(·/2)) s = deriv(Γ∘(/2)) s/Γ(s/2) = ½Γ'(s/2)/Γ(s/2) = ½ψ(s/2) — via logDeriv_comp (digamma_def: ψ = logDeriv Γ ✓). ~40 lines. Fine.\n\n   Hmm wait — actually, do I even need the pointwise logDeriv ΓR identity at the real point? The near-axis LEFT arc bound: I could instead bound ‖logDeriv ΓR‖ on the arc via a UNIFORM route: logDeriv ΓR is CONTINUOUS on the arc (arc avoids −2ℕ since dist(R/2,ℤ) ≥ 1/4... the arc {re ≤ −√(R²−100), |s| = R} — contains only points with |im| ≤ 10 — the arc avoids the trivial zeros −2n (|−2n| = 2n; |s| = R with dist(R/2,ℤ) ≥ 1/4 ⟹ R ≠ 2n ✓ and near... the arc is a compact set where logDeriv ΓR is continuous (analytic off its poles −2n, none on/near the arc since dist(R/2, ℤ) ≥ 1/4 gives the arc's closest approach to −2n... the point of the arc nearest to −2n = −R-ish is at distance ≥ |R − 2n| − small ≥ ... hmm need care but plausible). Then continuity on compact ⟹ bounded — but NOT with an explicit O(log R) constant — compactness gives SOME bound possibly growing with R uncontrolled?? No — the arc MOVES with R; compactness per arc gives a bound that could a priori grow arbitrarily. So NO — I need the explicit ψ-identity + digamma bounds. OK: build the pointwise logDeriv ΓR identity (the general one, no im condition, valid where s/2 avoids poles) and use 5e-ii's (A) at every arc point including the real one. For non-real arc points 5e-ii's (G) also works but the uniform new lemma is cleaner.\n\nHmm wait, actually simpler: check — does 5e-ii's (G) `logDeriv_Gammaℝ_eq` really require im ≠ 0? \"for im s ≠ 0 (the m-fold shift + 5d's EventuallyEq machinery)\". Yes im ≠ 0. So I build the real-point-capable version. Actually — hold on, maybe simplest: the arc minus its real point is handled by (G); the real point −R itself: the bound on |F(−R)| via... continuity of F?? No — F is entire (5e-iv) ⟹ continuous ⟹ the bound at the real point follows from the bound at nearby arc points by continuity?! NO — the max-modulus squeeze needs the bound at ALL circle points — but actually max-modulus on the sphere needs the bound on the WHOLE sphere — I can get the sphere bound as a SUP: if |F| ≤ C(log R)³ on the sphere minus one point, then by continuity |F(−R)| ≤ C(log R)³ too (F continuous, the bound set is closed) ✓! Formalize: the sphere bound via sup over the dense subset + continuity — `IsClosed` preimages: {z ∈ sphere : ‖F z‖ ≤ M} is closed (continuity) and contains the dense (co-point) subset ⟹ = whole sphere ✓. That's clean: prove the bound on {s : ‖s‖ = R, im s ≠ 0} and extend by continuity. Or even simpler — include the real points via the new pointwise identity lemma. I'll decide when writing; the continuity extension is a clean ~20-line argument and avoids the new identity. Hmm, but the sup-form max-modulus: Zeta23's `AnalyticOn.norm_le_of_norm_le_on_sphere` — presumably ‖f z‖ ≤ sup on sphere for z inside — if I have ‖F‖ ≤ M on sphere∖{±R}: get ≤ M on the full sphere by closure, then apply. OK.\n\n3. **The elementary terms**: 1/s, 1/(s−1): ‖1/s‖ = 1/R, ‖1/(s−1)‖ ≤ 1/(R−1) ✓ trivial. (log π)/2 const ✓. ψ(s/2)/2: on the RIGHT arc (re s ≥ 2-ish): (B) covers re(s/2) ≥ 1... (B) needs re w ≥ 2: re(s/2) ≥ √(R²−100)/2 ≥ 5 for R ≥ 11 ✓. On the right-strip arcs (re ∈ [1/2,2], |t| ≥ 10): w = s/2: re w ∈ [1/4, 1], |im w| ≥ 5: 5d's `norm_digamma_sub_log_le_of_two_le_abs_im` (‖ψ(w) − log w‖ ≤ 3 for 2 ≤ |im w|) ⟹ ‖ψ(w)‖ ≤ ‖log w‖ + 3 ≤ log‖w‖ + π + 3 = O(log R) ✓ (‖log w‖ ≤ log‖w‖ + π — banked in LiReflect line 414: `‖log w‖ ≤ log ‖w‖ + π` for ‖w‖ ≥ 1 ✓). On the LEFT strip arc (re ∈ [−√..., 1/2], |t| ≥ 10): w = s/2: |im w| ≥ 5 ✓ 5d's bound again ✓ O(log R) ✓. On the left near-axis arc: (A) with c = 1/8 ✓ O(log R) ✓. So ψ-part is O(log R) everywhere ✓.\n\n4. **seriesFun** — the real work. The radial split on |s| = R (gap circle, k ≥ some k₀):\n   Term bound: ‖1/(s−ρ) + 1/ρ‖ = ‖s‖/(‖ρ‖‖s−ρ‖) = R/(‖ρ‖‖s−ρ‖) (for ρ ≠ s ✓ gap).\n   - Shell |ρ| ≤ R/2: ‖s−ρ‖ ≥ R − ‖ρ‖ ≥ R/2 ⟹ term ≤ R/(‖ρ‖·R/2) = 2/‖ρ‖. Sum: Σ_{|ρ|≤R/2} m/‖ρ‖. \n   - Shell R/2 < |ρ| ≤ R−2: ‖s−ρ‖ ≥ |R − ‖ρ‖|·?? — ‖s−ρ‖ ≥ ‖s‖ − ‖ρ‖ = R − ‖ρ‖ ✓ (reverse triangle) ⟹ term ≤ R/(‖ρ‖(R−‖ρ‖)) ≤ 2/(R−‖ρ‖) (‖ρ‖ > R/2). Sum: Σ_{j} (count in sub-shell [R−2^{j}...])... dyadic in d := R − ‖ρ‖ ∈ [2, R/2]: Σ over dyadic d-shells: count(shell d ∈ [2^j, 2^{j+1}])·2/2^j. Count in the shell {‖ρ‖ ∈ [R−2^{j+1}, R−2^j]}: zeros with im ∈ [±(R−2^{j+1}), ±(R−2^j)] roughly — bounded by unit-window counts: ≤ C·2^{j+1}·(count per unit window ≤ C₀ log(2R)): so shell-sum ≤ Σ_j 2/2^j · C 2^{j+1} C₀ log R ≍ Σ_j 4C·C₀ log R over j ≤ log₂ R shells = O((log R)²·C₀) ✓.\n   - Critical annulus [R−2, R+2]: term ≤ R/(‖ρ‖·‖s−ρ‖): ‖ρ‖ ≥ R−2 ≥ R/2, ‖s−ρ‖ ≥ |t − γ| ≥ gap_R where t = im s with |t| ∈ [√(R²−1)... hmm: ‖s−ρ‖ ≥ |im(s−ρ)| = |t − γ| and the zeros in the annulus have |γ| ∈ [R−3, R+2]-ish ⊆ the clearance zone of the circle at height ≈ R: 5e-i gives |R − |γ||... wait — the γ-gap is about |R − γ| where γ is the ORDINATE: |t − γ| ≥ |R − |γ|| − |R − |t||: |t| = √(R² − re²) ∈ [0, R]: for the strip arcs (re ≤ 2) |t| ≥ √(R²−4): |R − |t|| = R − √(R²−4) ≤ 4/R·R/(R+√...) = (R−√(R²−4)) = 4/(R+√(R²−4)) ≤ 4/R ≤ 1/2 (R ≥ 8) — and 5e-i's clearance: zeros with |γ| ∈ [R−1, R+1] have |R − |γ|| ≥ 1/(16·Ĉ₀(4k+9/2))... hold on, let me look at the exact statement of exists_gapCircle_radius — \"every zero ordinate either ≥ 1 away or at clearance ≥ 1/(16·C0hat(4k+9/2))\" — i.e. |R − γ| ≥ 1 OR |R − γ| ≥ 1/(16·C0hat(...)). Combined: |R−γ| ≥ min(1, 1/(16Ĉ₀)) = 1/(16Ĉ₀) (if Ĉ₀ ≥ 1/16). Then |t − γ| ≥ |R − |γ|| − |R − |t|| ≥ 1/(16Ĉ₀) − 4/R — needs 4/R ≤ 1/(32Ĉ₀) ⟺ R ≥ 128·Ĉ₀ — Ĉ₀(4k+9/2) grows like log k — so k ≥ some explicit threshold. Fine (k ≥ K₀ with K₀ explicit from Ĉ₀'s growth... Ĉ₀ is the Trudgian constant — C0hat(T) ≍ log T? — need an upper bound on C0hat to pick K₀ — or just leave the threshold symbolic: the squeeze needs the bound for a SEQUENCE k_j → ∞ — I can take k ≥ K₀ where K₀ is chosen so that 4/R_k ≤ 1/(32·C0hat(4k+9/2)) — existence of such K₀ needs C0hat(4k+9/2) = o(k) — C0hat ≍ log T ✓ — but proving C0hat(4k+9/2)·128 ≤ 4k+2 for large k needs C0hat's actual form. Hmm — what IS C0hat? From ii′-4: \"the perimeter ZeroCountProp (Trudgian N(T)/S(T) in Ĉ₀ form)\" — C0hat is presumably an explicit function like C₀·(log(T/2π)+...)... I need to look at its definition.\n\nThis is a LOT. Let me now go read the exact statements: LiGapCircles (exists_gapCircle_radius + C0hat def), LiContour (ZeroCountProp + C0hat), LiDisc capstone, LiReflect capstone + nearZeros, LiDigammaLeft (A), (B), (G), LiReflect's 5d digamma-sub-log, and the Zeta23 Dirichlet-series assets. Then write the design into a short D-069 note? D-068 §5 already sketches it. Given the size, I'll aim for: 5e-v-a (piecewise bounds: digamma/elem/logDeriv parts) + 5e-v-b (the series bound) + 5e-v-c (squeeze + capstone). This session: as far as we get, committing per sub-stage.\n\nLet me read the key statements.","signature":""},{"type":"text","text":"Session 030: **ii′-5e-v** (circle bound + squeeze ⟹ ∃ B capstone). First I need the exact statements of all inputs: 5e-i's circles, 5c/5d's R-bounds, 5e-ii's digamma bounds, the C0hat/ZeroCountProp forms, and the max-modulus API."},{"type":"tool_use","id":"Read_235","name":"Read","input":{"file_path":"D:\\Python\\Quantum\\research\\lean\\NguyenRH1\\NguyenRH1\\LiGapCircles.lean"},"extra_content":null}]