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

Complex.Gammaℝ.Stirling.finite_order

PrimeNumberTheoremAnd.Mathlib.Analysis.SpecialFunctions.Gamma.StripBounds · PrimeNumberTheoremAnd/Mathlib/Analysis/SpecialFunctions/Gamma/StripBounds.lean:668 to 702

Source documentation

Finite order bound for Γ_ℝ.

Exact Lean statement

theorem finite_order :
    ∃ (A B : ℝ), 0 < A ∧ 0 < B ∧
      ∀ s : ℂ, 0 ≤ s.re → 1 ≤ ‖s‖ →
        ‖Complex.Gammaℝ s‖ ≤ Real.exp (A * ‖s‖ ^ B)

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem finite_order :     (A B : ), 0 < A  0 < B        s : ℂ, 0  s.re  1  ‖s‖ Complex.Gamma s‖  Real.exp (A * ‖s‖ ^ B) := by  obtain C, hC_pos, hC := bound_re_ge_zero  use C + 1, 2  refine by linarith, by norm_num, ?_  intro s hs_re hs_norm  have h := hC s hs_re hs_norm  apply le_trans h  apply Real.exp_le_exp.mpr  -- log(1 + |s|) ≤ |s| for |s| ≥ 1, so C|s|log(1+|s|) ≤ C|s|² ≤ (C+1)|s|²  have h_log : Real.log (1 + ‖s‖)  ‖s‖ := by    have h1 : 0 < 1 + ‖s‖ := by linarith [norm_nonneg s]    have h2 : ‖s‖ + 1  Real.exp ‖s‖ := Real.add_one_le_exp ‖s‖    have h2' : 1 + ‖s‖  Real.exp ‖s‖ := by linarith    rw [Real.log_le_iff_le_exp (by linarith [norm_nonneg s])]    exact h2'  have step1 : C * ‖s‖ * Real.log (1 + ‖s‖)  C * ‖s‖ * ‖s‖ := by    apply mul_le_mul_of_nonneg_left h_log    apply mul_nonneg (by linarith) (norm_nonneg s)  have step2 : C * ‖s‖ * ‖s‖ = C * ‖s‖ ^ 2 := by ring  have step3 : C * ‖s‖ ^ 2  (C + 1) * ‖s‖ ^ 2 := by    apply mul_le_mul_of_nonneg_right (by linarith) (sq_nonneg _)  have h_combined : C * ‖s‖ * Real.log (1 + ‖s‖)  (C + 1) * ‖s‖ ^ 2 := by    calc C * ‖s‖ * Real.log (1 + ‖s‖)         C * ‖s‖ * ‖s‖ := step1      _ = C * ‖s‖ ^ 2 := step2      _  (C + 1) * ‖s‖ ^ 2 := step3  -- Convert from ℕ exponent (^ 2) to ℝ exponent (^ (2 : ℝ))  -- The goal is (C + 1) * ‖s‖ ^ (2 : ℝ), which equals (C + 1) * ‖s‖ ^ (2 : ℕ)  -- This type coercion is handled by norm_cast  have hconv : (C + 1) * ‖s‖ ^ 2 = (C + 1) * ‖s‖ ^ (2 : ) := by norm_cast  rw [ hconv]  exact h_combined