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

CH2.Phi_star.poles_simple

PrimeNumberTheoremAnd.IEANTN.CH2.CH2_part1 · PrimeNumberTheoremAnd/IEANTN/CH2/CH2_part1.lean:1890 to 1921

Mathematical statement

Exact Lean statement

@[blueprint
  "Phi-star-poles-simple"
  (title := "$\\Phi^{\\pm,\\ast}_\\nu$ poles simple")
  (statement := /--
  The poles of $$\Phi^{\pm,\ast}_\nu(z)$$ are all simple.
  -/)
  (proof := /-- This follows from the definition of $\Phi^{\pm,\ast}_\nu$ and the properties of the $B^\pm$ function. -/)
  (latexEnv := "lemma")]
theorem Phi_star.poles_simple (ν ε : ℝ) (hν : ν > 0) (z : ℂ) :
    meromorphicOrderAt (Phi_star ν ε) z = -1 ↔ ∃ n : ℤ, n ≠ 0 ∧ z = n - I * ν / (2 * π)

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
@[blueprint  "Phi-star-poles-simple"  (title := "$\\Phi^{\\pm,\\ast}_\\nu$ poles simple")  (statement := /--  The poles of $$\Phi^{\pm,\ast}_\nu(z)$$ are all simple.  -/)  (proof := /-- This follows from the definition of $\Phi^{\pm,\ast}_\nu$ and the properties of the $B^\pm$ function. -/)  (latexEnv := "lemma")]theorem Phi_star.poles_simple (ν ε : ) (hν : ν > 0) (z : ℂ) :    meromorphicOrderAt (Phi_star ν ε) z = -1   n : , n  0  z = n - I * ν / (2 * π) := by  constructor  · exact fun h  (Phi_star.poles ν ε hν z).mp (h ▸ by decide)  · rintro n, hn, rfl    set z₀ := (n : ℂ) - I * ν / (2 * π)    have hsub : MeromorphicAt (· - z₀) z₀ := by fun_prop    have hf : MeromorphicAt (Phi_star ν ε) z₀ := by fun_prop    have heq : (fun z  (z - z₀) * Phi_star ν ε z) =ᶠ[nhdsWithin z₀ {z₀}ᶜ] ((· - z₀) * Phi_star ν ε) :=      Filter.Eventually.of_forall fun _  rfl    have hord₀ : meromorphicOrderAt ((· - z₀) * Phi_star ν ε) z₀ = 0 := by      rw [ tendsto_ne_zero_iff_meromorphicOrderAt_eq_zero (hsub.mul hf)]      exact _, by simp [hn, pi_ne_zero], (Phi_star.residue ν ε hν n hn).congr' heq    have hord₁ : meromorphicOrderAt (· - z₀) z₀ = (1 : ) := by      rw [meromorphicOrderAt_eq_int_iff hsub]      exact 1, analyticAt_const, one_ne_zero, by simp    rw [meromorphicOrderAt_mul hsub hf, hord₁] at hord₀    obtain m, hm := WithTop.ne_top_iff_exists.mp      (by rintro h; simp [h] at hord₀ : meromorphicOrderAt (Phi_star ν ε) z₀  ⊤)    rw [ hm] at hord₀     have h1 : ((1 : ) + m : WithTop ) = (1 + m : ) := by push_cast; ring_nf    rw [h1] at hord₀    have : 1 + m = 0 := by exact_mod_cast hord₀    change (m : WithTop ) = (-1 : ); congr 1; omega