← Session 22 — ii′-1: liCoeff pairing fix + residue machinery
thinking (6497 chars)
Clean again. Now the final sections: 9 (DinfC iterated values at 1/2 + digamma transfer) and 10 (reindexing + affine comp + τ_j assembly). Let me write Section 9 now — carefully, applying the lessons (beta-redexes, function-level forms, cast ascriptions).
Section 9:
```lean
/-! ## 9. The polygamma values of DinfC and Complex.digamma at 1/2 -/
/-- The k-th iterated derivative of DinfC at 1/2 (k ≥ 1). -/
lemma iteratedDeriv_DinfC_half (k : ℕ) (hk : 1 ≤ k) :
iteratedDeriv k DinfC ((1 : ℂ) / 2) =
-((-1 : ℂ)) ^ k * (k ! : ℂ) * ∑' m : ℕ, ((1 / 2 : ℂ) + ↑m) ^ (-(k : ℤ) - 1) := by
-- DinfC = A + B as functions
have hsplit : DinfC = (fun s : ℂ => -(Real.eulerMascheroniConstant : ℂ) - 1 / s) +
(fun s => ∑' m : ℕ, dpsiTermC s m) := by
funext s
rw [DinfC]
simp [Pi.add_apply]
rw [hsplit]
have hcfA : ContDiffAt ℂ k (fun s : ℂ => -(Real.eulerMascheroniConstant : ℂ) - 1 / s)
((1 : ℂ) / 2) := by
have h1 : AnalyticAt ℂ (fun s : ℂ => 1 / s) ((1 : ℂ) / 2) :=
analyticAt_const.div analyticAt_id (by norm_num)
exact (analyticAt_const.sub h1).contDiffAt
have hcfB : ContDiffAt ℂ k (fun s => ∑' m : ℕ, dpsiTermC s m) ((1 : ℂ) / 2) := by
have h := dpsiTermC_tsum_differentiableOn
-- DifferentiableOn on the open ball ⟹ AnalyticAt at 1/2 ⟹ ContDiffAt
have h2 : AnalyticOnNhd ℂ (fun s => ∑' m : ℕ, dpsiTermC s m) dpsiDomain :=
h.analyticOnNhd dpsiDomain_isOpen
exact (h2 _ dpsiDomain_half).contDiffAt
rw [iteratedDeriv_add hcfA hcfB]
-- the A part
have hA : iteratedDeriv k (fun s : ℂ => -(Real.eulerMascheroniConstant : ℂ) - 1 / s)
((1 : ℂ) / 2) = -((-1 : ℂ)) ^ k * (k ! : ℂ) * (((1 : ℂ) / 2)) ^ (-(k : ℤ) - 1) := by
have heq : (fun s : ℂ => -(Real.eulerMascheroniConstant : ℂ) - 1 / s) =
(fun _ : ℂ => -(Real.eulerMascheroniConstant : ℂ)) + fun s => -(1 / (s + 0)) := by
funext s
simp [Pi.add_apply]
ring
rw [heq]
have hcf1 : ContDiffAt ℂ k (fun _ : ℂ => -(Real.eulerMascheroniConstant : ℂ)) _ :=
contDiff_const.contDiffAt
have hcf2 : ContDiffAt ℂ k (fun s : ℂ => -(1 / (s + 0))) ((1 : ℂ) / 2) := by
have h2 : AnalyticAt ℂ (fun s : ℂ => s + 0) ((1 : ℂ) / 2) :=
analyticAt_id.add analyticAt_const
have h3 : AnalyticAt ℂ (fun s : ℂ => 1 / (s + 0)) ((1 : ℂ) / 2) :=
analyticAt_const.div h2 (by simpa using (by norm_num : ((1 : ℂ) / 2) ≠ 0))
exact h3.neg.contDiffAt
rw [iteratedDeriv_add hcf1 hcf2]
rw [iteratedDeriv_const, if_neg (by omega : k ≠ 0)]
rw [iteratedDeriv_neg_one_div_add_const k 0 (by simp; norm_num : ((1:ℂ)/2) + 0 ≠ 0)]
rw [add_zero, zero_add]
-- the B part: from iteratedDerivWithin → iteratedDeriv (open domain)
have hB : iteratedDeriv k (fun s => ∑' m : ℕ, dpsiTermC s m) ((1 : ℂ) / 2) =
-((-1 : ℂ)) ^ k * (k ! : ℂ) * ∑' m : ℕ, ((1 / 2 : ℂ) + ↑m + 1) ^ (-(k : ℤ) - 1) := by
rw [← iteratedDerivWithin_of_isOpen dpsiDomain_isOpen dpsiDomain_half]
rw [iteratedDerivWithin_tsum_dpsiTermC k hk]
rw [tsum_mul_left] -- pull −(−1)^k·k! out of the tsum — wait the tsum's terms have the factor — tsum_mul_left : ∑' b, a * f b = a * ∑' b, f b — the per-term: −(−1)^k·↑k!·X_m — as a * f m with a := −(−1)^k·↑k!... — the term is written `-(−1)^k * ↑k! * X` — that's (−(−1)^k * ↑k!) * X ✓ so a := −(−1)^k * ↑k! — hmm — wait the iteratedDerivWithin_tsum_dpsiTermC's conclusion: ∑' m, −(−1)^k * ↑k! * ((1/2:ℂ)+↑m+1)^(−↑k−1) — so the tsum's function is fun m => (−(−1)^k * ↑k!) * X_m — tsum_mul_left gives (−(−1)^k*↑k!) * ∑' X_m ✓
rw [hA, hB]
-- combine the two series: (1/2)^{−(k+1)} + Σ_{m≥0}(3/2+m)^{−(k+1)} = Σ_{m≥0}(1/2+m)^{−(k+1)}
rw [← tsum_mul_left] -- fold the factor back? hmm — I have C·X₀-form + C·ΣY — combine: C·(X₀ + ΣY) via ← mul_add
rw [← mul_add]
congr 2 -- the −(−1)^k·k! factor
-- (1/2)^{−(k+1)} + Σ_{m≥0}(1/2+↑m+1)^{−(k+1)} = Σ_{m≥0}(1/2+↑m)^{−(k+1)}
...
```
The combine step: after rw [hA, hB], the goal:
C·(1/2)^{−(k+1)} + C·Σ_{m≥0}(1/2+↑m+1)^{−(k+1)} = C·Σ_{m≥0}(1/2+↑m)^{−(k+1)} where C := −(−1)^k·↑k!.
rw [← mul_add]: LHS → C·((1/2)^{−(k+1)} + Σ (1/2+↑m+1)^{...}) ✓ then congr 1: C·X = C·Y → X = Y:
(1/2)^{−(k+1)} + Σ_{m≥0}(1/2+↑m+1)^{−(k+1)} = Σ_{m≥0}(1/2+↑m)^{−(k+1)}
RHS via tsum_eq_zero_add: Σ_{m≥0} f m = f 0 + Σ_{m≥0} f (m+1): `tsum_eq_zero_add (hf : Summable f) : ∑' n, f n = f 0 + ∑' n, f (n+1)` ✓ — with f m := (1/2+↑m)^{−(k+1)}: f 0 = (1/2)^{−(k+1)} ✓ and f (m+1) = (1/2 + ↑(m+1))^{−(k+1)} = (1/2 + ↑m + 1)^{−(k+1)} ✓ (↑(m+1) = ↑m + 1 push_cast ✓). The Summable f: the (1/2+↑m)^{−(k+1)} series — summable (norm ~ 1/m^{k+1} ✓ via the M-test dominator — need a small summability lemma: Summable (fun m => ((1/2:ℂ)+↑m)^{−(k+1):ℤ}) — via of_norm_bounded with 1/(m+1)²-family... — hmm — need it. |(1/2+↑m)^{−(k+1)}| = (1/2+m)^{−(k+1)} ≤ 1/(m+1/2)^{k+1} ≤ 2^{k+1}/(2m+1)^{k+1}... — let me bound: (1/2 + m) ≥ (m+1)/2 ⟹ (1/2+m)^{k+1} ≥ (m+1)^{k+1}/2^{k+1} ⟹ the inverse ≤ 2^{k+1}/(m+1)^{k+1} ✓ summable ✓. So:
```lean
have hsum0 : Summable (fun m : ℕ => ((1 / 2 : ℂ) + ↑m) ^ (-(k : ℤ) - 1)) := by
apply Summable.of_norm_bounded (summable_div_add_one_pow (2^(k+1)) (k+1) (by omega))
intro m
... ‖(1/2+↑m)^{−(k+1)}‖ ≤ 2^{k+1}/(m+1)^{k+1}
```
This needs the norm chains again — ~25 lines. OK.
The final algebra: −(−1)^k = (−1)^{k+1}: pow_succ: (−1)^{k+1} = (−1)^k·(−1) = −(−1)^k ✓ — so the C factor −(−1)^k·↑k! = (−1)^{k+1}·↑k! via pow_succ + ring.
Hmm — but wait — my target statement in iteratedDeriv_DinfC_half: I wrote the RHS as −(−1)^k·k!·Σ — let me keep that form (avoid the sign flip here; do it at the assembly). Actually for the ASSEMBLY I want (−1)^{j+1}·j!·lagariasA(j+1) — so the −(−1)^j = (−1)^{j+1} flip happens there. Let me state iteratedDeriv_DinfC_half with the form `((-1:ℂ))^(k+1) * (k!:ℂ) * ∑' m, ((1/2:ℂ)+↑m)^(−(k:ℤ)−1)` — absorbing the sign. So hA/hB with the (−1)^{k+1} forms: −(−1)^k = (−1)^{k+1} via:
```lean
have hsign : -((-1 : ℂ)) ^ k = (-1 : ℂ) ^ (k + 1) := by rw [pow_succ]; ring
```
✓.
OK this section is getting really long and it's past midnight. Let me write Sections 9+10 carefully in one append and grind through the compile errors. Given the number of fiddly steps, let me be extra careful with forms. Actually — let me simplify the structure of the final assembly: skip the Within-machinery form and directly state the DinfC value lemma with the (1/2+↑m) series, then the digamma transfer, then the reindexing as a separate lemma, then the final τ-assembly as the capstone in LiArchimedean.lean.
Clean. Now the final push — Sections 9–10: the values at 1/2, the digamma transfer, and the reindexing to lagariasA.
tool: Bash ok
input
{
"command": "cd \"D:/Python/Quantum\" && cat >> research/lean/NguyenRH1/NguyenRH1/LiDigamma.lean << 'EOF'\n\n/-! ## 9. The values at 1/2 and the transfer to digamma -/\n\n/-- The (1/2 + m)-power series is summable (norm \u2264 2^{k+1}/(m+1)^{k+1}). -/\nlemma summable_zpow_half_add_nat (k : \u2115) (hk : 1 \u2264 k) :\n Summable (fun m : \u2115 => ((1 / 2 : \u2102) + \u2191m) ^ (-(k : \u2124) - 1)) := by\n apply Summable.of_norm_bounded (summable_div_add_one_pow (2 ^ (k + 1)) (k + 1) (by omega))\n intro m\n have hpos : (0 : \u211d) < (m : \u211d) + 1 / 2 := by positivity\n have h1 : \u2016((1 / 2 : \u2102) + \u2191m)\u2016 = (m : \u211d) + 1 / 2 := by\n have e : ((1 / 2 : \u2102) + \u2191m) = \u2191((m : \u211d) + 1 / 2) := by push_cast; ring\n rw [e, Complex.norm_real, Real.norm_eq_abs, abs_of_nonneg hpos.le]\n rw [norm_zpow, h1]\n rw [show (-(k : \u2124) - 1 : \u2124) = -(((k + 1 : \u2115) : \u2124)) by push_cast; ring, zpow_neg, zpow_natCast]\n rw [div_eq_mul_inv, \u2190 one_div, \u2190 one_div]\n apply one_div_le_one_div_of_le (by positivity)\n have h2 : ((m : \u211d) + 1) ^ (k + 1) \u2264 2 ^ (k + 1) * ((m + 1 / 2 : \u211d)) ^ (k + 1) := by\n rw [show (2 : \u211d) ^ (k + 1) * ((m + 1 / 2 : \u211d)) ^ (k + 1) =\n (2 * (m + 1 / 2 : \u211d)) ^ (k + 1) by rw [mul_pow]]\n apply pow_le_pow_left\u2080 (by positivity : (0 : \u211d) \u2264 (m : \u211d) + 1)\n \u00b7 ring_nf\n linarith [Nat.cast_nonneg (\u03b1 := \u211d) m]\n exact h2\n\n/-- The polygamma values of DinfC at 1/2 (j \u2265 1). -/\nlemma iteratedDeriv_DinfC_half (k : \u2115) (hk : 1 \u2264 k) :\n iteratedDeriv k DinfC ((1 : \u2102) / 2) =\n ((-1 : \u2102)) ^ (k + 1) * (k ! : \u2102) * \u2211' m : \u2115, ((1 / 2 : \u2102) + \u2191m) ^ (-(k : \u2124) - 1) := by\n have hsign : \u2200 k : \u2115, -((-1 : \u2102)) ^ k = (-1 : \u2102) ^ (k + 1) := fun k => by\n rw [pow_succ]; ring\n have hsplit : DinfC = (fun s : \u2102 => -(Real.eulerMascheroniConstant : \u2102) - 1 / s) +\n (fun s => \u2211' m : \u2115, dpsiTermC s m) := by\n funext s\n rw [DinfC]\n simp [Pi.add_apply]\n rw [hsplit]\n have hcfA : ContDiffAt \u2102 k (fun s : \u2102 => -(Real.eulerMascheroniConstant : \u2102) - 1 / s)\n ((1 : \u2102) / 2) := by\n have h1 : AnalyticAt \u2102 (fun s : \u2102 => 1 / s) ((1 : \u2102) / 2) :=\n analyticAt_const.div analyticAt_id (by norm_num)\n exact (analyticAt_const.sub h1).contDiffAt\n have hcfB : ContDiffAt \u2102 k (fun s => \u2211' m : \u2115, dpsiTermC s m) ((1 : \u2102) / 2) := by\n have h2 : AnalyticOnNhd \u2102 (fun s => \u2211' m : \u2115, dpsiTermC s m) dpsiDomain :=\n dpsiTermC_tsum_differentiableOn.analyticOnNhd dpsiDomain_isOpen\n exact (h2 _ dpsiDomain_half).contDiffAt\n rw [iteratedDeriv_add hcfA hcfB]\n have hA : iteratedDeriv k (fun s : \u2102 => -(Real.eulerMascheroniConstant : \u2102) - 1 / s)\n ((1 : \u2102) / 2) = ((-1 : \u2102)) ^ (k + 1) * (k ! : \u2102) * ((1 : \u2102) / 2) ^ (-(k : \u2124) - 1) := by\n have heq : (fun s : \u2102 => -(Real.eulerMascheroniConstant : \u2102) - 1 / s) =\n (fun _ : \u2102 => -(Real.eulerMascheroniConstant : \u2102)) + fun s => -(1 / (s + 0)) := by\n funext s\n simp [Pi.add_apply]\n ring\n rw [heq]\n have hcf1 : ContDiffAt \u2102 k (fun _ : \u2102 => -(Real.eulerMascheroniConstant : \u2102)) ((1 : \u2102) / 2) :=\n contDiff_const.contDiffAt\n have hcf2 : ContDiffAt \u2102 k (fun s : \u2102 => -(1 / (s + 0))) ((1 : \u2102) / 2) := by\n have h2 : AnalyticAt \u2102 (fun s : \u2102 => s + 0) ((1 : \u2102) / 2) :=\n analyticAt_id.add analyticAt_const\n have h3 : AnalyticAt \u2102 (fun s : \u2102 => 1 / (s + 0)) ((1 : \u2102) / 2) :=\n analyticAt_const.div h2 (by simpa using (by norm_num : ((1 : \u2102) / 2) \u2260 0))\n exact h3.neg.contDiffAt\n rw [iteratedDeriv_add hcf1 hcf2]\n rw [iteratedDeriv_const, if_neg (by omega : k \u2260 0)]\n rw [iteratedDeriv_neg_one_div_add_const k 0 (by simp)]\n rw [add_zero, zero_add, hsign]\n have hB : iteratedDeriv k (fun s => \u2211' m : \u2115, dpsiTermC s m) ((1 : \u2102) / 2) =\n ((-1 : \u2102)) ^ (k + 1) * (k ! : \u2102) * \u2211' m : \u2115, ((1 / 2 : \u2102) + \u2191m + 1) ^ (-(k : \u2124) - 1) := by\n rw [\u2190 iteratedDerivWithin_of_isOpen dpsiDomain_isOpen dpsiDomain_half]\n rw [iteratedDerivWithin_tsum_dpsiTermC k hk]\n rw [tsum_mul_left]\n rw [hsign]\n rw [hA, hB]\n rw [\u2190 mul_add]\n congr 2\n have hsum := summable_zpow_half_add_nat k hk\n rw [tsum_eq_zero_add hsum]\n apply Finset.sum_congr rfl |>.trans' |>.symm -- placeholder, will fix\n sorry\nEOF\ncd research/lean/NguyenRH1 && export PATH=\"$HOME/.elan/bin:$PATH\" && lake env lean NguyenRH1/LiDigamma.lean 2>&1 | grep -v \"^$\" | head -20",
"description": "Append section 9 skeleton and compile",
"timeout": 600000
}
result 2026-08-22 09:30:04Z → 2026-08-22 09:30:30Z
NguyenRH1/LiDigamma.lean:794:34: error(lean.unknownIdentifier): Unknown identifier `summable_div_add_one_pow`
NguyenRH1/LiDigamma.lean:801:6: error: No goals to be solved
NguyenRH1/LiDigamma.lean:819:26: error(lean.unknownIdentifier): Unknown identifier `dpsiTermC`
NguyenRH1/LiDigamma.lean:829:49: error(lean.unknownIdentifier): Unknown identifier `dpsiTermC`
NguyenRH1/LiDigamma.lean:815:90: error: unsolved goals
DinfC : ℂ → ℂ
k : ℕ
hk : 1 ≤ k
hsign : ∀ (k : ℕ), -(-1) ^ k = (-1) ^ (k + 1)
hsplit : DinfC = (fun s => -↑eulerMascheroniConstant - 1 / s) + fun s => ∑' (m : ℕ), sorry
hcfA : ContDiffAt ℂ (↑k) (fun s => -↑eulerMascheroniConstant - 1 / s) (1 / 2)
⊢ iteratedDeriv k ((fun s => -↑eulerMascheroniConstant - 1 / s) + fun s => ∑' (m : ℕ), sorry) (1 / 2) =
(-1) ^ (k + 1) * ↑k ! * ∑' (m : ℕ), (1 / 2 + ↑m) ^ (-↑k - 1)
raw content_json (database row)
[{"type":"thinking","thinking":"Clean again. Now the final sections: 9 (DinfC iterated values at 1/2 + digamma transfer) and 10 (reindexing + affine comp + τ_j assembly). Let me write Section 9 now — carefully, applying the lessons (beta-redexes, function-level forms, cast ascriptions).\n\nSection 9:\n```lean\n/-! ## 9. The polygamma values of DinfC and Complex.digamma at 1/2 -/\n\n/-- The k-th iterated derivative of DinfC at 1/2 (k ≥ 1). -/\nlemma iteratedDeriv_DinfC_half (k : ℕ) (hk : 1 ≤ k) :\n iteratedDeriv k DinfC ((1 : ℂ) / 2) =\n -((-1 : ℂ)) ^ k * (k ! : ℂ) * ∑' m : ℕ, ((1 / 2 : ℂ) + ↑m) ^ (-(k : ℤ) - 1) := by\n -- DinfC = A + B as functions\n have hsplit : DinfC = (fun s : ℂ => -(Real.eulerMascheroniConstant : ℂ) - 1 / s) +\n (fun s => ∑' m : ℕ, dpsiTermC s m) := by\n funext s\n rw [DinfC]\n simp [Pi.add_apply]\n rw [hsplit]\n have hcfA : ContDiffAt ℂ k (fun s : ℂ => -(Real.eulerMascheroniConstant : ℂ) - 1 / s)\n ((1 : ℂ) / 2) := by\n have h1 : AnalyticAt ℂ (fun s : ℂ => 1 / s) ((1 : ℂ) / 2) :=\n analyticAt_const.div analyticAt_id (by norm_num)\n exact (analyticAt_const.sub h1).contDiffAt\n have hcfB : ContDiffAt ℂ k (fun s => ∑' m : ℕ, dpsiTermC s m) ((1 : ℂ) / 2) := by\n have h := dpsiTermC_tsum_differentiableOn\n -- DifferentiableOn on the open ball ⟹ AnalyticAt at 1/2 ⟹ ContDiffAt\n have h2 : AnalyticOnNhd ℂ (fun s => ∑' m : ℕ, dpsiTermC s m) dpsiDomain :=\n h.analyticOnNhd dpsiDomain_isOpen\n exact (h2 _ dpsiDomain_half).contDiffAt\n rw [iteratedDeriv_add hcfA hcfB]\n -- the A part\n have hA : iteratedDeriv k (fun s : ℂ => -(Real.eulerMascheroniConstant : ℂ) - 1 / s)\n ((1 : ℂ) / 2) = -((-1 : ℂ)) ^ k * (k ! : ℂ) * (((1 : ℂ) / 2)) ^ (-(k : ℤ) - 1) := by\n have heq : (fun s : ℂ => -(Real.eulerMascheroniConstant : ℂ) - 1 / s) =\n (fun _ : ℂ => -(Real.eulerMascheroniConstant : ℂ)) + fun s => -(1 / (s + 0)) := by\n funext s\n simp [Pi.add_apply]\n ring\n rw [heq]\n have hcf1 : ContDiffAt ℂ k (fun _ : ℂ => -(Real.eulerMascheroniConstant : ℂ)) _ :=\n contDiff_const.contDiffAt\n have hcf2 : ContDiffAt ℂ k (fun s : ℂ => -(1 / (s + 0))) ((1 : ℂ) / 2) := by\n have h2 : AnalyticAt ℂ (fun s : ℂ => s + 0) ((1 : ℂ) / 2) :=\n analyticAt_id.add analyticAt_const\n have h3 : AnalyticAt ℂ (fun s : ℂ => 1 / (s + 0)) ((1 : ℂ) / 2) :=\n analyticAt_const.div h2 (by simpa using (by norm_num : ((1 : ℂ) / 2) ≠ 0))\n exact h3.neg.contDiffAt\n rw [iteratedDeriv_add hcf1 hcf2]\n rw [iteratedDeriv_const, if_neg (by omega : k ≠ 0)]\n rw [iteratedDeriv_neg_one_div_add_const k 0 (by simp; norm_num : ((1:ℂ)/2) + 0 ≠ 0)]\n rw [add_zero, zero_add]\n -- the B part: from iteratedDerivWithin → iteratedDeriv (open domain)\n have hB : iteratedDeriv k (fun s => ∑' m : ℕ, dpsiTermC s m) ((1 : ℂ) / 2) =\n -((-1 : ℂ)) ^ k * (k ! : ℂ) * ∑' m : ℕ, ((1 / 2 : ℂ) + ↑m + 1) ^ (-(k : ℤ) - 1) := by\n rw [← iteratedDerivWithin_of_isOpen dpsiDomain_isOpen dpsiDomain_half]\n rw [iteratedDerivWithin_tsum_dpsiTermC k hk]\n rw [tsum_mul_left] -- pull −(−1)^k·k! out of the tsum — wait the tsum's terms have the factor — tsum_mul_left : ∑' b, a * f b = a * ∑' b, f b — the per-term: −(−1)^k·↑k!·X_m — as a * f m with a := −(−1)^k·↑k!... — the term is written `-(−1)^k * ↑k! * X` — that's (−(−1)^k * ↑k!) * X ✓ so a := −(−1)^k * ↑k! — hmm — wait the iteratedDerivWithin_tsum_dpsiTermC's conclusion: ∑' m, −(−1)^k * ↑k! * ((1/2:ℂ)+↑m+1)^(−↑k−1) — so the tsum's function is fun m => (−(−1)^k * ↑k!) * X_m — tsum_mul_left gives (−(−1)^k*↑k!) * ∑' X_m ✓\n rw [hA, hB]\n -- combine the two series: (1/2)^{−(k+1)} + Σ_{m≥0}(3/2+m)^{−(k+1)} = Σ_{m≥0}(1/2+m)^{−(k+1)}\n rw [← tsum_mul_left] -- fold the factor back? hmm — I have C·X₀-form + C·ΣY — combine: C·(X₀ + ΣY) via ← mul_add\n rw [← mul_add]\n congr 2 -- the −(−1)^k·k! factor\n -- (1/2)^{−(k+1)} + Σ_{m≥0}(1/2+↑m+1)^{−(k+1)} = Σ_{m≥0}(1/2+↑m)^{−(k+1)}\n ...\n```\nThe combine step: after rw [hA, hB], the goal:\nC·(1/2)^{−(k+1)} + C·Σ_{m≥0}(1/2+↑m+1)^{−(k+1)} = C·Σ_{m≥0}(1/2+↑m)^{−(k+1)} where C := −(−1)^k·↑k!.\nrw [← mul_add]: LHS → C·((1/2)^{−(k+1)} + Σ (1/2+↑m+1)^{...}) ✓ then congr 1: C·X = C·Y → X = Y:\n(1/2)^{−(k+1)} + Σ_{m≥0}(1/2+↑m+1)^{−(k+1)} = Σ_{m≥0}(1/2+↑m)^{−(k+1)}\nRHS via tsum_eq_zero_add: Σ_{m≥0} f m = f 0 + Σ_{m≥0} f (m+1): `tsum_eq_zero_add (hf : Summable f) : ∑' n, f n = f 0 + ∑' n, f (n+1)` ✓ — with f m := (1/2+↑m)^{−(k+1)}: f 0 = (1/2)^{−(k+1)} ✓ and f (m+1) = (1/2 + ↑(m+1))^{−(k+1)} = (1/2 + ↑m + 1)^{−(k+1)} ✓ (↑(m+1) = ↑m + 1 push_cast ✓). The Summable f: the (1/2+↑m)^{−(k+1)} series — summable (norm ~ 1/m^{k+1} ✓ via the M-test dominator — need a small summability lemma: Summable (fun m => ((1/2:ℂ)+↑m)^{−(k+1):ℤ}) — via of_norm_bounded with 1/(m+1)²-family... — hmm — need it. |(1/2+↑m)^{−(k+1)}| = (1/2+m)^{−(k+1)} ≤ 1/(m+1/2)^{k+1} ≤ 2^{k+1}/(2m+1)^{k+1}... — let me bound: (1/2 + m) ≥ (m+1)/2 ⟹ (1/2+m)^{k+1} ≥ (m+1)^{k+1}/2^{k+1} ⟹ the inverse ≤ 2^{k+1}/(m+1)^{k+1} ✓ summable ✓. So:\n```lean\n have hsum0 : Summable (fun m : ℕ => ((1 / 2 : ℂ) + ↑m) ^ (-(k : ℤ) - 1)) := by\n apply Summable.of_norm_bounded (summable_div_add_one_pow (2^(k+1)) (k+1) (by omega))\n intro m\n ... ‖(1/2+↑m)^{−(k+1)}‖ ≤ 2^{k+1}/(m+1)^{k+1}\n```\nThis needs the norm chains again — ~25 lines. OK.\n\nThe final algebra: −(−1)^k = (−1)^{k+1}: pow_succ: (−1)^{k+1} = (−1)^k·(−1) = −(−1)^k ✓ — so the C factor −(−1)^k·↑k! = (−1)^{k+1}·↑k! via pow_succ + ring.\n\nHmm — but wait — my target statement in iteratedDeriv_DinfC_half: I wrote the RHS as −(−1)^k·k!·Σ — let me keep that form (avoid the sign flip here; do it at the assembly). Actually for the ASSEMBLY I want (−1)^{j+1}·j!·lagariasA(j+1) — so the −(−1)^j = (−1)^{j+1} flip happens there. Let me state iteratedDeriv_DinfC_half with the form `((-1:ℂ))^(k+1) * (k!:ℂ) * ∑' m, ((1/2:ℂ)+↑m)^(−(k:ℤ)−1)` — absorbing the sign. So hA/hB with the (−1)^{k+1} forms: −(−1)^k = (−1)^{k+1} via:\n```lean\n have hsign : -((-1 : ℂ)) ^ k = (-1 : ℂ) ^ (k + 1) := by rw [pow_succ]; ring\n```\n✓.\n\nOK this section is getting really long and it's past midnight. Let me write Sections 9+10 carefully in one append and grind through the compile errors. Given the number of fiddly steps, let me be extra careful with forms. Actually — let me simplify the structure of the final assembly: skip the Within-machinery form and directly state the DinfC value lemma with the (1/2+↑m) series, then the digamma transfer, then the reindexing as a separate lemma, then the final τ-assembly as the capstone in LiArchimedean.lean.","signature":""},{"type":"text","text":"Clean. Now the final push — Sections 9–10: the values at 1/2, the digamma transfer, and the reindexing to lagariasA."},{"type":"tool_use","id":"Bash_469","name":"Bash","input":{"command":"cd \"D:/Python/Quantum\" && cat >> research/lean/NguyenRH1/NguyenRH1/LiDigamma.lean << 'EOF'\n\n/-! ## 9. The values at 1/2 and the transfer to digamma -/\n\n/-- The (1/2 + m)-power series is summable (norm ≤ 2^{k+1}/(m+1)^{k+1}). -/\nlemma summable_zpow_half_add_nat (k : ℕ) (hk : 1 ≤ k) :\n Summable (fun m : ℕ => ((1 / 2 : ℂ) + ↑m) ^ (-(k : ℤ) - 1)) := by\n apply Summable.of_norm_bounded (summable_div_add_one_pow (2 ^ (k + 1)) (k + 1) (by omega))\n intro m\n have hpos : (0 : ℝ) < (m : ℝ) + 1 / 2 := by positivity\n have h1 : ‖((1 / 2 : ℂ) + ↑m)‖ = (m : ℝ) + 1 / 2 := by\n have e : ((1 / 2 : ℂ) + ↑m) = ↑((m : ℝ) + 1 / 2) := by push_cast; ring\n rw [e, Complex.norm_real, Real.norm_eq_abs, abs_of_nonneg hpos.le]\n rw [norm_zpow, h1]\n rw [show (-(k : ℤ) - 1 : ℤ) = -(((k + 1 : ℕ) : ℤ)) by push_cast; ring, zpow_neg, zpow_natCast]\n rw [div_eq_mul_inv, ← one_div, ← one_div]\n apply one_div_le_one_div_of_le (by positivity)\n have h2 : ((m : ℝ) + 1) ^ (k + 1) ≤ 2 ^ (k + 1) * ((m + 1 / 2 : ℝ)) ^ (k + 1) := by\n rw [show (2 : ℝ) ^ (k + 1) * ((m + 1 / 2 : ℝ)) ^ (k + 1) =\n (2 * (m + 1 / 2 : ℝ)) ^ (k + 1) by rw [mul_pow]]\n apply pow_le_pow_left₀ (by positivity : (0 : ℝ) ≤ (m : ℝ) + 1)\n · ring_nf\n linarith [Nat.cast_nonneg (α := ℝ) m]\n exact h2\n\n/-- The polygamma values of DinfC at 1/2 (j ≥ 1). -/\nlemma iteratedDeriv_DinfC_half (k : ℕ) (hk : 1 ≤ k) :\n iteratedDeriv k DinfC ((1 : ℂ) / 2) =\n ((-1 : ℂ)) ^ (k + 1) * (k ! : ℂ) * ∑' m : ℕ, ((1 / 2 : ℂ) + ↑m) ^ (-(k : ℤ) - 1) := by\n have hsign : ∀ k : ℕ, -((-1 : ℂ)) ^ k = (-1 : ℂ) ^ (k + 1) := fun k => by\n rw [pow_succ]; ring\n have hsplit : DinfC = (fun s : ℂ => -(Real.eulerMascheroniConstant : ℂ) - 1 / s) +\n (fun s => ∑' m : ℕ, dpsiTermC s m) := by\n funext s\n rw [DinfC]\n simp [Pi.add_apply]\n rw [hsplit]\n have hcfA : ContDiffAt ℂ k (fun s : ℂ => -(Real.eulerMascheroniConstant : ℂ) - 1 / s)\n ((1 : ℂ) / 2) := by\n have h1 : AnalyticAt ℂ (fun s : ℂ => 1 / s) ((1 : ℂ) / 2) :=\n analyticAt_const.div analyticAt_id (by norm_num)\n exact (analyticAt_const.sub h1).contDiffAt\n have hcfB : ContDiffAt ℂ k (fun s => ∑' m : ℕ, dpsiTermC s m) ((1 : ℂ) / 2) := by\n have h2 : AnalyticOnNhd ℂ (fun s => ∑' m : ℕ, dpsiTermC s m) dpsiDomain :=\n dpsiTermC_tsum_differentiableOn.analyticOnNhd dpsiDomain_isOpen\n exact (h2 _ dpsiDomain_half).contDiffAt\n rw [iteratedDeriv_add hcfA hcfB]\n have hA : iteratedDeriv k (fun s : ℂ => -(Real.eulerMascheroniConstant : ℂ) - 1 / s)\n ((1 : ℂ) / 2) = ((-1 : ℂ)) ^ (k + 1) * (k ! : ℂ) * ((1 : ℂ) / 2) ^ (-(k : ℤ) - 1) := by\n have heq : (fun s : ℂ => -(Real.eulerMascheroniConstant : ℂ) - 1 / s) =\n (fun _ : ℂ => -(Real.eulerMascheroniConstant : ℂ)) + fun s => -(1 / (s + 0)) := by\n funext s\n simp [Pi.add_apply]\n ring\n rw [heq]\n have hcf1 : ContDiffAt ℂ k (fun _ : ℂ => -(Real.eulerMascheroniConstant : ℂ)) ((1 : ℂ) / 2) :=\n contDiff_const.contDiffAt\n have hcf2 : ContDiffAt ℂ k (fun s : ℂ => -(1 / (s + 0))) ((1 : ℂ) / 2) := by\n have h2 : AnalyticAt ℂ (fun s : ℂ => s + 0) ((1 : ℂ) / 2) :=\n analyticAt_id.add analyticAt_const\n have h3 : AnalyticAt ℂ (fun s : ℂ => 1 / (s + 0)) ((1 : ℂ) / 2) :=\n analyticAt_const.div h2 (by simpa using (by norm_num : ((1 : ℂ) / 2) ≠ 0))\n exact h3.neg.contDiffAt\n rw [iteratedDeriv_add hcf1 hcf2]\n rw [iteratedDeriv_const, if_neg (by omega : k ≠ 0)]\n rw [iteratedDeriv_neg_one_div_add_const k 0 (by simp)]\n rw [add_zero, zero_add, hsign]\n have hB : iteratedDeriv k (fun s => ∑' m : ℕ, dpsiTermC s m) ((1 : ℂ) / 2) =\n ((-1 : ℂ)) ^ (k + 1) * (k ! : ℂ) * ∑' m : ℕ, ((1 / 2 : ℂ) + ↑m + 1) ^ (-(k : ℤ) - 1) := by\n rw [← iteratedDerivWithin_of_isOpen dpsiDomain_isOpen dpsiDomain_half]\n rw [iteratedDerivWithin_tsum_dpsiTermC k hk]\n rw [tsum_mul_left]\n rw [hsign]\n rw [hA, hB]\n rw [← mul_add]\n congr 2\n have hsum := summable_zpow_half_add_nat k hk\n rw [tsum_eq_zero_add hsum]\n apply Finset.sum_congr rfl |>.trans' |>.symm -- placeholder, will fix\n sorry\nEOF\ncd research/lean/NguyenRH1 && export PATH=\"$HOME/.elan/bin:$PATH\" && lake env lean NguyenRH1/LiDigamma.lean 2>&1 | grep -v \"^$\" | head -20","description":"Append section 9 skeleton and compile","timeout":600000},"extra_content":null}]