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

Complex.Hadamard.norm_inv_weierstrassFactor_le_exp_near

PrimeNumberTheoremAnd.Mathlib.Analysis.Complex.CartanInverseFactorBound · PrimeNumberTheoremAnd/Mathlib/Analysis/Complex/CartanInverseFactorBound.lean:69 to 110

Mathematical statement

Exact Lean statement

lemma norm_inv_weierstrassFactor_le_exp_near
    {m : ℕ} {τ r : ℝ} {u a : ℂ}
    (hur : ‖u‖ = r) (ha : a ≠ 0) (hr : r ≠ ‖a‖)
    (hmτ : (m : ℝ) ≤ τ) :
    ‖(weierstrassFactor m (u / a))⁻¹‖
      ≤ Real.exp (CartanBound.φ (r / ‖a‖) + (m : ℝ) * (1 + (r / ‖a‖) ^ τ))

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma norm_inv_weierstrassFactor_le_exp_near    {m : } {τ r : } {u a : ℂ}    (hur : ‖u‖ = r) (ha : a  0) (hr : r  ‖a‖)    (hmτ : (m : )  τ) :    ‖(weierstrassFactor m (u / a))⁻¹‖       Real.exp (CartanBound.φ (r / ‖a‖) + (m : ) * (1 + (r / ‖a‖) ^ τ)) := by  have hlog_one :      Real.log ‖(1 : ℂ) - u / a‖  -CartanBound.φ (r / ‖a‖) :=    CartanBound.log_norm_one_sub_div_ge_neg_phi (hur := hur) (ha := ha) (hr := hr)  have hbase :=    log_norm_weierstrassFactor_ge_log_norm_one_sub_sub (m := m) (z := (u / a))  have hlogE :      Real.log ‖weierstrassFactor m (u / a)‖         -CartanBound.φ (r / ‖a‖) - (m : ) * max 1 (‖u / a‖ ^ m) := by    have hpls :=      norm_partialLogSum_le_nat_mul_max_one_norm_pow m (u / a)    linarith [hbase, hlog_one, hpls]  have hmax :      max 1 (‖u / a‖ ^ m)  1 + (r / ‖a‖) ^ τ :=    max_one_norm_div_pow_le_one_add_rpow (m := m) (τ := τ) (r := r) (u := u) (a := a) hur hmτ  have hneglog :      -Real.log ‖weierstrassFactor m (u / a)‖         CartanBound.φ (r / ‖a‖) + (m : ) * (1 + (r / ‖a‖) ^ τ) := by    have : -Real.log ‖weierstrassFactor m (u / a)‖         CartanBound.φ (r / ‖a‖) + (m : ) * max 1 (‖u / a‖ ^ m) := by      linarith [hlogE]    have hm0 : 0  (m : ) := by exact_mod_cast (Nat.zero_le m)    exact this.trans (by nlinarith [mul_le_mul_of_nonneg_left hmax hm0])  have hpos : 0 < ‖weierstrassFactor m (u / a)‖ := by    have : weierstrassFactor m (u / a)  0 := by      intro h0      have : u / a = (1 : ℂ) := (weierstrassFactor_eq_zero_iff m (u / a)).1 h0      have : u = a := (div_eq_one_iff_eq ha).1 this      have : r = ‖a‖ := by simpa [this] using hur.symm      exact (hr this).elim    exact norm_pos_iff.2 this  have hEq :      ‖(weierstrassFactor m (u / a))⁻¹‖ =        Real.exp (-Real.log ‖weierstrassFactor m (u / a)‖) := by    simp [norm_inv, Real.exp_neg, Real.exp_log hpos]  have := Real.exp_le_exp.2 hneglog  simpa [hEq] using this