Head version
a93551347dce
a93551347dce924b1db75d40218841bf085a465f
- Toolchain
- leanprover/lean4:v4.32.0
- Revision date
- 22 Jul 2026
- Dependencies
- 13
- Versions
- 9
AlexKontorovich/PrimeNumberTheoremAnd
Blueprint for the PNT+ Project
Therefore indexed 1,644 complete source declarations from the exact package revision. Individual authorship and independent verification remain unset.
Head version
a93551347dce924b1db75d40218841bf085a465f
External build observation
No Reservoir build observation was found for this exact commit and toolchain. This is not evidence of failure.
Pin this source in lakefile.lean
require PrimeNumberTheoremAnd from git "https://github.com/AlexKontorovich/PrimeNumberTheoremAnd.git" @ "a93551347dce924b1db75d40218841bf085a465f"
Source declarations
Showing 721 to 740 of 1,644 declarations.
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:2021
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:2064
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:2118
lemma
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:2222
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:2265
lemma
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:2287
lemma
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:2315
lemma
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:2343
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:2369
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:2418
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:2431
lemma
If m, n are coprime and a ∣ m, b ∣ n, then (ab)² ∣ mn iff a² ∣ m and b² ∣ n.
PrimeNumberTheoremAnd.IEANTN.MobiusLemma · PrimeNumberTheoremAnd/IEANTN/MobiusLemma.lean:49
lemma
The function sum_sq_div_moebius is multiplicative (explicitly stated).
PrimeNumberTheoremAnd.IEANTN.MobiusLemma · PrimeNumberTheoremAnd/IEANTN/MobiusLemma.lean:61
lemma
The function sum_sq_div_moebius is multiplicative (explicitly stated). -/
lemma sum_sq_div_moebius_is_multiplicative_explicit : (sum_sq_div_moebius 1 = 1) ∧
(∀ m n : ℕ, Nat.Coprime m n →
sum_sq_div_moebius (m * n) = sum_sq_div_moebius m * sum_sq_div_moebius n) := by
have h_map : ∀ m n, m.Coprime n →
(Nat.divisors (m * n)).filter (fun d ↦ d ^ 2 ∣ m * n) =
image (fun p : ℕ × ℕ ↦ p.1 * p.2)
((Nat.divisors m).filter (fun d ↦ d ^ 2 ∣ m) ×ˢ
(Nat.divisors n).filter (fun d ↦ d ^ 2 ∣ n)) := by
intro m n hmn
ext d
simp only [mem_filter, Nat.mem_divisors, ne_eq, mul_eq_zero, not_or, mem_image,
mem_product, Prod.exists]
refine ⟨fun hd ↦ ?, ?⟩
swap
· rintro ⟨a, b, ⟨⟨⟨ha₁, ha₂⟩, ha₃⟩, ⟨⟨hb₁, hb₂⟩, hb₃⟩⟩, rfl⟩
exact ⟨⟨mul_dvd_mul ha₁ hb₁, ha₂, hb₂⟩, by convert! mul_dvd_mul ha₃ hb₃ using 1; ring⟩
obtain ⟨hd_div, hd_sq_div⟩ := hd
obtain ⟨a, b, ha, hb, rfl⟩ : ∃ a b : ℕ, a ∣ m ∧ b ∣ n ∧ d = a * b :=
Exists.imp (by grind) (Nat.dvd_mul.mp hd_div.1)
simp_all only [mul_pow, not_false_eq_true, and_true]
exact ⟨a, b, ⟨⟨ha, (hmn.coprime_dvd_left ha).pow_left 2 |>.dvd_of_dvd_mul_right <|
dvd_of_mul_right_dvd hd_sq_div⟩, hb,
(hmn.symm.coprime_dvd_left hb).pow_left 2 |>.dvd_of_dvd_mul_left <|
dvd_of_mul_left_dvd hd_sq_div⟩, rfl⟩
have h_sum : ∀ m n : ℕ, Nat.Coprime m n →
∑ d ∈ (Nat.divisors (m * n)).filter (fun d ↦ d ^ 2 ∣ m * n), (moebius d : ℤ) =
∑ a ∈ (Nat.divisors m).filter (fun d ↦ d ^ 2 ∣ m),
∑ b ∈ (Nat.divisors n).filter (fun d ↦ d ^ 2 ∣ n), (moebius (a * b) : ℤ) := by
intro m n hmn
rw [h_map m n hmn, sum_image, sum_product]
intro p hp q hq h_eq
have hp1_eq_q1 : p.1 = q.1 := by
norm_num at *
have hdvd : p.1 ∣ q.1 ∧ q.1 ∣ p.1 :=
⟨(hmn.coprime_dvd_left (by grind)).coprime_dvd_right (by grind) |>.dvd_of_dvd_mul_right <|
h_eq ▸ dvd_mul_right _ _,
(hmn.coprime_dvd_left (by grind)).coprime_dvd_right (by grind) |>.dvd_of_dvd_mul_right <|
h_eq.symm ▸ dvd_mul_right _ _⟩
exact Nat.dvd_antisymm hdvd.1 hdvd.2
aesop
have h_inner : ∀ m n, m.Coprime n → ∀ a ∈ (Nat.divisors m).filter (fun d ↦ d ^ 2 ∣ m),
∀ b ∈ (Nat.divisors n).filter (fun d ↦ d ^ 2 ∣ n),
(moebius (a * b) : ℤ) = (moebius a : ℤ) * (moebius b : ℤ) := by
intro m n hmn a ha b hb
simp only [moebius, mem_filter, Nat.mem_divisors, ne_eq, Int.reduceNeg, coe_mk,
mul_ite, ite_mul, zero_mul, mul_zero] at *
split_ifs with h <;> simp_all only [Nat.squarefree_mul_iff, and_self, and_true, ne_eq,
Int.reduceNeg, zero_eq_mul, pow_eq_zero_iff', neg_eq_zero, one_ne_zero,
cardFactors_eq_zero_iff_eq_zero_or_one, not_or, false_and, or_self, and_false]
· rw [← pow_add, cardFactors_mul]
· intro a; simp_all [Int.reduceNeg]
· intro a; simp_all [Int.reduceNeg]
· exact h (hmn.coprime_dvd_left ha.1.1 |>.coprime_dvd_right hb.1.1)
dsimp only [sum_sq_div_moebius]
exact ⟨by simp [sum_filter], fun m n hmn ↦ by
rw [h_sum m n hmn, sum_mul]
exact sum_congr rfl fun i hi ↦ by
rw [mul_sum]; exact sum_congr rfl fun j hj ↦ h_inner m n hmn i hi j hj⟩
/- For a prime power p^k, sum_sq_div_moebius is 1 if k < 2 and 0 otherwise.
PrimeNumberTheoremAnd.IEANTN.MobiusLemma · PrimeNumberTheoremAnd/IEANTN/MobiusLemma.lean:121
lemma
The function sum_sq_div_moebius is equal to the indicator function of squarefree numbers.
PrimeNumberTheoremAnd.IEANTN.MobiusLemma · PrimeNumberTheoremAnd/IEANTN/MobiusLemma.lean:132
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.IEANTN.MobiusLemma · PrimeNumberTheoremAnd/IEANTN/MobiusLemma.lean:159
theorem
The sum ∑' n, μ(n) / n² = 1 / ζ(2).
PrimeNumberTheoremAnd.IEANTN.MobiusLemma · PrimeNumberTheoremAnd/IEANTN/MobiusLemma.lean:242
theorem
The integral ∫ u in 0..x, M(√(x/u)) = x · ∑' n, μ(n)/n².
PrimeNumberTheoremAnd.IEANTN.MobiusLemma · PrimeNumberTheoremAnd/IEANTN/MobiusLemma.lean:265
theorem
Since our sums start from , the sum is empty for .
PrimeNumberTheoremAnd.IEANTN.MobiusLemma · PrimeNumberTheoremAnd/IEANTN/MobiusLemma.lean:401
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.IEANTN.MobiusLemma · PrimeNumberTheoremAnd/IEANTN/MobiusLemma.lean:428
Static source extraction only. Package code was not executed. Every result keeps its complete declaration, exact file and line range, commit, toolchain, license file, and content hash.