All proofs
Project-declaredLean 4.32.0 · mathlib@81a5d257c8e4

Rectangle Integral log Deriv eq sum meromorphic Order At

rectangleIntegral_logDeriv_eq_sum_meromorphicOrderAt

Plain-language statement

An argument-principle identity on an axis-parallel rectangle. If ff and its logarithmic derivative f/ff'/f are meromorphic on the rectangle, every point has finite meromorphic order, and no zero or pole of ff lies on the boundary, then 12πiRf(z)f(z)dz=pRordp(f).\frac{1}{2\pi i}\oint_{\partial R}\frac{f'(z)}{f(z)}\,dz=\sum_{p\in R}\operatorname{ord}_p(f). Thus the normalized boundary integral counts zeros positively and poles negatively, with multiplicity.

Exact Lean statement

theorem rectangleIntegral_logDeriv_eq_sum_meromorphicOrderAt
    {f : ℂ → ℂ} {z w : ℂ}
    (zRe_le_wRe : z.re ≤ w.re) (zIm_le_wIm : z.im ≤ w.im)
    (hf : MeromorphicOn f (Rectangle z w))
    (hlog : MeromorphicOn (logDeriv f) (Rectangle z w))
    (hfinite_order : ∀ p ∈ Rectangle z w, meromorphicOrderAt f p ≠ ⊤)
    (hno_boundary :
      Disjoint (RectangleBorder z w) (MeromorphicOn.divisor f (Rectangle z w)).support) :
    RectangleIntegral' (logDeriv f) z w =
      ∑ p ∈
        ((divisor_support_rectangle_finite f z w).toFinset),
          ((MeromorphicOn.divisor f (Rectangle z w)) p : ℂ)

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
theorem rectangleIntegral_logDeriv_eq_sum_meromorphicOrderAt    {f : ℂ  ℂ} {z w : ℂ}    (zRe_le_wRe : z.re  w.re) (zIm_le_wIm : z.im  w.im)    (hf : MeromorphicOn f (Rectangle z w))    (hlog : MeromorphicOn (logDeriv f) (Rectangle z w))    (hfinite_order :  p  Rectangle z w, meromorphicOrderAt f p  ⊤)    (hno_boundary :      Disjoint (RectangleBorder z w) (MeromorphicOn.divisor f (Rectangle z w)).support) :    RectangleIntegral' (logDeriv f) z w =      ∑ p         ((divisor_support_rectangle_finite f z w).toFinset),          ((MeromorphicOn.divisor f (Rectangle z w)) p : ℂ) := by  classical  let R : Set:= Rectangle z w  let D := MeromorphicOn.divisor f R  have hsupport : D.support.Finite := divisor_support_rectangle_finite f z w  have hlog_simple : HasSimplePolesOn (logDeriv f) R :=    logDeriv_hasSimplePolesOn_of_meromorphicOrderAt_ne_top hf hlog hfinite_order  have hlog_poles_eq :      R ∩ {s | meromorphicOrderAt (logDeriv f) s < 0} = D.support := by    simpa [R, D] using      logDeriv_poles_eq_divisor_support (f := f) (R := R) hf hlog hfinite_order  have hlog_no_boundary :      Disjoint (RectangleBorder z w) {s | meromorphicOrderAt (logDeriv f) s < 0} := by    rw [Set.disjoint_left]    intro s hs_border hs_log_pole    have hsR : s  R := by      exact rectangleBorder_subset_rectangle z w hs_border    have hsD : s  D.support := by      rw [ hlog_poles_eq]      exact hsR, hs_log_pole    exact Set.disjoint_left.mp (by simpa [R, D] using hno_boundary) hs_border hsD  have hlog_poles_finite :      (Rectangle z w ∩ {s | meromorphicOrderAt (logDeriv f) s < 0}).Finite := by    simpa [R, D, hlog_poles_eq] using hsupport  have hrect :=    RectangleIntegral'_eq_sumResiduesIn zRe_le_wRe zIm_le_wIm hlog hlog_no_boundary      hlog_poles_finite hlog_simple  rw [hrect, hlog_poles_eq, sumResiduesIn_eq_finset_of_finite hsupport]  refine Finset.sum_congr rfl ?_  intro p hp  have hpD : p  D.support := by    simpa [D] using (hsupport.mem_toFinset.mp hp)  have hpR : p  R := D.supportWithinDomain hpD  have hpD_ne : D p  0 := by    simpa [Function.mem_support] using hpD  have horder_ne_zero_or_top :      meromorphicOrderAt f p  0  meromorphicOrderAt f p := by    change (MeromorphicOn.divisor f R) p  0 at hpD_ne    rw [MeromorphicOn.divisor_apply hf hpR] at hpD_ne    constructor    · intro hzero      exact hpD_ne (by simp [hzero])    · intro htop      exact hpD_ne (by simp [htop])  obtain n, hn :=    WithTop.ne_top_iff_exists.mp horder_ne_zero_or_top.2  have hres :      residue (logDeriv f) p = (n : ℂ) :=    logDeriv_residue_eq_meromorphicOrderAt (hf p hpR) hn.symm  rw [hres]  change (n : ℂ) = ((MeromorphicOn.divisor f R) p : ℂ)  rw [MeromorphicOn.divisor_apply hf hpR,  hn]  simp
Project
Prime Number Theorem and More
License
Apache-2.0
Commit
a93551347dce
Source
PrimeNumberTheoremAnd/RectangleArgumentPrinciple.lean:276-339

Reuse this declaration

Bring the exact result into your workflow

The import identifies the source module. Your project still needs the pinned package dependency shown on this page.

What this badge means

This completion status comes from the project or community source. It has not yet been represented here as an independent rebuild and axiom audit.

Continue in this project

Related declarations

Project-declaredLean 4.32.0

Admissible bound mono

admissible_bound.mono

Plain-language statement

For positive parameters A,B,C,RA,B,C,R, the classical error-bound function A(logxR)Bexp ⁣(ClogxR)A\left(\frac{\log x}{R}\right)^B\exp\!\left(-C\sqrt{\frac{\log x}{R}}\right) is nonincreasing once xexp ⁣(R(2B/C)2)x\ge \exp\!\left(R(2B/C)^2\right).

analytic number theoryprime numbersasymptotics

Source project: Prime Number Theorem and More

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.0

Analytic On div Removable zero

AnalyticOn_divRemovable_zero

Plain-language statement

Let ff be analytic on an open set ss containing 00, and suppose f(0)=0f(0)=0. Define g(z)=f(z)/zg(z)=f(z)/z for z0z\ne0 and g(0)=f(0)g(0)=f'(0). Then the apparent singularity at 00 is removable and gg is analytic throughout ss.

analytic number theoryprime numbersasymptotics

Source project: Prime Number Theorem and More

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.0

Analytic On div Removable zero closed Ball

AnalyticOn_divRemovable_zero_closedBall

Plain-language statement

Suppose R>0R>0 and ff is analytic on the closed disc zR|z|\le R with f(0)=0f(0)=0. Define g(z)=f(z)/zg(z)=f(z)/z for z0z\ne0 and g(0)=f(0)g(0)=f'(0). Then gg is analytic on the entire closed disc, including at the removed singularity.

analytic number theoryprime numbersasymptotics

Source project: Prime Number Theorem and More

Person-level attribution pending.

View proof record