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

Complex.Hadamard.hadamardQuotient_norm_le_exp_on_cartan_circle

PrimeNumberTheoremAnd.Mathlib.Analysis.Complex.HadamardFactorization.Growth · PrimeNumberTheoremAnd/Mathlib/Analysis/Complex/HadamardFactorization/Growth.lean:237 to 344

Source documentation

On a Cartan-admissible circle, the Hadamard quotient is exponentially bounded.

Exact Lean statement

theorem hadamardQuotient_norm_le_exp_on_cartan_circle
    {f H : ℂ → ℂ} {ρ τ : ℝ} {m : ℕ} {Cf : ℝ}
    (hmρ : (m : ℝ) ≤ ρ) (hτ : ρ < τ) (hτ_lt : τ < (m + 1 : ℝ))
    (hτ_nonneg : 0 ≤ τ) (hentire : Differentiable ℂ f)
    (hnot : ∃ z : ℂ, f z ≠ 0)
    (h_sum : Summable (fun p : divisorZeroIndex₀ f (Set.univ : Set ℂ) =>
      ‖divisorZeroIndex₀_val p‖⁻¹ ^ (m + 1)))
    (hsumτ : Summable (fun p : divisorZeroIndex₀ f (Set.univ : Set ℂ) =>
      ‖divisorZeroIndex₀_val p‖⁻¹ ^ τ))
    (hf_boundτ : ∀ z : ℂ, ‖f z‖ ≤ Real.exp (Cf * (1 + ‖z‖) ^ τ))
    (hfactor : ∀ z : ℂ,
      f z =
        H z * z ^ analyticOrderNatAt f 0 *
          divisorCanonicalProduct m f (Set.univ : Set ℂ) z) :
    let Sτ : ℝ

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem hadamardQuotient_norm_le_exp_on_cartan_circle    {f H : ℂ  ℂ} {ρ τ : } {m : } {Cf : }    (hmρ : (m : )  ρ) (hτ : ρ < τ) (hτ_lt : τ < (m + 1 : ))    (hτ_nonneg : 0  τ) (hentire : Differentiable ℂ f)    (hnot :  z : ℂ, f z  0)    (h_sum : Summable (fun p : divisorZeroIndex₀ f (Set.univ : Set ℂ) =>      ‖divisorZeroIndex₀_val p‖⁻¹ ^ (m + 1)))    (hsumτ : Summable (fun p : divisorZeroIndex₀ f (Set.univ : Set ℂ) =>      ‖divisorZeroIndex₀_val p‖⁻¹ ^ τ))    (hf_boundτ :  z : ℂ, ‖f z‖  Real.exp (Cf * (1 + ‖z‖) ^ τ))    (hfactor :  z : ℂ,      f z =        H z * z ^ analyticOrderNatAt f 0 *          divisorCanonicalProduct m f (Set.univ : Set ℂ) z) :    let Sτ :  :=      ∑' p : divisorZeroIndex₀ f (Set.univ : Set ℂ), ‖divisorZeroIndex₀_val p‖⁻¹ ^ τ    let Cprod :  := cartanProductConstant m τ Sτ     {R r : }, 0 < R  1  R  R  r  r  2 * R  0 < r        (smallSet : Set (divisorZeroIndex₀ f (Set.univ : Set ℂ)))        (hsmall_fin : smallSet.Finite),        smallSet =            {p : divisorZeroIndex₀ f (Set.univ : Set ℂ) |              ‖divisorZeroIndex₀_val p‖  4 * R}         (let small : Finset (divisorZeroIndex₀ f (Set.univ : Set ℂ)) := hsmall_fin.toFinset         let a : divisorZeroIndex₀ f (Set.univ : Set ℂ)   :=          fun p => ‖divisorZeroIndex₀_val p‖         r  small.image a)         (let small : Finset (divisorZeroIndex₀ f (Set.univ : Set ℂ)) := hsmall_fin.toFinset         let a : divisorZeroIndex₀ f (Set.univ : Set ℂ)   :=          fun p => ‖divisorZeroIndex₀_val p‖         (∑ p  small, (1 : ) * CartanBound.φ (r / a p))           CartanBound.Cφ * (small.card : ))          u : ℂ, ‖u‖ = r  ‖H u‖  Real.exp ((Cf + Cprod + 10) * (1 + r) ^ τ) := by  classical  introCprod R r hRpos hRle hR_le_r hr_le_2R hrpos smallSet hsmall_fin    hsmallSet hr_not_bad hr_phi u hur  let small : Finset (divisorZeroIndex₀ f (Set.univ : Set ℂ)) := hsmall_fin.toFinset  let a : divisorZeroIndex₀ f (Set.univ : Set ℂ)   := fun p => ‖divisorZeroIndex₀_val p‖  let bad : Finset  := small.image a  have hr_not_bad' : r  bad := by    simpa [bad, small, a] using hr_not_bad  have hden_eq :      f u =        H u * (u ^ analyticOrderNatAt f 0 *          divisorCanonicalProduct m f (Set.univ : Set ℂ) u) := by    simpa [mul_assoc, mul_left_comm, mul_comm] using (hfactor u)  have hfu_ne : f u  0 := by    have hr_le_4R : r  4 * R := by nlinarith [hr_le_2R, hRpos]    exact no_zero_on_sphere_of_norm_image_avoid (f := f) hentire hnot      (B := 4 * R) (r := r) hrpos hr_le_4R smallSet hsmall_fin hsmallSet      (by simpa [small, a] using hr_not_bad) u hur  have hden_ne :      (u ^ analyticOrderNatAt f 0 *        divisorCanonicalProduct m f (Set.univ : Set ℂ) u)  0 := by    intro hden0    have : f u = 0 := by simpa [hden0] using hden_eq    exact hfu_ne this  have hHu :      H u =        f u / (u ^ analyticOrderNatAt f 0 *          divisorCanonicalProduct m f (Set.univ : Set ℂ) u) := by    exact eq_div_of_mul_eq hden_ne (Eq.symm hden_eq)  have hf_u : ‖f u‖  Real.exp (Cf * (1 + r) ^ τ) := by    simpa [hur] using hf_boundτ u  have hden_inv :      ‖(u ^ analyticOrderNatAt f 0 *          divisorCanonicalProduct m f (Set.univ : Set ℂ) u)⁻¹‖         Real.exp (Cprod * (1 + r) ^ τ) := by    simpa [Sτ, Cprod] using      (norm_inv_hadamardDenominator_le_exp_on_cartan_circle        (f := f) (ρ := ρ) (τ := τ) (m := m)        hmρ hτ hτ_lt hτ_nonneg h_sum hsumτ        (R := R) (r := r) hRpos hRle hR_le_r hr_le_2R        smallSet hsmall_fin hsmallSet        (by simpa [small, a] using hr_not_bad)        (by simpa [small, a, one_mul] using hr_phi)        u hur)  have :      ‖H u‖         ‖f u‖ *          ‖(u ^ analyticOrderNatAt f 0 *            divisorCanonicalProduct m f (Set.univ : Set ℂ) u)⁻¹‖ := by    have :        ‖H u‖ =          ‖f u /            (u ^ analyticOrderNatAt f 0 *              divisorCanonicalProduct m f (Set.univ : Set ℂ) u)‖ := by      simp [hHu]    simp [div_eq_mul_inv, norm_inv, this]  have hmul :      ‖f u‖ *          ‖(u ^ analyticOrderNatAt f 0 *            divisorCanonicalProduct m f (Set.univ : Set ℂ) u)⁻¹‖         Real.exp (Cf * (1 + r) ^ τ) * Real.exp (Cprod * (1 + r) ^ τ) :=    mul_le_mul hf_u hden_inv (by positivity) (by positivity)  have hexp :      Real.exp (Cf * (1 + r) ^ τ) * Real.exp (Cprod * (1 + r) ^ τ)        = Real.exp ((Cf + Cprod) * (1 + r) ^ τ) := by    simp [Real.exp_add, add_mul, add_comm]  have : ‖H u‖  Real.exp ((Cf + Cprod) * (1 + r) ^ τ) :=    (this.trans hmul).trans_eq hexp  have hslack :      Real.exp ((Cf + Cprod) * (1 + r) ^ τ)         Real.exp ((Cf + Cprod + 10) * (1 + r) ^ τ) := by    refine Real.exp_le_exp.2 ?_    have hnn : 0  (1 + r) ^ τ := by positivity    nlinarith  exact this.trans hslack