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

BKLNW_app.bklnw_thm_15

PrimeNumberTheoremAnd.IEANTN.BKLNW.BKLNW_app · PrimeNumberTheoremAnd/IEANTN/BKLNW/BKLNW_app.lean:254 to 407

Mathematical statement

Exact Lean statement

@[blueprint
  "bklnw-thm-13"
  (title := "Theorem 13")
  (statement := /-- Let $b_1, b_2$ satisfy
  $1000 \leq b_1 < b_2$.
  Let $0.001 \leq \delta \leq 0.025$,
  $\lambda > 1$,
  $H < T < e^{b_1}$, and
  $K = \left\lfloor \frac{\log \frac{T}{H}}
  {\log \lambda} \right\rfloor + 1$.
  Then for all $x \in [e^{b_1}, e^{b_2}]$
  $$ \left|\frac{\psi(x) - x}{x}\right|
  \leq s_0(b_2, T)
  + s_1(b_1, \delta, T)
  + s_2(b_1, \delta, \lambda, K, T), $$
  where $s_0, s_1, s_2$ are respectively
  defined in Definitions \ref{bklnw-eq_A_8},
  \ref{bklnw-eq_A_11}, and
  \ref{bklnw-eq_A_14} -/)
  (proof := /-- Follows from combining Sublemmas
  \ref{bklnw_eq_A_7}, \ref{bklnw_eq_A_9},
  \ref{bklnw_eq_A_10}, and
  \ref{bklnw_eq_A_13}. -/)
  (latexEnv := "theorem")
  (discussion := 752)]
