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 1,461 to 1,480 of 1,644 declarations.
lemma
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Fejer_I_know_this_is_dirty_but_it_typechecks · PrimeNumberTheoremAnd/Unused/Fejer_I_know_this_is_dirty_but_it_typechecks.lean:936
lemma
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Fejer_I_know_this_is_dirty_but_it_typechecks · PrimeNumberTheoremAnd/Unused/Fejer_I_know_this_is_dirty_but_it_typechecks.lean:1001
lemma
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Fejer_I_know_this_is_dirty_but_it_typechecks · PrimeNumberTheoremAnd/Unused/Fejer_I_know_this_is_dirty_but_it_typechecks.lean:1045
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Fejer_I_know_this_is_dirty_but_it_typechecks · PrimeNumberTheoremAnd/Unused/Fejer_I_know_this_is_dirty_but_it_typechecks.lean:1080
lemma
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Fejer_I_know_this_is_dirty_but_it_typechecks · PrimeNumberTheoremAnd/Unused/Fejer_I_know_this_is_dirty_but_it_typechecks.lean:1119
lemma
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Fejer_I_know_this_is_dirty_but_it_typechecks · PrimeNumberTheoremAnd/Unused/Fejer_I_know_this_is_dirty_but_it_typechecks.lean:1508
lemma
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Fejer_I_know_this_is_dirty_but_it_typechecks · PrimeNumberTheoremAnd/Unused/Fejer_I_know_this_is_dirty_but_it_typechecks.lean:1619
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Fejer_I_know_this_is_dirty_but_it_typechecks · PrimeNumberTheoremAnd/Unused/Fejer_I_know_this_is_dirty_but_it_typechecks.lean:1654
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Fejer_I_know_this_is_dirty_but_it_typechecks · PrimeNumberTheoremAnd/Unused/Fejer_I_know_this_is_dirty_but_it_typechecks.lean:1758
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Hardy_Tauberian_theorem · PrimeNumberTheoremAnd/Unused/Hardy_Tauberian_theorem.lean:62
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Hardy_Tauberian_theorem · PrimeNumberTheoremAnd/Unused/Hardy_Tauberian_theorem.lean:77
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Hardy_Tauberian_theorem · PrimeNumberTheoremAnd/Unused/Hardy_Tauberian_theorem.lean:122
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Hardy_Tauberian_theorem · PrimeNumberTheoremAnd/Unused/Hardy_Tauberian_theorem.lean:146
lemma
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Hardy_Tauberian_theorem · PrimeNumberTheoremAnd/Unused/Hardy_Tauberian_theorem.lean:171
lemma
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Hardy_Tauberian_theorem · PrimeNumberTheoremAnd/Unused/Hardy_Tauberian_theorem.lean:187
lemma
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Hardy_Tauberian_theorem · PrimeNumberTheoremAnd/Unused/Hardy_Tauberian_theorem.lean:220
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Hardy_Tauberian_theorem · PrimeNumberTheoremAnd/Unused/Hardy_Tauberian_theorem.lean:236
theorem
Open the record for the exact Lean statement and complete source.
PrimeNumberTheoremAnd.Unused.Hardy_Tauberian_theorem · PrimeNumberTheoremAnd/Unused/Hardy_Tauberian_theorem.lean:255
lemma
The points of fromPoints s are exactly s.
PrimeNumberTheoremAnd.Unused.MyMV_A3a · PrimeNumberTheoremAnd/Unused/MyMV_A3a.lean:243
lemma
The points of fromPoints s are exactly s. -/
lemma points_fromPoints {a b : ℝ} (s : Finset ℝ)
(ha : a ∈ s) (hb : b ∈ s) (h_sub : (s : Set ℝ) ⊆ Set.Icc a b) :
(fromPoints (a:=a) (b:=b) s ha hb h_sub).points = s := by
classical
-- replicate the local defs used in fromPoints, so we can reuse them
let l : List ℝ := s.sort (· ≤ ·)
have hs_nonempty : s.Nonempty := ⟨a, ha⟩ have hlpos : 0 < l.length := by simpa [l, Finset.length_sort] using (Finset.card_pos.mpr hs_nonempty)
let n : ℕ := l.length.pred have hn : n.succ = l.length := Nat.succ_pred_eq_of_pos hlpos have hn' : n + 1 = l.length := by simpa [Nat.succ_eq_add_one] using hn
ext y
constructor
· intro hy
-- unfold points and fromPoints enough to get "y is some l.get ..."
-- (we keep [l,n] in simp so it doesn't explode)
have hy' : y ∈ (Finset.univ : Finset (Fin (n + 1))).image (fun i =>
l.get ⟨i.1, by
-- this is exactly the bound proof used in fromPoints
simpa [n, Nat.sub_add_cancel (Nat.succ_le_iff.mp hlpos)] using i.2⟩) := by
-- this is what points is, after unfolding fromPoints
simpa [IPartition.points, fromPoints, l, n] using hy
rcases Finset.mem_image.mp hy' with ⟨i, hiuniv, rfl⟩
-- Now show this list element is in s, since l = s.sort ...
have : l.get ⟨i.1, by
simpa [n, Nat.sub_add_cancel (Nat.succ_le_iff.mp hlpos)] using i.2⟩ ∈ l :=
List.get_mem l _
-- Convert list-membership in l to finset-membership in s using mem_sort
exact (Finset.mem_sort (s := s) (r := (· ≤ ·))).1 (by simpa [l] using this)
· intro hy -- y ∈ s → y ∈ l have hyL : y ∈ l := (Finset.mem_sort (s := s) (r := (· ≤ ·))).2 (by simpa using hy) -- pick an index j with l.get j = y rcases List.mem_iff_get.mp hyL with ⟨j, rfl⟩
-- We need to show l.get j is in the image of x over Fin (n+1).
-- Use i := cast j into Fin (n+1).
let i : Fin (n + 1) := Fin.cast hn'.symm j
-- Unfold points/fromPoints and provide witness i
have : l.get j ∈ (Finset.univ : Finset (Fin (n + 1))).image (fun i =>
l.get ⟨i.1, by
simpa [n, Nat.sub_add_cancel (Nat.succ_le_iff.mp hlpos)] using i.2⟩) := by
refine Finset.mem_image.mpr ?_
refine ⟨i, Finset.mem_univ _, ?_⟩
-- Compare the Fin indices used in the two gets
-- j : Fin l.length, while the RHS uses ⟨i.1, _⟩ : Fin l.length.
-- Show they are equal by Fin.ext (only vals matter).
have hjlen : (⟨i.1, by
-- i.2 : i.1 < n+1, rewrite via hn' to get i.1 < l.length
simpa [hn', i] using i.2⟩ : Fin l.length) = j := by
apply Fin.ext
rfl
-- Then the gets are equal
simpa [hjlen]
-- now translate back to the original goal
simpa [IPartition.points, fromPoints, l, n] using this
/- The union of two partitions P and Q is the partition constructed from the union of their point sets. -/ def union {a b : ℝ} (P Q : IPartition a b) : IPartition a b := fromPoints (P.points ∪ Q.points) (by exact Finset.mem_union_left _ ( Finset.mem_image.mpr ⟨ 0, Finset.mem_univ _, P.left ⟩ )) (by exact Finset.mem_union.mpr ( Or.inl <| Finset.mem_image.mpr ⟨ Fin.last _, Finset.mem_univ _, P.right ⟩ )) (by -- Since and are partitions of , their points are within . have hP : ∀ y ∈ P.points, y ∈ Set.Icc a b := by intro y hy; obtain ⟨ i, hi, rfl ⟩ := Finset.mem_image.mp hy; exact ⟨ by linarith [ P.monotone ( show 0 ≤ i from Nat.zero_le _ ), P.left ], by linarith [ P.monotone ( show i ≤ Fin.last P.n from Fin.le_last _ ), P.right ] ⟩ ; have hQ : ∀ y ∈ Q.points, y ∈ Set.Icc a b := by rintro y hy; obtain ⟨ i, _, rfl ⟩ := Finset.mem_image.mp hy; exact ⟨ by linarith [ Q.left, Q.right, Q.monotone ( show 0 ≤ i from Nat.zero_le _ ) ], by linarith [ Q.left, Q.right, Q.monotone ( show i ≤ Fin.last Q.n from Fin.le_last _ ) ] ⟩ ; grind)
lemma union_points {a b : ℝ} (P Q : IPartition a b) : (union P Q).points = P.points ∪ Q.points := by -- unfolds to fromPoints on the finset union simp [union, points_fromPoints]
/- The union of two partitions refines both. -/
lemma union_refines_left {a b : ℝ} (P Q : IPartition a b) : IsRefinement (union P Q) P := by -- goal: P.points ⊆ (union P Q).points -- i.e. P.points ⊆ P.points ∪ Q.points simpa [IsRefinement, union_points] using (Finset.subset_union_left : P.points ⊆ P.points ∪ Q.points)
lemma union_refines_right {a b : ℝ} (P Q : IPartition a b) : IsRefinement (union P Q) Q := by simpa [IsRefinement, union_points] using (Finset.subset_union_right : Q.points ⊆ P.points ∪ Q.points)
/- The points of a partition constructed from a set of points are strictly increasing.
PrimeNumberTheoremAnd.Unused.MyMV_A3a · PrimeNumberTheoremAnd/Unused/MyMV_A3a.lean:348
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.