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

SelbergSieve.selberg_bound_simple_mainSum

PrimeNumberTheoremAnd.Mathlib.NumberTheory.Sieve.Selberg · PrimeNumberTheoremAnd/Mathlib/NumberTheory/Sieve/Selberg.lean:263 to 279

Mathematical statement

Exact Lean statement

theorem selberg_bound_simple_mainSum :
    mainSum (s := s.toBoundingSieve) μ⁺ = S⁻¹

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem selberg_bound_simple_mainSum :    mainSum (s := s.toBoundingSieve) μ⁺ = S⁻¹ := by  rw [mainSum_eq_diag_quad_form]  trans (∑ l  divisors P, (if l ^ 2  y then g l * (S⁻¹) ^ 2 else 0))  · apply sum_congr rfl; intro l hl    rw [s.selbergWeights_diagonalisation l hl, ite_pow, zero_pow two_ne_zero, mul_ite_zero]    apply if_congr Iff.rfl _ rfl    trans (1/g l * g l * g l * (μ l:)^2  * (S⁻¹) ^ 2)    · ring    norm_cast; rw [moebius_sq_eq_one_of_squarefree <| squarefree_of_mem_divisors_prodPrimes hl]    rw [one_div_mul_cancel <| _root_.ne_of_gt <| selbergTerms_pos _ l <| dvd_of_mem_divisors hl]    ring  conv => {lhs; congr; {skip}; {ext i; rw [ ite_zero_mul]}}  dsimp only [selbergBoundingSum]  rw [sum_mul, sq, mul_assoc, mul_inv_cancel₀]  · ring  · apply _root_.ne_of_gt; apply selbergBoundingSum_pos