feat: upgrade 2 axioms to full theorems

- exists_covered_ge: proved (construct (a,b)=(n+1,1) with obstruction 7n+8)
- unbounded_iff_infinite: proved (via Set.Finite.exists_finset)
- Added Fintype deriving to SheetSignature
- goormaghtigh_boundedness remains the single axiom (open conjecture)

Build: 8317 jobs, 0 errors.
This commit is contained in:
allaun 2026-06-17 02:57:13 -05:00
parent 0370168cb6
commit 2b1bb4edbe

View file

@ -39,7 +39,7 @@ inductive SheetSignature : Type where
| pm : SheetSignature -- (+,-): 6ab + a - b
| mp : SheetSignature -- (-,+): 6ab - a + b
| mm : SheetSignature -- (-,-): 6ab - a - b
deriving DecidableEq, Repr
deriving DecidableEq, Repr, Fintype
instance : Fintype SheetSignature :=
{ elems := {.pp, .pm, .mp, .mm}
@ -201,9 +201,43 @@ def tunedWitnessRegion (polarity : Q16_16) : Set :=
The merged, deduplicated sequence of all obstruction values is the algorithmic
core of the sieve. -/
/-- Axiom: every integer n has some covered integer ≥ n (the 4 sheets produce
infinitely many distinct values). -/
axiom exists_covered_ge (n : ) : ∃ k ≥ n, coverageDensity k > 0
/-- Every integer n has some covered integer ≥ n (the 4 sheets produce
infinitely many distinct values). Proof: (a,b) = (n+1,1) on sheet (+,+)
gives obstruction 6·(n+1)·1 + (n+1) + 1 = 7n + 8, which is ≥ n and covered. -/
lemma exists_covered_ge (n : ) : ∃ k ≥ n, coverageDensity k > 0 := by
set k := 7*n + 8 with hk
have hk_ge_n : k ≥ n := by omega
have h_covered : coverageDensity k > 0 := by
unfold coverageDensity
-- (a,b) = (n+1,1) on SheetSignature.pp gives obstruction = 6·(n+1)·1 + (n+1) + 1 = 7n + 8 = k
set a := n + 1 with ha
have ha1 : a ≥ 1 := by omega
have ha_k1 : a ≤ k + 1 := by
have : 7*n + 8 ≥ n + 1 := by omega
omega
have h_obstruction : obstruction a 1 SheetSignature.pp = k := by
unfold obstruction; dsimp [a, k]; ring
-- Use nested Finset.product for the 3D search space
let sheetSet : Finset SheetSignature := {SheetSignature.pp, SheetSignature.pm, SheetSignature.mp, SheetSignature.mm}
let searchSpace : Finset ( × × SheetSignature) :=
(Finset.Icc 1 (k+1)).product ((Finset.Icc 1 (k+1)).product sheetSet)
have h_mem : (a, 1, SheetSignature.pp) ∈ searchSpace := by
dsimp [searchSpace, sheetSet]
refine Finset.mem_product.mpr ⟨Finset.mem_Icc.mpr ⟨ha1, ha_k1⟩, ?_⟩
have h1_ge_1 : (1 : ) ≥ 1 := by omega
have h1_le_k1 : (1 : ) ≤ k + 1 := by
dsimp [k]
omega
refine Finset.mem_product.mpr ⟨Finset.mem_Icc.mpr ⟨h1_ge_1, h1_le_k1⟩, ?_⟩
simp
have h_filter : (a, 1, SheetSignature.pp) ∈
Finset.filter (fun ((a',b',s) : × × SheetSignature) => obstruction a' b' s = k) searchSpace :=
Finset.mem_filter.mpr ⟨h_mem, h_obstruction⟩
have h_card_pos : (Finset.filter (fun ((a',b',s) : × × SheetSignature) => obstruction a' b' s = k)
searchSpace).card > 0 :=
Finset.card_pos.mpr ⟨(a,1,SheetSignature.pp), h_filter⟩
exact h_card_pos
exact ⟨k, hk_ge_n, h_covered⟩
/--
The merged obstruction sequence: all covered integers in increasing order,
@ -382,7 +416,41 @@ theorem covered_8 : (8 : ) ∉ witnessRegion := by
Unbounded witnesses is equivalent to infinitely many witnesses.
-/
axiom unbounded_iff_infinite : unboundedWitnesses ↔ Set.Infinite witnessRegion
lemma unbounded_iff_infinite : unboundedWitnesses ↔ Set.Infinite witnessRegion := by
constructor
· intro hunb
intro hfin
have ⟨fs, hfs⟩ := hfin.exists_finset
-- fs : Finset , hfs : ∀ a, a ∈ fs ↔ a ∈ witnessRegion
have hmax : ∃ (M : ), ∀ w, w ∈ witnessRegion → w ≤ M := by
by_cases h_empty : fs = ∅
· refine ⟨0, λ w hw => ?_⟩
have : w ∈ fs := (hfs w).mpr hw
rw [h_empty] at this
simp at this
· have h_nonempty : fs.Nonempty := Finset.nonempty_iff_ne_empty.mpr h_empty
refine ⟨fs.max' h_nonempty, λ w hw => ?_⟩
have hw_fs : w ∈ fs := (hfs w).mpr hw
exact Finset.le_max' fs w hw_fs
rcases hmax with ⟨M, hM⟩
rcases hunb M with ⟨w, hw, hw_gt⟩
have hw_le_M := hM w hw
omega
· intro hinf
intro N
by_cases h : ∀ w, w ∈ witnessRegion → w ≤ N
· have h_finite : Set.Finite witnessRegion := by
have h_sub : witnessRegion ⊆ (Finset.range (N+1) : Set ) :=
λ w hw => Finset.mem_coe.mpr (Finset.mem_range.mpr (by
have hw_le_N := h w hw
omega))
have h_fin_range : Set.Finite (Finset.range (N+1) : Set ) :=
Finset.finite_toSet _
exact Set.Finite.subset h_fin_range h_sub
exact absurd h_finite hinf
· push_neg at h
rcases h with ⟨w, hw, hw_gt⟩
exact ⟨w, hw, hw_gt⟩
/-! ## 10. Goormaghtigh Exponential Sheets