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

logDeriv_poles_eq_divisor_support

PrimeNumberTheoremAnd.RectangleArgumentPrinciple · PrimeNumberTheoremAnd/RectangleArgumentPrinciple.lean:212 to 252

Mathematical statement

Exact Lean statement

theorem logDeriv_poles_eq_divisor_support
    {f : ℂ → ℂ} {R : Set ℂ}
    (hf : MeromorphicOn f R) (hlog : MeromorphicOn (logDeriv f) R)
    (hfinite_order : ∀ p ∈ R, meromorphicOrderAt f p ≠ ⊤) :
    R ∩ {p | meromorphicOrderAt (logDeriv f) p < 0} =
      (MeromorphicOn.divisor f R).support

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem logDeriv_poles_eq_divisor_support    {f : ℂ  ℂ} {R : Set ℂ}    (hf : MeromorphicOn f R) (hlog : MeromorphicOn (logDeriv f) R)    (hfinite_order :  p  R, meromorphicOrderAt f p  ⊤) :    R ∩ {p | meromorphicOrderAt (logDeriv f) p < 0} =      (MeromorphicOn.divisor f R).support := by  classical  let D := MeromorphicOn.divisor f R  ext p  constructor  · intro hp    rcases hp with hpR, hpneg    obtain n, hn := WithTop.ne_top_iff_exists.mp (hfinite_order p hpR)    by_cases hn0 : n = 0    · have hord0 : meromorphicOrderAt f p = (0 : WithTop ) := by        simpa [hn0] using hn.symm      have hnonneg :=        logDeriv_meromorphicOrderAt_nonneg_of_order_zero (hf p hpR) (hlog p hpR) hord0      exact False.elim (not_lt_of_ge hnonneg hpneg)    · have hpD_ne : D p  0 := by        change (MeromorphicOn.divisor f R) p  0        rw [MeromorphicOn.divisor_apply hf hpR,  hn]        simp [hn0]      simp [D, Function.mem_support, hpD_ne]  · intro hpD    have hpR : p  R := (MeromorphicOn.divisor f R).supportWithinDomain hpD    have hpD_ne : D p  0 := by      simpa [D, Function.mem_support] using hpD    change (MeromorphicOn.divisor f R) p  0 at hpD_ne    rw [MeromorphicOn.divisor_apply hf hpR] at hpD_ne    obtain n, hn := WithTop.ne_top_iff_exists.mp (hfinite_order p hpR)    have hn0 : n  0 := by      intro hn0      exact hpD_ne (by rw [ hn]; simp [hn0])    have hneg_one :=      logDeriv_meromorphicOrderAt_eq_neg_one_of_order_ne_zero (hf p hpR) (hlog p hpR)        hn.symm hn0    refine hpR, ?_    change meromorphicOrderAt (logDeriv f) p < 0    rw [hneg_one]    exact WithTop.coe_lt_coe.2 (by norm_num : (-1 : ) < 0)