AlexKontorovich/PrimeNumberTheoremAnd
Source indexedlemma · leanprover/lean4:v4.32.0
M_log_identity
PrimeNumberTheoremAnd.Consequences · PrimeNumberTheoremAnd/Consequences.lean:1693 to 1719
Mathematical statement
Exact Lean statement
lemma M_log_identity (x : ℝ) (hx : 1 ≤ x) : M x * log x = ∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ) * (log (x/k) - Psi (x/k))
Complete declaration
Lean source
Full Lean sourceLean 4
lemma M_log_identity (x : ℝ) (hx : 1 ≤ x) : M x * log x = ∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ) * (log (x/k) - Psi (x/k)) := by have h_log_identity : ∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ) * Real.log (x / k) = (∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ)) * Real.log x - ∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ) * Real.log k := by rw [Finset.sum_mul _ _ _] rw [← Finset.sum_sub_distrib] ; refine Finset.sum_congr rfl fun i hi => ?_ ; by_cases hi' : i = 0 <;> simp +decide [*, Real.log_div, ne_of_gt (zero_lt_one.trans_le hx)] ; ring generalize_proofs at * have h_log_identity' : ∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ) * Real.log k = -∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ) * Psi (x / k) := by convert sum_mu_Lambda x using 1 have h_psi_identity : (∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ) * Psi (x / k)) = -∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ) * Real.log k := by simpa [neg_neg] using (congrArg Neg.neg h_log_identity').symm unfold M symm calc (∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ) * (Real.log (x / k) - Psi (x / k))) = (∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ) * Real.log (x / k)) - ∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ) * Psi (x / k) := by simp [mul_sub, Finset.sum_sub_distrib] _ = ((∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ)) * Real.log x - ∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ) * Real.log k) - ∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ) * Psi (x / k) := by simp [h_log_identity] _ = ((∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ)) * Real.log x - ∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ) * Real.log k) - (-∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ) * Real.log k) := by simp [h_psi_identity] _ = (∑ k ∈ Iic ⌊x⌋₊, (μ k : ℝ)) * Real.log x := by ring