Skip to main content
AlexKontorovich/PrimeNumberTheoremAnd
Source indexedlemma · leanprover/lean4:v4.32.0

HasDerivAtZeta0

PrimeNumberTheoremAnd.ZetaBounds · PrimeNumberTheoremAnd/ZetaBounds.lean:1284 to 1299

Mathematical statement

Exact Lean statement

lemma HasDerivAtZeta0 {N : ℕ} (Npos : 0 < N) {s : ℂ} (reS_pos : 0 < s.re) (s_ne_one : s ≠ 1) :
    HasDerivAt (ζ₀ N) (ζ₀' N s) s

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma HasDerivAtZeta0 {N : } (Npos : 0 < N) {s : ℂ} (reS_pos : 0 < s.re) (s_ne_one : s  1) :    HasDerivAt (ζ₀ N) (ζ₀' N s) s := by  unfold riemannZeta0 ζ₀'  apply HasDerivAt.fun_sum ?_ |>.add ?_ |>.add ?_ |>.add ?_  · intro n _    convert! hasDerivAt_neg' s |>.const_cpow (c := n) (by aesop) using 1    all_goals (ring_nf; simp [cpow_neg])  · convert! HasDerivAt.comp (h₂ := fun z  -(N : ℂ) ^ z / z) (h := fun z  1 - z) (h' := -1)      (h₂' := ((N : ℂ) ^ (1 - s) / (1 - s) ^ 2 - Real.log (N : ) * (N : ℂ) ^ (1 - s) / (1 - s)))      (x := s) ?_ ?_ using 1    · ring_nf    · exact HasDerivAt_cpow_over_var N (by rw [sub_ne_zero]; exact s_ne_one.symm)    · convert! hasDerivAt_const s _ |>.sub (hasDerivAt_id _) using 1; simp  · convert! HasDerivAt_neg_cpow_over2 Npos s using 1; simp only [natCast_log, neg_mul, neg_neg]  · simp_rw [div_cpow_eq_cpow_neg, neg_add,  sub_eq_add_neg]    convert! hasDerivAt_id s |>.mul <| hasDerivAt_Zeta0Integral Npos reS_pos using 1