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

Erdos392.tendsto_primeCounting_div_id_zero

PrimeNumberTheoremAnd.IEANTN.Erdos392 · PrimeNumberTheoremAnd/IEANTN/Erdos392.lean:2851 to 2869

Source documentation

The ratio π(n) / n → 0 as n → ∞.

Exact Lean statement

lemma tendsto_primeCounting_div_id_zero :
    Filter.Tendsto (fun n ↦ (Nat.primeCounting n : ℝ) / n) .atTop (nhds 0)

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma tendsto_primeCounting_div_id_zero :    Filter.Tendsto (fun n  (Nat.primeCounting n : ) / n) .atTop (nhds 0) := by  have h_upper_bound :  n : , 2  n       (primeCounting n : ) / n         Real.sqrt n / n + (2 * Real.log 4) / Real.log n := by    intro n hn    rw [div_le_iff₀ (by positivity)]    convert! primeCounting_le_bound n hn using 1    · ring_nf; norm_num [show n  0 by positivity]  have h_tendsto : Filter.Tendsto      (fun n :   .sqrt n / n + (2 * Real.log 4) / Real.log n)      .atTop (nhds 0) := by    have h1 : Filter.Tendsto (fun n :   Real.sqrt n / n) .atTop (nhds 0) := by      simpa [sqrt_div_self] using tendsto_inv_atTop_nhds_zero_nat.sqrt    have h2 : Filter.Tendsto (fun n :   (2 * Real.log 4) / Real.log n) .atTop (nhds 0) :=      tendsto_const_nhds.div_atTop (tendsto_log_atTop.comp tendsto_natCast_atTop_atTop)    simpa using h1.add h2  exact squeeze_zero_norm' (Filter.eventually_atTop.mpr 2, fun n hn  by    rw [norm_of_nonneg (by positivity)]; exact h_upper_bound n hn) h_tendsto