theorem bklnw_thm_15 (I : Inputs)
    (b₁ b₂ δ lambda T x : ℝ)
    (hb : 1000 ≤ b₁) (hb' : b₁ < b₂)
    (hδ : 0.001 ≤ δ) (hδ' : δ ≤ 0.025)
    (hlambda : 1 < lambda) (hR : 0 < I.R)
    (hσ : 1 - δ ∈ I.ZDB.σ_range)
    (hT₀ : I.ZDB.T₀ ≤ I.H) (hH : 50 ≤ I.H)
    (hT1 : I.H < T) (hT2 : T < exp b₁)
    (hx : x ∈ Set.Icc (exp b₁) (exp b₂)) :
    let K

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
@[blueprint  "bklnw-thm-13"  (title := "Theorem 13")  (statement := /-- Let $b_1, b_2$ satisfy  $1000 \leq b_1 < b_2$.  Let $0.001 \leq \delta \leq 0.025$,  $\lambda > 1$,  $H < T < e^{b_1}$, and  $K = \left\lfloor \frac{\log \frac{T}{H}}  {\log \lambda} \right\rfloor + 1$.  Then for all $x \in [e^{b_1}, e^{b_2}]$  $$ \left|\frac{\psi(x) - x}{x}\right|  \leq s_0(b_2, T)  + s_1(b_1, \delta, T)  + s_2(b_1, \delta, \lambda, K, T), $$  where $s_0, s_1, s_2$ are respectively  defined in Definitions \ref{bklnw-eq_A_8},  \ref{bklnw-eq_A_11}, and  \ref{bklnw-eq_A_14} -/)  (proof := /-- Follows from combining Sublemmas  \ref{bklnw_eq_A_7}, \ref{bklnw_eq_A_9},  \ref{bklnw_eq_A_10}, and  \ref{bklnw_eq_A_13}. -/)  (latexEnv := "theorem")  (discussion := 752)]theorem bklnw_thm_15 (I : Inputs)    (b₁ b₂ δ lambda T x : )    (hb : 1000  b₁) (hb' : b₁ < b₂)    (hδ : 0.001  δ) (hδ' : δ  0.025)    (hlambda : 1 < lambda) (hR : 0 < I.R)    (hσ : 1 - δ  I.ZDB.σ_range)    (hT₀ : I.ZDB.T I.H) (hH : 50  I.H)    (hT1 : I.H < T) (hT2 : T < exp b₁)    (hx : x  Set.Icc (exp b₁) (exp b₂)) :    let K := ⌊log (T / I.H) / log lambda⌋₊ + 1    ‖(ψ x - x) / x‖       bklnw_eq_A_8 b₂ T + s₁ b₁ δ T +        I.s₂ δ b₁ K lambda T := by  intro K  have hK : K = ⌊log (T / I.H) / log lambda⌋₊ + 1 := rfl  -- with (hT50 : 50 < T) in place of hH this line becomes the hypothesis itself  have hT50 : 50 < T := lt_of_le_of_lt hH hT1  have hT : (0 : ) < T := by linarith  have hHpos : (0 : ) < I.H := by linarith  have hH1 : (1 : ) < I.H := by linarith  have hlam0 : (0 : ) < lambda := by linarith  have hloglam : (0 : ) < log lambda := log_pos hlambda  have hx1000 : x  exp 1000 := le_trans (exp_le_exp.mpr hb) hx.1  have hxpos : (0 : ) < x := lt_of_lt_of_le (exp_pos 1000) hx1000  have hx1 : (1 : ) < x := by    have := add_one_le_exp (1000 : )    linarith  have hlogx₁ : b₁  log x := (le_log_iff_exp_le hxpos).mpr hx.1  have hlogx₂ : log x  b₂ := (log_le_iff_le_exp hxpos).mpr hx.2  obtain E, hE, hEnorm := bklnw_eq_A_7 x T hx1000 hT50 (le_trans hT2.le hx.1)  rw [bklnw_eq_A_9 x T δ (by linarith) (by linarith)] at hE  have hcast : (((ψ x - x) / x : ) : ℂ) = Sigma₁ x T δ + Sigma₂ x T δ + E := by    push_cast    exact hE  have hnorm_eq : ‖(ψ x - x) / x‖ =Sigma₁ x T δ + Sigma₂ x T δ + E‖ := by    rw [ hcast]    norm_cast  have hE8 : ‖E‖  bklnw_eq_A_8 b₂ T := by    refine hEnorm.trans ?_    simp only [bklnw_eq_A_8]    rw [div_eq_mul_inv, div_eq_mul_inv]    refine mul_le_mul_of_nonneg_right ?_ (inv_nonneg.mpr hT.le)    have h0 : (0 : )  log x := by linarith    nlinarith [mul_nonneg (by linarith : (0 : )  b₂ - log x)      (by linarith : (0 : )  b₂ + log x)]  have hS1 : ‖Sigma₁ x T δ‖  s₁ b₁ δ T := by    refine (bklnw_eq_A_10 x T δ hδ).trans ?_    simp only [s₁]    refine mul_le_mul_of_nonneg_right (exp_le_exp.mpr ?_) (by positivity)    nlinarith [mul_nonneg (by linarith : (0 : )  δ)      (by linarith : (0 : )  log x - b₁)]  have hS2 : ‖Sigma₂ x T δ‖  I.s₂ δ b₁ K lambda T := by    have h13 : ‖Sigma₂ x T δ‖  (2 * lambda / T) *        ∑ k  Finset.range K,          exp (k * log lambda -            (log x) / (I.R * (log T -              k * log lambda))) *          (I.ZDB.c₁ (1 - δ) *            (T / lambda ^ k) ^ (I.ZDB.p (1 - δ)) *            (log (T / lambda ^ k)) ^ (I.ZDB.q (1 - δ)) +          I.ZDB.c₂ (1 - δ) *            (log (T / lambda ^ k)) ^ 2) :=      bklnw_eq_A_13 I x T δ lambda hlambda hx1 hT hT1 hσ hT₀    refine h13.trans ?_    simp only [Inputs.s₂]    refine mul_le_mul_of_nonneg_left      (Finset.sum_le_sum fun k hk  ?_) (div_nonneg (by linarith) hT.le)    have hkK : k  ⌊log (T / I.H) / log lambda⌋₊ := by      have h := Finset.mem_range.mp hk      rw [hK] at h      omega    have hHT : (1 : )  T / I.H := by      rw [div_eq_mul_inv,  mul_inv_cancel₀ hHpos.ne']      exact mul_le_mul_of_nonneg_right hT1.le (inv_nonneg.mpr hHpos.le)    have hfloor : (k : )  log (T / I.H) / log lambda :=      le_trans (Nat.cast_le.mpr hkK)        (Nat.floor_le (div_nonneg (log_nonneg hHT) hloglam.le))    have hk' : (k : ) * log lambda  log (T / I.H) := by      have h1 := mul_le_mul_of_nonneg_right hfloor hloglam.le      rwa [div_mul_cancel₀ _ hloglam.ne'] at h1    have hk'' : (k : ) * log lambda  log T - log I.H := by      rwa [log_div hT.ne' hHpos.ne'] at hk'    have hD : (0 : ) < log T - (k : ) * log lambda :=      lt_of_lt_of_le (log_pos hH1) (by linarith)    have hRD : (0 : ) < I.R * (log T - (k : ) * log lambda) := mul_pos hR hD    have hTk : I.H  T / lambda ^ k := by      have h2 : exp (log I.H)  exp (log T - (k : ) * log lambda) :=        exp_le_exp.mpr (by linarith)      rwa [exp_log hHpos, exp_sub, exp_log hT,  log_pow,        exp_log (pow_pos hlam0 k)] at h2    -- the density-bound bracket dominates N'(1-δ, T/λ^k), which is nonnegative    have hN' : (0 : )  riemannZeta.N' (1 - δ) (T / lambda ^ k) := by      simp only [riemannZeta.N', riemannZeta.zeroes_sum, Pi.one_apply, one_mul]      refine tsum_nonneg fun ρ  ?_      suffices h : (0 : )  riemannZeta.order ↑ρ by exact_mod_cast h      have hmem := ρ.2      simp only [riemannZeta.zeroes_rect, riemannZeta.zeroes, Set.mem_setOf_eq,        Set.mem_Ioo] at hmem      have hne : (↑ρ : ℂ)  1 := by        intro h1        have h2 := hmem.1.2        rw [h1, Complex.one_re] at h2        exact lt_irrefl 1 h2      have hana : AnalyticAt ℂ riemannZeta (↑ρ : ℂ) :=        riemannZeta_analyticOn_compl_one _ (Set.mem_compl_singleton_iff.mpr hne)      have hord := hana.meromorphicOrderAt_nonneg      simp only [riemannZeta.order]      cases horder : meromorphicOrderAt riemannZeta (↑ρ : ℂ) with      | top => exact le_rfl      | coe n =>        rw [horder] at hord        change (0 : )  n        exact_mod_cast hord    have hBk : (0 : )  I.ZDB.c₁ (1 - δ) *        (T / lambda ^ k) ^ (I.ZDB.p (1 - δ)) *        (log (T / lambda ^ k)) ^ (I.ZDB.q (1 - δ)) +        I.ZDB.c₂ (1 - δ) * (log (T / lambda ^ k)) ^ 2 :=      le_trans hN' (I.ZDB.bound (T / lambda ^ k) (le_trans hT₀ hTk) (1 - δ) hσ)    refine mul_le_mul_of_nonneg_right (exp_le_exp.mpr ?_) hBk    have hdiv : b₁ / (I.R * (log T - (k : ) * log lambda))         log x / (I.R * (log T - (k : ) * log lambda)) := by      rw [div_eq_mul_inv, div_eq_mul_inv]      exact mul_le_mul_of_nonneg_right hlogx₁ (inv_nonneg.mpr hRD.le)    linarith  rw [hnorm_eq]  calcSigma₁ x T δ + Sigma₂ x T δ + E‖      Sigma₁ x T δ‖ +Sigma₂ x T δ‖ + ‖E‖ :=        le_trans (norm_add_le _ _) (add_le_add (norm_add_le _ _) le_rfl)    _  bklnw_eq_A_8 b₂ T + s₁ b₁ δ T + I.s₂ δ b₁ K lambda T := by linarith