Current task: —

Updated 08-21-2026

D-064 — Tier ii′ design: closing SfBoundProp in Lean

Date: 2026-08-21 | Session: 014 | Task: 5.1 tier ii′ sub-stage 0 (design + skeleton) Status: design COMPLETE (route decisions + lemma graph); two design-level discoveries (§1, §2) that reshape the whole tier; numerically verified identity chain (§3, all checks against E-015/E-021 certified data).

Origin: user directive 2026-08-21 — option (a): do tier ii′ BEFORE submission, with Paper A frozen/submittable at all times. Freeze protocol: no edits to paperA.tex/paperB.tex/draft.tex/references.bib until ii′-7; no edits to existing Lean proofs except the §1 correctness fix (flagged).

1. DISCOVERY 1 — the liCoeff encoding is defective (must fix first)

LiSkeleton.lean:39 defines

liCoeff n := tsum fun ρ : {ρ // IsNontrivialZero ρ} =>
               (zeroMult ρ : ℂ) * (1 - (1 - 1/ρ)^n)

The summand is ~ n/|γ| for |γ| ≫ n (for ANY zero: 1−1/ρ = 1+i/γ+O(γ⁻²), so 1−(1−1/ρ)ⁿ ≈ −n·i/γ to first order). Since Σ_ρ mult/|ρ| = ∞ (consequence of RvM, proved in Zeta23 as riemannVonMangoldt), the family is NOT Summable for any n ≥ 1 — hence tsum evaluates to the junk value 0. Consequences:

Fix (design). Replace by the paired (absolutely summable) form — which is also the classical definition (Bombieri–Lagarias sum by symmetric pairs):

liCoeff n := ∑' ρ : {ρ // IsNontrivialZero ρ},
               (zeroMult ρ : ℂ)/2 * (f ρ + f (star ρ))    -- f ρ = 1−(1−1/ρ)ⁿ

Priority: FIRST executable sub-stage (ii′-1a). Small, isolated, recompiles the whole package unchanged downstream (liCoeff is only used abstractly in hypotheses). Makes LiVerifiedUpTo/SfBoundProp true statements; the session-012 theorems go from vacuous to meaningful.

2. DISCOVERY 2 — the crux identity: S_f(n) = Res₁(n) EXACTLY

(and the assembly is tail-free)

Settling the D-036/D-037 identity bookkeeping against the primary source (Lagarias math/0404394 §4–6, archived PDF) produced the exact chain — and it is simpler than D-062 feared.

Notation. c_k = Laurent coefficients of −ζ′/ζ at s = 1: −ζ′/ζ(1+u) = u⁻¹ + c₀ + c₁u + …; Res₁(n) := Σ_{j=1}^n C(n,j)·c_{j−1} (the residue at w = 1 of the Lagarias-kernel integrand J(w) = k_n(w−1)(−ζ′/ζ(w)), k_n(s) = (1+1/s)ⁿ−1 — pole of order n+1).

The crux identity. Sf(n) := S_∞(n) + 1 − λ_n = Res₁(n) for all n ≥ 1. Proof content: sum Lagarias's (4.10) [τ_j = η_j + (−1)ʲσ_{j+1} − (−1)ʲδ] against C(n,j); the σ_j = Σ_ρ ρ⁻ʲ are the zero power sums (paired), τ_j the archimedean coefficients (digamma/Hurwitz values), η_j = c_j. Binomial bookkeeping (verified in §3): S_∞ + 1 − λ_n = Σ_j C(n,j)[τ_{j−1} + (−1)ʲσ_j] + 1 = Σ_j C(n,j)[c_{j−1} + (−1)ʲ] + 1 = Res₁(n) + (−1) + 1. So the BL decomposition λ_n = S_∞ − S_f + 1 IS the binomial assembly of the Laurent-coefficient identity (4.10) — which is itself the coefficient-wise reading of the Hadamard product of ξ vs its Γ·ζ decomposition.

Residue theorem (exact, finite T). For T zero-avoiding in [√n, √n+1], rectangle σ ∈ [−5/2, 2√n], |Im| ≤ T: sides(T) := (1/2πi)∮ J = λ_n(T) + triv(n) + Res₁(n) where λ_n(T) = Σ_{|γ|<T} mult·[1−(1−1/ρ)ⁿ] (finite reindexing of the reflected residues via ρ ↦ 1−ρ, exact), triv(n) = 1−(2/3)ⁿ (the trivial zero at −2; only one inside).

The bound (tail-free). Solving for Res₁ and using the crux: |Sf(n)| ≤ |λ_n(T)| + |sides(T)| + |triv(n)| ≤ 2N(T) [bridge, hRH: |1−1/ρ| = 1 on the line ⟹ each ≤ 2] + [I_I..I_IV pieces, D-036/D-037] + 1 = B(n). NO tail term appears anywhere — D-037's B(n) has none, and now we know why: the identity lives at a single finite T; the full zero sum enters only through the crux identity (BL decomposition), not through the contour.

3. Numeric verification of the identity chain (this session, dps 40–50)

Check Result
Laurent c₀ = −γ exact to 25 digits (h(u) = u·(−ζ′/ζ), first derivative)
c₁ fit (dps 50) 0.18754623283535631 (≈ γ² + 2γ₁ to 3e-8; symbolic Stieltjes relations to be pinned in ii′-1b — empirical values suffice for design)
Residue theorem sides(T) = λ_n(T)+triv+Res₁ n=2: 2e-21; n=3: 1.7e-15 (direct mpmath contour integral vs residue sum; λ_n(T) = 0 for T < 14.13)
Lagarias (4.10) at j=0: σ₁ = τ₀ − η₀ + 1 exact to 15 digits (σ₁ = 0.02309570896612103 = λ₁, the classical Davenport value; τ₀ = −(log 4π+γ)/2, η₀ = −γ)
(4.10) at j=1: −σ₂ = τ₁ − η₁ − 1 consistent within zero-tail (σ₂ ≈ −0.0462, negative as required)
Crux consequence λ₂ = S_∞(2)+1−Res₁(2) 0.09234573523 vs E-015 certified 0.09234573522804667 — exact match (the "λ₂ = 0.092383" in some informal tables is wrong at the 4th decimal; E-015 is authoritative)
MASTER bookkeeping Sf = B0 − sides − tail exact (n=2,3)

Also verified: D-037's line-63 compressed identity (S_f = −λ_n(T) + sides + triv(−2)) is correct ONLY when read as Sf = Res₁ = sides − λ_n(T) − triv with triv(−2) = −triv; the archive file itself should get an erratum pointer to this file (ii′-7 housekeeping).

4. Route decisions

R1 (LIFT-α): higher-order residue machinery — BUILD, bounded

The vendored RectangleIntegral'_eq_sumResiduesIn (FromPNTPlus, axiom- clean) carries the HasSimplePolesOn scaffold (placeholder residue valid only for simple poles). Our integrand J has simple poles at zeros and an order-(n+1) pole at w = 1. Plan:

R2 (LIFT-β): the crux identity Sf = Res₁ — via (4.10); two candidate routes, decide at skeleton time

Needed components: (i) λ_n = Σ_j (−1)^{j+1}C(n,j)σ_j — binomial expansion of the summand

+ swap finite j-sum with paired zero sum (pair bound + zero_sum_inv_sq
comparison; j = 1 term needs the paired form — same machinery as the
§1 fix). ELEMENTARY-side.

(ii) S_∞(n) = Σ_j C(n,j)τ_{j−1} — identity between the Lean SInfty odd-m tsum and the binomial/τ form (Lagarias (4.11) ↔ (4.7) via digamma partial fractions (4.19)–(4.22); the double-sum swap is D-037 §3's absolute-convergence argument). ELEMENTARY-side (tier-(i)-class). (iii) (4.10) itself: τ_j = c_j + (−1)ʲσ_{j+1} − (−1)ʲ for all j ≥ 0. THE analytic heart. Two candidate routes: - (β1) Hadamard product of ξ. log ξ(s) = A + Bs − Σ_{k≥2} σ_k s^k/k near s = 0 (product over zeros; convergence from the perimeter zero count), differentiate, compare with ξ = π^{-s/2}Γ(s/2)·s(s−1)·ζ(s)/2-style decomposition. Mathlib has NO Weierstrass/Hadamard factorization; would be built from MeromorphicOn.extract_zeros_poles (FactorizedRational) + the order-1 estimate. Heavy but self-contained. - (β2) Reuse zeta-23-lean's proved explicit formula (EF_lit_zeta, axiom-clean per D-061 live audit). The σ_j are moments of the zero measure; (4.10) is a moment identity — an EF instance with coefficient-extracting test functions. The WeilEF/Contour.lean "weighted argument principle" may already contain a directly reusable Laurent/moment form. INVESTIGATE FIRST (1–2 days of reading); fallback (β1). Sanity gate (must hold in either route): the j = 0 case is the classical Σ 1/ρ = 1 + γ/2 − ½ log 4π (verified to 15 digits). Est. 2–4 sessions depending on route.

R3 (LIFT-γ): the R-bound (D-056, A = 10.5, B₀ = 48) — LOCAL route (no Hadamard)

D-056's proof uses partial fractions, but the same bound is provable by the Davenport-Ch.-15 local route, for which the machinery EXISTS: Mathlib Complex.borelCaratheodory, MeromorphicOn.circleAverage_log_norm (Jensen), and FromPNTPlus StrongPNTPrefix (BorelCaratheodoryDeriv, LogOfAnalyticFunction, Blaschke factors, ZerosBound). Sketch: on a disc around s₀ = 2+it of radius ~ 9/2, log ζ bounded via Borel– Carathéodory from |ζ| bounds (ZetaBounds' ZetaUpperBnd + functional- equation polynomial bound in the strip — the FE polynomial bound to be built from Mathlib riemannZeta_one_sub + Stirling bounds for Γ); zero extraction by Blaschke/Jensen with the perimeter C₀ count; Cauchy estimate for the derivative; digamma terms via Mathlib Complex.digamma (Lemma D already proved pen-and-paper in D-056 §1 — formalize the Binet bound or re-derive via the local route). Fallback if (β1) is built anyway: reuse the Hadamard partial fractions. Est. 2–3 sessions.

R4: the w=1 residue = Res₁ identification with S_∞ — RESOLVED by Discovery 2

No separate S_∞ ↔ Laurent identification is needed: the crux identity (§2) IS that identification, and it factors through (4.10) (R2) plus the elementary swaps (i)/(ii). This KILLS the sub-task D-062 feared most (the variable-order pole meeting the archimedean sum): the pole computation (R1) and the archimedean meeting (R2) are now separate, each bounded.

R5: perimeter — unchanged (D-062 §4)

Trudgian 2014 N(T)/S(T) (FAlt majorant already in Lean), Platt– Trudgian RHUpTo, LiVerifiedUpTo, M₀ (L6; E-023b acb optional).

5. Lemma dependency graph (skeleton blueprint)

Module: NguyenRH1/LiContour.lean (+ LiResidue.lean for R1 machinery, LiCrux.lean for R2, LiRBound.lean for R3).

[perimeter] RHUpTo, LiVerifiedUpTo, TrudgianN (FAlt form, named hyp)
[§1 fix]    liCoeff (paired) + liCoeff_summable            — ii′-1a
[R1]        gresidue + rect residue theorem (finite order)  — ii′-1b
[R1]        Res_zero (logDerivResidue reuse), Res_w1 (Leibniz)
[R2(i)]     lambda_eq_binom_sigma  (λ_n = Σ(−1)^{j+1}C(n,j)σ_j)
[R2(ii)]    sInfty_eq_binom_tau    (S_∞ = Σ C(n,j)τ_{j−1})
[R2(iii)]   laurent_relation_410   (τ_j = c_j + (−1)ʲσ_{j+1} − (−1)ʲ)
[R2]        CRUX: Sf n = Res1 n                             — ii′-2/3
[L3]        exists_zero_avoiding_T (pigeonhole on C₀/FAlt)  — ii′-4
[L1]        kernel bounds |k_n| ≤ 2, e⁴+1, e^{√n/2}+1      — ii′-4
[R3]        R_bound (D-056 constants)                       — ii′-5
[L6/perim]  M₀ ≤ 1.3352 (hypothesis-of-record; E-023b later)
[L0]        sides_identity: sides(T) = λ_n(T)+triv+Res₁    — ii′-6
[bridge]    |λ_n(T)| ≤ 2·FAlt(T) via hRH                    — ii′-6
[assemble]  |Sf n| ≤ Bn FAlt n  on [10⁵, N₁]                — ii′-6
[close]     theorem sfBoundProp : SfBoundProp               — ii′-7
            theorem lambda_pos_finite_height_closed
              := lambda_pos_finite_height_verified hRH hfinite sfBoundProp
            axiom audit (target: 3 standard + 0 sorryAx in Li chain)
            paper Appendix B + tag upgrade (D-062 §4 endpoint form)

6. Revised sub-stage map (supersedes the coarse ii′-1..ii′-7)

# Content Depends Est.
ii′-1a liCoeff pairing fix + summability (§1) zero_sum_inv_sq 0.5–1 sess
ii′-1b R1 residue machinery (gresidue + rectangle extension + w=1 Leibniz + zero residue) — 1–2 sess
ii′-2 R2(i)/(ii) elementary swaps (λ_n binomial, S_∞ binomial) ii′-1a 1–2 sess
ii′-3 R2(iii) (4.10) — investigate β2 (EF reuse) first, fallback β1 ii′-2 2–4 sess
ii′-4 L3 zero-avoiding T + L1 kernel bounds perimeter 1 sess
ii′-5 R3 R-bound (local route) perimeter 2–3 sess
ii′-6 L0 sides identity + bridge + assemble |Sf| ≤ Bn 1b,2,3,4,5 1–2 sess
ii′-7 Close SfBoundProp, axiom audit, paper update, archive closure all 1 sess

Order: 1a → 1b → 2 → 3 → 4 → 5 → 6 → 7 (1b/4/5 are independent and may be reordered for variety; 3 is the long pole).

Total: ~9–16 sessions. Biggest risks: (a) (4.10) route β2 may not fit EF's test-function class cleanly → β1 fallback (Hadamard build, +1–2 sessions); (b) R-bound local route's FE polynomial bound in the strip may need a Phragmén–Lindelöf we don't have → bounded build from Hadamard three-lines (Mathlib HAS HadamardThreeLines); (c) gresidue API friction → fall back to direct "subtract principal part" per-pole arguments without a general residue def.

7. What success yields (restated)

R-004 tag: [Lean-verified modulo published explicit N(T)/S(T) bounds (Trudgian 2014) + computational certificates (Platt–Trudgian RH to 3×10¹²; Li verification to 5×10⁵; M₀ acb certificate)] — no named analytic hypothesis remains. Paper A changes ONLY in Appendix B (final form paragraph) + possibly one abstract sentence; everything else frozen (ii′-7, with a D-060-rule mini-audit of the edited lines).

8. Fallback integrity statement

If ii′ stalls at any point: Paper A stands exactly as committed at session 013 (submission-ready), with the §1 liCoeff fix committed separately as a correctness improvement (it makes the declared hypotheses TRUE, strengthening the paper's formal claim even with SfBoundProp still open). No state is worse than today's.