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

Sieve.boundingSum_ge_sum

PrimeNumberTheoremAnd.Mathlib.NumberTheory.Sieve.SelbergBounds · PrimeNumberTheoremAnd/Mathlib/NumberTheory/Sieve/SelbergBounds.lean:464 to 494

Mathematical statement

Exact Lean statement

theorem boundingSum_ge_sum (s : SelbergSieve) (hnu : s.nu = (ζ : ArithmeticFunction ℝ).pdiv .id)
  (hP : ∀ p:ℕ, p.Prime → (p:ℝ) ≤ s.level → p ∣ s.prodPrimes) :
    s.selbergBoundingSum ≥ ∑ m ∈ Finset.Icc 1 (Nat.floor <| Real.sqrt s.level), 1 / (m:ℝ)

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem boundingSum_ge_sum (s : SelbergSieve) (hnu : s.nu = (ζ : ArithmeticFunction ).pdiv .id)  (hP :  p:, p.Prime  (p:)  s.level  p ∣ s.prodPrimes) :    s.selbergBoundingSum  ∑ m  Finset.Icc 1 (Nat.floor <| Real.sqrt s.level), 1 / (m:) := by  trans ∑ m  Finset.Icc 1 (Nat.floor <| Real.sqrt s.level), (ζ : ArithmeticFunction ).pdiv .id m  · rw[hnu]    apply selbergBoundingSum_ge_sum_div    · intro p hpp hple      apply hP p hpp hple    · rw[hnu]      exact CompletelyMultiplicative.zeta.pdiv CompletelyMultiplicative.id    · intro n      rw[hnu]      apply div_nonneg      · by_cases h : n = 0 <;> simp[h]      simp    · intro p hpp _      rw[hnu]      simp only [ArithmeticFunction.pdiv_apply, ArithmeticFunction.natCoe_apply,        ArithmeticFunction.zeta_apply, Nat.cast_ite, CharP.cast_eq_zero, Nat.cast_one,        ArithmeticFunction.id_apply]      rw [if_neg, one_div]      · apply inv_lt_one_of_one_lt₀; norm_cast        exact hpp.one_lt      exact hpp.ne_zero  apply le_of_eq  apply Finset.sum_congr rfl  intro m hm  rw [Finset.mem_Icc] at hm  simp only [one_div, ArithmeticFunction.pdiv_apply, ArithmeticFunction.natCoe_apply,    ArithmeticFunction.zeta_apply_ne (show m  0 by omega), Nat.cast_one,    ArithmeticFunction.id_apply];