This project extends the Problem 6 result in
Archon-FirstProof-Results,
the formalization of OpenAI's informal proof for FirstProof. We used Archon to formalize two new informal proofs by Prof. Ingo Althöfer that improve the lower-bound constant, at a total cost of around $50. This yields two
independent Lean 4 proof variants:
FirstProof/FirstProof6_constant— lower bound improved fromε/256toε/20FirstProof/FirstProof6_constant3— lower bound improved fromε/256to(3/40)·ε
The following was generated and summarized by Archon.
The main theorem (Problem6.exists_eps_light_subset) states: for every simple graph G
and ε ∈ (0,1], there exists an ε-light vertex subset S with |S| ≥ c·ε·|V|, where c is a
positive absolute constant.
The original proof (FirstProof6) established c = 1/256 ≈ 0.004. This informal proof pushes c closer to the optimal value by refining the numerical constants.
As for the proof itself, the framework — a BSS coloring argument with a 6-step skeleton — is identical across all three versions. The only differences lie in the choice of numerical parameters.
problem6augmentation/
├── FirstProof/
│ ├── FirstProof6_constant/ # Variant 1: lower bound ε/20
│ │ ├── Problem6.lean # Main theorem
│ │ ├── Problem6Aux.lean
│ │ └── Auxiliary/ # 7 auxiliary modules (same structure as original)
│ └── FirstProof6_constant3/ # Variant 2: lower bound (3/40)ε
│ ├── Problem6.lean # Main theorem
│ ├── Problem6Aux.lean
│ └── Auxiliary/ # 7 auxiliary modules (same structure as original)
├── FirstProof_constant.lean # Library entry point (imports constant variant)
├── FirstProof_constant3.lean # Library entry point (imports constant3 variant)
└── lakefile.toml
- Lean version:
4.28.0 - Mathlib version:
v4.28.0
This section is for readers who have already read Archon-FirstProof-Results and want to know exactly what changed. The proof strategy is identical; all differences are parameter choices.
| File | _constant vs original |
_constant3 vs original |
|---|---|---|
Auxiliary/ColoringFramework.lean |
identical | one lemma rewritten (see below) |
Problem6.lean |
pervasive constant changes | major restructuring (see below) |
Parameter substitution — every occurrence of the old parameters is replaced by the new ones; the rest of the proof structure is word-for-word the same:
Old (FirstProof6) |
New (FirstProof6_constant) |
|---|---|
u₀ = ε/2 |
u₀ = 2ε/3 |
k = n/4 (nat division) |
k = n/3 (nat division) |
r = ⌈16/ε⌉ |
r = ⌈4/ε⌉ |
initial barrier bound 2n/ε |
3n/(2ε) |
total potential bound 3n/ε |
5n/(2ε) |
n ≥ 4 throughout |
n ≥ 12 |
small-n threshold n < 4 |
n < 12 |
final constant ε/256 |
ε/20 |
The arithmetic inside each lemma is updated to match, but no lemma is added, removed, or structurally changed.
This variant requires a different algebraic argument and introduces new definitions and lemmas.
def milkedK (n : ℕ) : ℕ := Nat.ceil (3 * (n : ℝ) / 8)
def milkedMStar (n : ℕ) : ℕ := n - milkedK n + 1
noncomputable def milkedCn (n : ℕ) : ℝ :=
(n : ℝ) / (milkedMStar n : ℝ) * ((13 * (n : ℝ) - 8) / (5 * (n : ℝ) - 8))
noncomputable def milkedU0 (n : ℕ) (ε : ℝ) : ℝ := (5 / 8 - 1 / (n : ℝ)) * ε
def milkedR (n : ℕ) (ε : ℝ) : ℕ := Nat.ceil (milkedCn n / ε)These replace the plain numeric expressions n/4, ⌈16/ε⌉, ε/2 used throughout
FirstProof6. Every lemma that previously took r, k, u₀ as explicit parameters with
specific bounds now calls these definitions instead.
milkedK_formula:milkedK n = (3 * n + 7) / 8lemma1_polynomial_ineq:milkedCn n ≤ (100/9) · (milkedK n / n)forn ≥ 3
lemma1_polynomial_ineq is the key inequality that drives the final constant computation
in eps_light_large_n.
Only one lemma changes: barrier_parameter_bound.
| Aspect | Old | New |
|---|---|---|
| hypothesis | 4 ≤ n |
3 ≤ n |
k |
n / 4 (nat division) |
Nat.ceil (3 * n / 8) |
u₀ |
ε / 2 |
(5/8 − 1/n) · ε |
| conclusion | u_k ≤ 3ε/4 ∧ 3ε/4 < ε |
u_k ≤ ε ∧ 0 < u₀ |
The new proof establishes u_k ≤ ε via the identity
(5/8 − 1/n) + (3/8 + 1/n) = 1 after bounding ⌈3n/8⌉ ≤ 3n/8 + 1,
and proves u₀ > 0 from 1/n ≤ 1/3 < 5/8 (using n ≥ 3).
total_barrier_bound_base: The initial barrier is now n / u₀ (i.e., n / milkedU0 n ε)
instead of the fixed 2n/ε, since u₀ is no longer a fixed fraction of ε.
good_pair_exists:
- Step B:
4m ≥ 3n(old) →milkedMStar n ≤ m(new). - Step E: the trace bound is now a strict inequality
tr(U) < n / u₀. - Step Q: the contradiction argument changes from
3n/ε < m·rton/u₀ + n/ε ≤ m·r, using the algebraic identityn/u₀ + n/ε = milkedMStar n · milkedCn n / εandm ≥ milkedMStar n,r ≥ Cₙ/ε.
total_barrier_bound: The old proof split into cases k ≤ r and k > r; the new
proof eliminates the case split and always runs the BSS induction directly.
eps_light_large_n: The proof splits on r ≤ 5 vs r ≥ 6:
- Case
r ≤ 5:|S| ≥ k/5,k ≥ 3n/8, so40|S| ≥ 3n ≥ 3εn. - Case
r ≥ 6: useslemma1_polynomial_ineqto get9n · Cₙ ≤ 100k, combined with5ε < Cₙandεr < Cₙ + εto conclude40|S| · r ≥ 40k > 3nεr.
eps_light_small_n: threshold changes from n < 4 to n ≤ 2.
Final theorem: exists_eps_light_subset now states |S| ≥ (3/40) · ε · |V|; the
case split is on 3 ≤ n / n ≤ 2.