Erdős–Straus Bench v0.2
五百萬個精確證人,而且不是證明。
Erdős–Straus bench 是 MMLC 第一個認真的應用:從搜尋證書回收公式、以符號驗證、提升模數,然後把整件事稽核一遍。以下每個數字都是有限驗證。它們沒有一個是猜想的證明 —— 而報告自己第一段就先講了。
問題
Erdős–Straus 猜想說:對每個整數 n ≥ 2,都存在正整數 x、y、z 使得
一個「證人」就是一組精確的三元組。這個 bench 用兩種方式產生證人:直接從週期公式得到,或在沒有公式覆蓋該剩餘類時去搜尋一個因子證書。
結果
| 指標 | 數值 |
|---|---|
| 發現區間 | 2 ≤ n ≤ 1,000,000 |
| 串流驗證區間 | 2 ≤ n ≤ 5,000,000 |
| 測試整數 | 4,999,999 |
| 精確證人 | 4,999,999 |
| 公式證人 | 4,952,917 |
| 搜尋證人 | 47,082 |
| 無效證人 | 0 |
| 最大觀察 x 偏移 | 14,在 n = 118,801 |
| 吞吐量 | 每秒 48,648 個 n |
| 未解值 | 0 |
全體證人串流雜湊成單一值,所以整個五百萬整數的執行是一個可比對的物件:
e13790fe5d7abcbda27a08433c9e42b640b605dda9f828e3e175f52ed602f160公式回收
有意思的結果不是證人的數量,是有多少搜尋案例變成了公式。同一台機器、同一區間、同一搜尋預算:
| 指標 | v0.1 | v0.2 |
|---|---|---|
| 由公式直接解出 | 978,571 | 990,582 |
| 由搜尋解出 | 21,428 | 9,417 |
| 未解 | 0 | 0 |
| 耗時 | 14.619 秒 | 11.444 秒 |
21,428 個搜尋案例中有 12,011 個被回收成直接的公式證人 —— 在同一區間、同一預算下,搜尋負擔下降 56.05%。
機制是一條管線,不是一個靈感。把公式外的證書依 (x 偏移, d, a) 聚類、推導週期、建立候選公式、以符號驗證,然後提升模數。
候選選擇
在基底模 840 上的貪婪選擇自己挑出三個候選,而它們與已經凍結在 Runtime 裡的公式完全一致。
| 候選 | 觀察數 | 週期 | 對模 840 新增的類 |
|---|---|---|---|
| h=1, d=10, a=7 | 913 | 280 | 73、193 |
| h=1, d=5, a=7 | 867 | 140 | 433、673 |
| h=1, d=20, a=7 | 740 | 280 | 313、793 |
selection_matches_runtime = true。自動選擇器與凍結公式庫在沒有被告知的情況下達成一致。
覆蓋階梯
加入 q = 11、17、23 的質數證書需要提升模數,因為它們的週期 44、68、92 不整除 840。
| 階段 | 模數 | 覆蓋 | 未覆蓋 | 覆蓋率 |
|---|---|---|---|---|
| v0.1 公式庫 | 840 | 822 | 18 | 97.857143% |
| 加入 h=1, d=5,10,20 | 840 | 828 | 12 | 98.571429% |
| 加入 q=11 | 9,240 | 9,132 | 108 | 98.831169% |
| 加入 q=17 | 157,080 | 155,460 | 1,620 | 98.968678% |
| 加入 q=23 | 3,612,840 | 3,578,820 | 34,020 | 99.058359% |
不同模數下的「未覆蓋數量」不可直接相比。這個 bench 在每次提升時,都在同一個新模數下保存加入前/加入後的邊際覆蓋,正是為了讓那個往上長的未覆蓋欄位不會被讀成退步。
符號驗證
公式週期中每一個有效剩餘類都被展開成獨立的符號案例,而不是驗一次抽象恆等式就把整數性條件揮手帶過。
| 指標 | 結果 |
|---|---|
| 公式族 | 14 |
| 符號案例 | 32 |
| 符號殘差為零 | 32 / 32 |
| MMLC 符號帳本狀態 | PASS |
| 代入情境 | 4 |
| 符號—數值交換格 | 640 |
| 交換失敗 | 0 |
容忍度負對照
這是這個 bench 找到最有用的一件事,而它關於 MMLC,不關於數論。
在 n = 4565 刻意竄改一個證人 —— 把 z 挪成 z+1 —— 會產生一個極小但不為零的精確殘差。在 numeric_tolerance = 1e-12 之下,稽核漏掉了它。在 exact profile 之下,每次都抓到。
純數學帳本的數值容忍度必須恰好為 0。「只是很小」的容忍度是一台假陰性產生器,而這個 bench 把那個失敗案例永久保留為負對照。
同一組稽核裡還有:256 個清潔證人全部通過、32 個 z→z+1 竄改以 precision/recall 1.0 定位,以及 32 個有號殘差案例在全域加總為零、但每個局部錯誤仍被找出來。
這不是什麼
- 五百萬以內未解值為零對所有整數成立的證明
- 提升模數內的覆蓋密度自然密度證明,或猜想為真
- 公式沒有覆蓋到的剩餘類反例 —— 搜尋證書仍可能存在
- 一條回收出來的公式在數學文獻中首次出現的主張
- 搜尋預算耗盡反例 —— 它回報的是 UNRESOLVED UNDER BUDGET
發現區間與驗證區間是分開的。那不是統計上獨立的測試集;它只防止在大型掃描途中一邊看結果一邊改公式庫。
下一步
v0.2 公式庫凍結之後,五百萬範圍內剩下的 12 個模 840 搜尋類,依因子分成三群:
| 因子 | 模 840 的類 |
|---|---|
| d = 13 | 121、289、481、649 |
| d = 26 | 1、169、601、769 |
| d = 52 | 241、361、409、529 |
三群都需要提升到模 10,920。那是 v0.3 的優先研究節點,而在那之前,這些類都不能宣稱已被覆蓋。
方法論文件對剩下的形式化缺口說得很直白:週期條件目前是程式內的週期證書。形式證明仍然需要把整除與同餘條件移植到 Lean 或 Coq。