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

Chebyshev.T.ge

PrimeNumberTheoremAnd.IEANTN.Chebyshev · PrimeNumberTheoremAnd/IEANTN/Chebyshev.lean:71 to 105

Mathematical statement

Exact Lean statement

@[blueprint
  "cheby-T-lower"
  (title := "Lower bound on $T$")
  (statement := /-- For $x \geq 1$, we have $T(x) \geq x \log x - x + 1 - \log x$. -/)
  (proof := /-- Drop the $n=1$ term. Lower bound $\log n$ by $\int_{n-1}^{n} \log t\ dt$ for $2 \leq n < x$ to bound
  $$T(x) \geq \int_1^{\lfloor x \rfloor} \log t\ dt \geq \int_1^x \log t\ dt - \log x $$
  giving the claim. -/)
  (latexEnv := "lemma")
  (discussion := 832)]
theorem T.ge (x : ℝ) (hx : 1 ≤ x) : T x ≥ x * log x - x + 1 - log x

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
@[blueprint  "cheby-T-lower"  (title := "Lower bound on $T$")  (statement := /-- For $x \geq 1$, we have $T(x) \geq x \log x - x + 1 - \log x$. -/)  (proof := /-- Drop the $n=1$ term. Lower bound $\log n$ by $\int_{n-1}^{n} \log t\ dt$ for $2 \leq n < x$ to bound  $$T(x) \geq \int_1^{\lfloor x \rfloor} \log t\ dt \geq \int_1^x \log t\ dt - \log x $$  giving the claim. -/)  (latexEnv := "lemma")  (discussion := 832)]theorem T.ge (x : ) (hx : 1  x) : T x  x * log x - x + 1 - log x := by  have hone_le_floor : 1  ⌊x⌋₊ := Nat.one_le_iff_ne_zero.mpr (Nat.floor_pos.mpr hx).ne'  simp only [T,  Ico_insert_right hone_le_floor, sum_insert right_notMem_Ico]  have mono_log : MonotoneOn log (Set.Icc (1 : ) ⌊x⌋₊) := fun a ha _ _ hab     log_le_log (lt_of_lt_of_le one_pos (by simpa using ha.1)) hab  have h1 :  n  1, ∑ i  Ico 1 n, log (i + 1 : ) = log n + ∑ i  Ico 1 n, log i := by    intro n hn    induction n, hn using Nat.le_induction with    | base => simp    | succ n hn ih => grind [Nat.Ico_succ_right_eq_insert_Ico]  have sum_shift : ∑ i  Ico 1 ⌊x⌋₊, log (i + 1 : ) = log ⌊x⌋₊ + ∑ i  Ico 1 ⌊x⌋₊, log i := by    exact h1 ⌊x⌋₊ hone_le_floor  have int_le_T : ∫ t in (1 : )..(⌊x⌋₊ : ), log t  log ⌊x⌋₊ + ∑ n  Ico 1 ⌊x⌋₊, log n := by    linarith [mono_log.integral_le_sum_Ico hone_le_floor]  have int_eq : ∫ t in (1 : )..(⌊x⌋₊ : ), log t = ⌊x⌋₊ * log ⌊x⌋₊ - ⌊x⌋₊ + 1 := by simp  have h2 : ∫ t in (⌊x⌋₊ : )..x, log t  (x - ⌊x⌋₊) * log x := by    calc ∫ t in (⌊x⌋₊ : )..x, log t       ∫ _ in (⌊x⌋₊ : )..x, log x := (intervalIntegral.integral_mono_on (Nat.floor_le <| by linarith) intervalIntegral.intervalIntegrable_log'            intervalIntegrable_const fun t ht  log_le_log (lt_of_lt_of_le (by positivity) ht.1) ht.2)      _ = (x - ⌊x⌋₊) * log x := by simp  have target_le_int : x * log x - x + 1 - log x  ⌊x⌋₊ * log ⌊x⌋₊ - ⌊x⌋₊ + 1 := by    calc x * log x - x + 1 - log x         (x * log x - x + 1) - (x - ⌊x⌋₊) * log x := by nlinarith [log_nonneg hx, Nat.lt_floor_add_one x]      _  (x * log x - x + 1) - ∫ t in (⌊x⌋₊ : )..x, log t := by grind      _ = ⌊x⌋₊ * log ⌊x⌋₊ - ⌊x⌋₊ + 1 := by grind [integral_log]  linarith