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

CH2.deriv_z_coth_z_bound_boundary

PrimeNumberTheoremAnd.IEANTN.CH2.CH2_part1 · PrimeNumberTheoremAnd/IEANTN/CH2/CH2_part1.lean:5852 to 5899

Mathematical statement

Exact Lean statement

lemma deriv_z_coth_z_bound_boundary (x : ℝ) :
    ‖deriv (fun z : ℂ ↦ z * coth z) (↑x + ↑(π / 4) * Complex.I)‖ < 1

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma deriv_z_coth_z_bound_boundary (x : ) :    ‖deriv (fun z : ℂ  z * coth z) (↑x + ↑(π / 4) * Complex.I)‖ < 1 := by  set z₀ := (↑x + ↑(π / 4) * Complex.I)  set f := fun z : ℂ  z * coth z  have h_snz : Complex.sinh z₀  0 := by    apply sinh_ne_zero_of_im    intro k    show z₀.im  k * π    simp [z₀]    have : π  0 := Real.pi_pos.ne.symm    field_simp [this]    norm_cast    intro h    have : (k * 4 : ) = (1 : ) := by      norm_cast at h      ring_nf at h      exact_mod_cast h.symm    omega  have h_deriv_eq : deriv f z₀ = (Complex.sinh (2 * z₀) / 2 - z₀) / (Complex.sinh z₀ ^ 2) :=    deriv_z_coth_z_eq_alt z₀ h_snz  have h_normSq : ‖deriv f z₀‖^2 = 1 -* Real.cosh (2 * x) - π ^ 2 / 4 - 4 * x ^ 2) / (Real.cosh (2 * x) ^ 2) := by    rw [h_deriv_eq, norm_div, div_pow, Complex.sq_norm, Complex.sq_norm]    have h_snz_normSq : Complex.normSq (Complex.sinh z₀) = Real.cosh (2 * x) / 2 := by      rw [ Complex.sq_norm, normSq_sinh]      have : z₀.re = x := by simp [z₀]      have : z₀.im = π / 4 := by simp [z₀]      rw [this, ‹z₀.re = x›, Real.sin_pi_div_four]      have : (√2 / 2 : ) ^ 2 = 1 / 2 := by        rw [div_pow, Real.sq_sqrt (by positivity)]        norm_num      rw [this, Real.sinh_sq, Real.cosh_two_mul, Real.cosh_sq' x]      field_simp; ring    have h_num : Complex.sinh (2 * z₀) / 2 - z₀ = -x + (Real.cosh (2 * x) / 2 - π / 4) * Complex.I := by      rw [show 2 * z₀ = ↑(2 * x) + ↑(π / 2) * Complex.I by simp [z₀]; ring,          Complex.sinh_add, Complex.sinh_mul_I, Complex.cosh_mul_I]      norm_cast      rw [Real.cos_pi_div_two, Real.sin_pi_div_two]      simp [z₀]; ring    rw [h_num, pow_two, Complex.normSq_mul, h_snz_normSq]    rw [show -↑x + (↑(Real.cosh (2 * x)) / 2 - ↑π / 4) * Complex.I =             ↑(-x) + ↑(Real.cosh (2 * x) / 2 - π / 4) * Complex.I by push_cast; simp,        Complex.normSq_add_mul_I]    field_simp [(Real.cosh_pos (2 * x)).ne.symm]    ring  have h_pos : 0 <* Real.cosh (2 * x) - π ^ 2 / 4 - 4 * x ^ 2) := pi_cosh_two_mul_sub_bounds x  have h_normSq_lt : ‖deriv f z₀‖^2 < 1 := by    rw [h_normSq]; linarith [div_pos h_pos (by positivity : 0 < Real.cosh (2 * x) ^ 2)]  nlinarith [norm_nonneg (deriv f z₀), sq_nonneg (‖deriv f z₀‖)]