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

Erdos392.Params.initial.div_le

PrimeNumberTheoremAnd.IEANTN.Erdos392 · PrimeNumberTheoremAnd/IEANTN/Erdos392.lean:968 to 983

Source documentation

For elements m in the initial factorization, n/m ≤ (1 - 1/M)⁻¹.

Exact Lean statement

lemma Params.initial.div_le (P : Params) (m : ℕ) (hm : m ∈ P.initial.a) :
    (P.n : ℝ) / m ≤ (1 - 1 / (P.M : ℝ))⁻¹

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma Params.initial.div_le (P : Params) (m : ) (hm : m  P.initial.a) :    (P.n : ) / m  (1 - 1 / (P.M : ))⁻¹ := by  have hlo, hhi := mem_range P m hm  have hM_pos : (0 : ) < P.M := Nat.cast_pos.mpr (Nat.zero_lt_of_lt P.hM)  have h_denom_pos : 0 < 1 - 1 / (P.M : ) := by    rw [sub_pos, div_lt_one hM_pos]; exact Nat.one_lt_cast.mpr P.hM  have hn_pos : (0 : ) < P.n :=    Nat.cast_pos.mpr (Nat.lt_of_lt_of_le (P.initial.hpos m hm) hhi.le)  have hlo' : (P.n : ) - P.n / P.M  m := by    calc (P.n : ) - P.n / P.M  P.n - (P.n / P.M : ) := by gcongr; exact Nat.cast_div_le      _ = ((P.n - P.n / P.M : ) : ) := by rw [Nat.cast_sub (Nat.div_le_self ..)]      _  m := by exact_mod_cast hlo  calc (P.n : ) / m  P.n / (P.n - P.n / P.M) := by        gcongr; rw [sub_pos]; exact div_lt_self hn_pos <| one_lt_cast.mpr P.hM    _ = P.n / (P.n * (1 - 1 / (P.M : ))) := by rw [mul_sub, mul_one, mul_one_div]    _ = (1 - 1 / (P.M : ))⁻¹ := by rw [div_mul_eq_div_div, div_self hn_pos.ne', one_div]