第169章 幽靈機器的終焉
九月十二日,正式開課後的第一個下午。
六點零七分。
項目組會議室的大屏幕上,孤零零地掛著一句寫於1990年的判斷。
【人們永遠無法證明:Σ(5)=4098,S(5)=47176870。】
下面,端端正正地署著一個名字。
艾倫·布雷迪(Allen Brady)。
對於繁忙海狸(Busy Beaver)問題的人來說,這都是一個繞不開的名字。
1983年,他完成了四狀態繁忙海狸的證明。
而五狀態繁忙海狸那台著名冠軍機,由馬克森(Marxen)和邦特羅克(Buntrock)在1989年找到。
那是一台宛如奇蹟般的機器,它會在全白紙帶上運行整整四千七百一十六萬八千八百七十步,然後在停機的那一瞬間,留下四千零九十八個「1」。
冠軍早已找到,甚至被人們瞻仰了三十多年。
但問題在於,誰也無法在數學和邏輯上給出一個堅不可摧的證明:在這個龐大的搜索空間裡,在等價約化前超過十六萬億張轉移表、經過樹形規範化後仍需處理上億台代表機器的搜索空間裡,誰也無法排除另一台藏得更深、跑得更久的機器。
五個狀態。
兩個符號。
一張只有十個轉移位置的表格。
這就是五狀態圖靈機的全部構成。
它的規則是如此簡單。
任何人,只要花上幾分鐘,都能把它的規則抄在一張便簽紙上。
然而,正是這近乎原初的簡單,孕育出了連現代超級計算機都無法窮盡的複雜性。
幾代最頂尖的研究者前赴後繼,先後嘗試循環判定、符號壓縮、閉合紙帶語言、有限自動機約簡和形式化驗證,卻始終無法給這兩個數字蓋上最後一枚印章。
32年前,布雷迪在耗盡了無數心血後,乾脆把它寫進了自己的預測清單。
永遠無法證明!
喬聞鐸今天又把這句話放了出來。
這位在形式化驗證領域摸爬滾打了半輩子的老教授,此刻雙手撐在會議桌的邊緣,靜靜地注視著大屏幕。
他之所以放出這句話,是因為大屏幕右側,還掛著項目組全庫復驗後的最後一行狀態提示。
【Unresolved_Machines:1】
九月十日,當大一新生江臨剛剛完成軍訓物資清退,還在操場上聽著院系入學教育的喧鬧時,兩支被嚴格物理隔離的實現組,已經悄然完成了共享可信核的獨立盲測。
那是一場不見硝煙的慘烈戰爭。
中間出現過一次足以讓整個團隊驚出冷汗的分歧。
當時,OCaml實現組在處理一段裁剪紙帶兩端空白格的邏輯時,由於一個極其隱蔽的思維盲區,將底層容器的起始下標誤當成了邏輯坐標,直接吞掉了一段本該保留的平移量。
第三方測試組毫不留情地抽取了最小復現件。
江臨被緊急召回,他沒有看兩邊的代碼,而是直接依據凍結在保險柜里的規範文檔,給出精確的解釋。
兩支團隊被迫推翻之前的進度,重新編譯可執行文件,從第一個隱藏樣例開始,全量重跑了所有的測試用例。
那是令人窒息的幾個小時。
最終的結果傳回時,所有人都屏住了呼吸。
Rust通過。
OCaml通過。
兩份裁決摘要的哈希值在校驗器中逐位比對,綠色的MATCH亮起,宣告一致。
九月十一日,安全教育與學籍補項按校歷有條不紊地推進。
與此同時,全庫復驗也在同一天轟然啟動。
八千八百六十六萬四千零六十四台種子庫機器,連同項目組這幾個月來日夜不休生成的非停機見證,被像傾倒進巨型熔爐的礦石一樣,分批送進兩套互不通信的核驗器中。
精確循環機制啟動。
平移循環機制啟動。
反向不可達判定樹展開。
成百萬、上千萬台機器在經過嚴苛的審查後,從待判隊列里消失,化為資料庫中一行行確定的綠色記錄。
舊證書里的格式錯誤、機器哈希錯配、甚至是多年前留下的坐標約定污染,被核驗器無情地逐一退回,強制重新生成。
每一台被標記為非停機的機器,都必須給出一份無可辯駁的證據。
一條能夠從機器底層語義層面重新走通的證明路徑,絕不允許任何概率性猜測。
到九月十二日下午,現有證書全部復驗完成。
八千八百多萬台機器構成的浩瀚星海中,只剩下最後一台。
最後一台的狀態欄里沒有REJECT,只有UNKNOWN。
項目組至今拿不出任何可核驗見證。
喬聞鐸關掉布雷迪那句沉重的預測,拿起遙控筆,將最後一台機器的轉移表放大,直到它占據了整個屏幕的中心。
【Skelet #17】
只有五行,兩列。
十個轉移位置。
表格小得一張便簽紙就能抄下。
「這台機器來自格奧爾基·Skelet·格奧爾基耶夫在2003年公布的四十三台holdouts,因此被稱為Skelet #17。」
喬聞鐸站在屏幕左側,聲音在空曠的會議室里顯得格外低沉。
「我們嘗試了所有常規武器,精確循環無效,平移循環無效,反向不可達集合我們強行展開到了第九層,但狀態數量在那之後開始呈現出恐怖的指數級膨脹,內存直接溢出。」
喬聞鐸的語氣中透出深深的疲憊。
「現有最長軌跡,已經超過了兩百億步。仍然沒有停機。更可怕的是,它也沒有進入任何能被現有規則捕捉的重複結構。」
周述在一旁接手操作。
他深吸了一口氣,將一張龐大的空間—時間圖調了出來。
黑白相間的紙帶軌跡瞬間占滿了整面牆的屏幕,仿佛某種遠古生物的複雜基因圖譜,又像是高空俯瞰下的異星城市遺蹟。
「這就是它兩百億步的生命歷程。」周述指著屏幕上那些密密麻麻的紋理說,「讀寫頭在越來越寬的區間裡來回掃動,像一個不知疲倦的織布工。它寫入,擦除,再折返。圖像的外沿在不斷擴張,紙帶越來越長。」
周述說著,放大了其中一個區域。
「但是內部卻找不到兩個完全相同的截面,繼續模擬下去沒有任何意義。」
周述轉頭看向眾人,語氣篤定。
「兩百億步和兩千億步,甚至兩萬億步,在這裡沒有本質區別。只要它還能在邊界上生成新的紙帶結構,只要它的行為沒有展現出閉合的周期性,我們就永遠等不到循環。」
會議桌的另一端,葉寧揉了揉布滿紅血絲的眼睛,調出項目組連日來熬夜趕出的三份厚厚的分析報告。
「項目組先後嘗試過三條分析路線。有人把它看成一種廣義的二進位計數器,試圖用進位法則去框定它;也有人懷疑它在模擬某種類似於考拉茲猜想的動態疊代,所謂的3n+1變體。」
葉寧繼續翻頁。
「我們嘗試了三套最先進的壓縮模型去解釋它的軌跡。在局部,這些模型確實能完美契合。但只要推到邊界歸併的極端情況,只要讀寫頭觸碰到那個特定的0與1的交界,模型就會瞬間斷裂,所有的預測都會失效。」
她把最後一份報告翻到末頁,展示給所有人。
【結論:現有抽象不足以排除未來停機。】
屏幕右上角,那個數字仍然是1。
就像懸在整個團隊頭頂的達摩克利斯之劍。
只要這個1還在那裡,布雷迪的預言就依然生效。
四千零九十八就只能被稱為下界,四千七百一十六萬八千八百七十也僅僅只是一個候選值。
整個五狀態繁忙海狸問題四十年的歷史,幾代人的心血,此刻全都被死死壓在這張只有十個格子的微小轉移表上。
喬聞鐸轉過頭,將目光投向了坐在會議桌最末端的江臨。
這個名義上的大一新生,穿著一件普通的純色T恤,面容平靜得像是一汪沒有波瀾的湖水。
但就是他在過去的幾天裡,一次又一次地展現出了遠超常人的敏銳與決斷。
「共享可信核已經圓滿完成了它的任務。」喬聞鐸對江臨說,語氣中不無期待與託付,「現在,我們缺的是一份能被它檢查、能經受住數學界審視的見證。」
江臨的視線從那張轉移表上掃過,在腦海中快速重構著這十個轉移規則背後的代數結構。
十幾秒後,他抬頭說道:「把單步動畫關掉。」
周述愣了一下,隨即敲下空格鍵,按下了暫停。
屏幕上那片令人眼暈的黑白軌跡,呈現出龐大到令人絕望的紙帶狀態。
「只保留讀寫頭每次回到最左側分隔符的配置。」江臨站起身,走向前方的白板,「中間那些繁雜的來回掃動,全部隱藏,狀態屬性也要保留下來。」
葉寧心領神會,立刻拖出系統里的軌跡篩選器,雙手在鍵盤上飛快敲擊,重新設定採樣條件。
密集的運行記錄迅速收縮,最後,屏幕上只剩一列時間間隔越來越長的紙帶快照。
第一張快照。
第二張快照。
第三張快照。
當過濾完成時,眾人的目光都被吸引了過去。
每一次快照里,紙帶上都不再是雜亂無章的黑白像素,而是呈現出詭異的規律性。
長短不一的連續1的區塊,中間被單個的0精確隔開。
隨著機器模擬輪次的不斷運行,有些連續的1段在增長,有些在縮短,還有一些被無情地向右側推開。
「單看這些長度,依然是雜亂的數值。」江臨走到白板前,拿起一支黑色的白板筆,「但如果你們仔細看變化發生的位置,就會發現它隱藏著清楚的順序。」
說著,他提筆在白板上寫下一段最基礎的紙帶符號表示。
【0 1ᵃ⁰ 0 1ᵃ¹ 0 1ᵃ² 0 …… 1ᵃᵏ 0】
「它沒有在紙帶上製造隨機圖案。」
江臨轉身在每一段連續1的上方標出一個整數。
「這些連續段是一張用一進位寫出來的整數表。讀寫頭每完成一次長程的往返掃描,看起來修改了成千上萬個格子,但在宏觀層面,它僅僅只修改了其中一項的數據。下一次完整的掃描,它會去修改相鄰的另一項。當某一端發生進位時,它的修改方向就會發生反轉。」
周述猛地站直了身體,他瞪大眼睛,目光在那列被篩選出的整數快照上快速移動,大腦在飛速運轉。
十幾秒鐘後,他像觸電一般衝到了大屏幕旁,用手指著連續八張快照的變化位置,聲音因為激動而微微發顫:「零,一,零,二,零,一,零,三。」
會議桌邊,剛才還在敲擊鍵盤的幾個研究員,手部的動作瞬間停滯了懸在半空。
「格雷碼(Gray Code)。」周述脫口而出,轉頭看向江臨。
「對。」江臨點了點頭。
在計算機科學中,格雷碼是一種特殊的二進位編碼方式。
它最顯著的特徵是,相鄰兩個數之間,永遠只有一個二進位位發生改變。這種特性常用於硬體設計中以消除毛刺。
而這台只有五個狀態、簡陋到極點的圖靈機,竟然用它那左右往返、看似愚笨的讀寫頭,以及紙帶上一串串長短不一的1,在兩百億步的狂飆突進中,硬生生地把一整套格雷碼的更新次序,天衣無縫地藏進了紙帶的結構演化里!
過去十幾年裡,所有研究者的分析都深陷在泥潭中,因為他們都在試圖追蹤每一格紙帶在每一納秒里究竟發生了什麼。
那是一個細節爆炸的微觀地獄。
而江臨,直接把觀察的尺度抬高了整整一個維度。
「一輪長程掃描結束後,具體在這個區間裡寫過多少個1,已經不再重要了。」
江臨的語速不快,但每一個字都像釘子一樣敲進眾人的腦海里。
「我們要剝離無關變量。需要保留的只有三類信息:作為符號參數存在的活動段索引iii,當前掃描階段,以及邊界標記的奇偶類。八個宏狀態只描述控制階段、掃描方向與奇偶類的組合,活動段索引和各段長度仍作為證書中的符號參數存在。」
葉寧作為形式化驗證的老手,此時已經完全明白過來他到底想做什麼。
「但是這個列表的長度是會無限增長的啊!」葉寧指著屏幕邊緣,眼中閃爍著興奮的光芒,「如果只記錄活動段的位置和奇偶性,能覆蓋未來所有新生成的連續段嗎?」
「能。」江臨毫不猶豫地回答,「因為每個新段的產生,都必然通過同一個固定的進位模板。」
說完,他在白板的右側,刷刷刷地寫出了三類局部重寫規則的大綱。
1、普通翻轉。
2、向右進位。
3、抵達邊界後的反向掃描。
「列表可以向右無限延伸,宇宙毀滅它也不會停。但生成這無盡列表的規則,只有這三種。」
江臨轉過身,直視著所有人。
「所以,我們的非停機見證不需要裝下整張紙帶的快照,那是內存裝不下的。我們只需要在數學上證明:所有合法的列表狀態,在經過一次這樣的宏轉換之後,仍然屬於我們定義的同一個集合。只要這個集合是閉合的,機器就永遠逃不出去。」
「那停機條件呢?」喬聞鐸從桌邊霍然站起,快步走到屏幕前。
長年做學問的穩重此刻也被打破了。
江臨走過去,手指直接點在轉移表最後那個顯眼的未定義入口上。
「這台機器要撞進停機狀態,條件極為苛刻。它必須同時滿足三個前提:第一,它必須在回收階段抵達當前編碼區的右端分隔符;第二,以指定狀態讀取空白符;第三,讓邊界標記落在偶類。」
「只有這三個條件同時成立,那個未定義轉移才會被觸發。」
江臨轉身,沿著剛才寫出的宏轉換邏輯,一層層向下推導。
筆在白板上劃出一道道嚴密的邏輯鏈條。
「根據剛剛拆出的三類宏轉換,活動段每向右推進一次,邊界奇偶位都會隨對應的進位模板翻轉。這個結論來自機器自身的局部重寫關係,而非格雷碼的一般性質。」
「因此,我們可以得出結論:當機器抵達當前編碼區的右端分隔符形成宏狀態時,它的奇偶標記永遠落在奇類,也就是非停機類。而如果奇偶標記碰巧符合了停機要求的偶類時,對不起,此時活動段與邊界之間,至少還隔著一個不可逾越的分隔符,它根本觸碰不到邊界。」
「那個未定義的停機入口確實就在那裡,敞開著大門。」
江臨看著眾人,語氣平靜得讓人不由得冒起雞皮疙瘩。
「卻不屬於任何一個從初始配置可達的宏狀態。」
喬聞鐸稍一思索,拿起桌上的另一支紅色白板筆,走到江臨身邊。
在江臨列出的宏狀態旁,畫了一個圈,加上了一個退化情況。
他敏銳地察覺到了這個宏大架構中的一個風險點。
「你的理論很精妙。但如果中間這一段連續的1縮減到零呢?兩個0分隔符直接合併,活動位置會發生跳躍,直接跨過一層,方向標記也會在跨層合併的同時發生翻轉。」
江臨微微一笑,仿佛早就預料到了這個問題。
他接過紅筆,在歸併規則的下方補上了一行嚴密的代數推導。
「跨層發生以後,雖然發生了一次額外的翻轉,但由於位置的跳躍補償了相位的損失,新的邊界奇偶類經過計算,仍然與停機類保持相反。它依然落入我們的不變量集合中。」
周述緊接著舉起手,指出了系統實現層面的第二個問題。
「邏輯上成立了,但是核驗器怎麼識別?如果兩個分隔符合併成連續的00,讀寫頭停在其中任意一格時,左右兩種編碼都可能成立。核驗器在匹配規則時會產生歧義,怎麼避免把兩個不同的宏狀態識別成同一個?」
「很簡單。把讀寫頭停留在分隔符上的朝向,強制寫進狀態定義里。」江臨在白板上畫了一個帶有箭頭的方塊,「我們不做對稱歸併,破除歧義。」
原本白板上的六個宏狀態,因為這一調整變成了八個。
葉寧沒有廢話,直接從伺服器里調出了之前運行的最長軌跡,從中抽取出所有發生過邊界歸併的極端樣本。
她把這些數據打包,逐條投入到江臨剛剛定義的新的宏狀態邏輯中進行跑批測試。
三十七次嚴重的邊界歸併。
全部安全著陸,無一遺漏地落在江臨剛寫出的那兩條邊界路徑里。
當然那,這三十七條軌跡能證明新抽象與已知數據一致,還是無法替代對全部符號參數的閉包證明。
會議室里原本同時打開的幾個鍵盤,打字聲逐漸停了下來。
所有人都停下了手頭的工作,目瞪口呆地看著白板上的推導。
喬聞鐸重新看向白板。
「歷史樣本過了,現在,怎麼把無限個參數情形交給核驗器?」
他此時問出的第三個問題,已經不再是懷疑這個不變量是否成立,而是已經直接跨越到了工程實施的層面。
江臨在八類宏控制狀態的外圍,畫了一個大大的方框,將其整體圈住。
「在系統中,單獨建立第四類非停機見證類型——宏狀態不變量見證。」
「底層的公共可信核呢?」第三方負責人立刻追問,因為這關係到整個驗證架構的公信力。
「公共核保持凍結,絕對不能修改。」
江臨說完在方框外寫下三條冷硬的檢查條件。
【條件一:驗證初始配置是否安全進入宏狀態集合。】
【條件二:窮舉所有的局部重寫規則,驗證其是否能保持集合閉合。】
【條件三:驗證宏狀態集合是否與停機入口徹底互斥。】
「具體的工程方案是這樣的:新的見證文件只負責提交宏狀態的定義、符號塊的劃分以及局部重寫的模板。公共核繼續負責驗證圖靈機的一步轉移語義和有限基例;新的宏狀態核驗器負責檢查參數化重寫模板的歸納條件、集合閉包與停機排除。兩層之間只通過凍結後的機器語義接口連接。」
江臨看著周述和第三方負責人,侃侃而談。
「Rust組和OCaml組,分別獨立實現針對這八類宏控制狀態的核驗器擴展模塊。第三方,你們的責任是,想盡一切辦法生成能擊穿這八個狀態邊界的變異樣例。」
「兩組開發人員能看到你的白板推導嗎?」喬聞鐸問。
「只給抽象的規範文檔和序列化後的證書格式。隔離必須徹底。」江臨平靜地說。
喬聞鐸抬起腕錶看了一眼時間。
晚上七點二十六分。
從江臨下令關掉單步動畫,到他在白板上徒手寫出完整的足以鎮壓Skelet #17的核驗邊界,用了一個小時十九分鐘。
喬聞鐸轉過身,目光如炬,掃過周述和第三方負責人。
「都聽清楚了?開啟新的規則編號,兩套實現團隊繼續保持絕對隔離,切斷一切私下通訊。今晚九點前封存規範文檔,明天一早,開始盲測。」
周述深吸了一口氣,合上桌面那疊曾經耗費了他們無數心血,此時已經失效的分析報告。
他轉過頭,又看了一眼大屏幕右上角那個紅色的數字1。
「這一次總該輪到它歸零了吧。」周述喃喃自語,手心全是汗。
接下來的三天,是近乎瘋狂的三天。
江臨在白板上畫出的那八類宏控制狀態,被嚴格的數學語言拆解,最終變成了十七頁密密麻麻的規範文檔、四十三條覆蓋所有邊緣情況的局部重寫模板,以及六類專門由第三方用來攻擊邊界的惡毒隱藏樣例。
盲測的交鋒極其慘烈。
第一輪盲測啟動。
僅僅四個小時後,Rust實現組的核驗器突然報警,在驗證集合閉合性時崩潰。
Rust實現首先拒絕了證書。
原因是從全白紙帶進入第一類宏狀態的有限前導運行段沒有寫入序列化格式。
宏狀態不變量本身不受影響,但證書缺少初始入口見證。
江臨收到報告後,沒有任何情緒波動,只是補入前導運行段及其哈希,重新封存證書。
第二輪盲測。
OCaml實現組發難。
他們的邏輯引擎拒絕了一條跨越雙分隔符的歸併路徑,認為該路徑存在邏輯斷裂。
第三方測試組立刻介入,他們沒有看代碼,而是直接調用底層的機器重放功能,逐幀比對。
三個小時後,確診問題並非規範出錯,而是OCaml組在將證書進行序列化處理時,不慎漏掉了一位方向標記,導致反序列化時數據錯位。
修正代碼。
重新編譯。
重新封存哈希。
再次開啟盲測。
時間來到了九月十五日,晚上十一點四十一分。
項目組會議室里重新坐滿了人。
沒有人說話,連呼吸聲都被壓抑到了最低。
空氣中瀰漫著濃烈的黑咖啡味和持續熬夜帶來的焦躁感。
大屏幕左側,仍然是布雷迪1990年的那句悲觀判斷。
而右側,則是兩套物理隔離的核驗器的實時運行窗口。
黑底綠字的終端屏幕上,校驗日誌不斷刷新。
突然,左側的Rust窗口停止滾動。
進度條走到了100%。
【Gray_Invariant_Witness / ACCEPT】
【Skelet_17 / NONHALT】
周述握著滑鼠的手停在桌面上。
在形式化驗證的鐵律里,一套實現的通過,僅僅只能證明一套程序認可了這份見證。
如果沒有另一套獨立代碼的印證,它在數學上仍然是不完備的。
右側的OCaml窗口仍在以一種令人抓狂的緩慢速度,逐條展開最後六個最複雜的邊界歸併模板測試。
第四十條檢查通過。
第四十一條檢查通過。
第四十二條……驗證宏狀態互斥性……通過。
第四十三條……
全場死寂。
葉寧不自覺地咬緊了下唇。
光標猛地下移一行。
【Gray_Invariant_Witness / ACCEPT】
【Skelet_17 / NONHALT】
緊接著,仿佛是約好的一樣,兩邊的系統同時開始生成最終的結果驗證摘要。
屏幕底部彈出了對比進程。
兩秒鐘後。
【Cross_Impl_Result_Digest / MATCH】
資料庫總控程序在接收到這份雙重確認的無懈可擊的見證後,底層邏輯觸發。
它將目錄里最後一個被標記為UNKNOWN的條目,毫不留情地劃入了NONHALT的分類中。
大屏幕右上角,那個懸掛了不知道多少個日夜,猶如噩夢般的數字,輕輕跳動了一次。
【Unresolved_Machines:0】
周述猛地向後仰倒,重重地靠在人體工學椅的椅背上。
巨大的力量讓椅輪在硬木地板上發出呲啦一聲,向後滑出去一米多遠。
「真歸零了!」
周述的嗓音因為極度壓抑後的爆發而變得嘶啞。
葉寧沒有時間歡呼。
她立刻撲到鍵盤上,將最終生成的證書總包重新拖進斷網的離線環境裡。
手指顫抖著,連續計算了SHA-256與BLAKE3兩組摘要。
屏幕返回了完全一致的哈希字符串。
她這才長長地出了一口氣,抬起頭,看向站在前方的喬聞鐸,重重地點了點頭。
第三方負責人一言不發,直接伸手拔掉了連接測試伺服器的外網網線接口。
手法熟練地開始封存兩套編譯實體程序的二進位文件、隱藏的測試集,以及長達幾十個G的完整運行日誌。
這是未來應對任何學術質疑的鐵證。
喬聞鐸站在原地,仿佛一尊雕像。
視線久久地停留在那個0上,然後緩緩移到左側布雷迪的預測上,最後又重新落回資料庫的總控頁面。
四十多年。
從他還是個年輕學者的時候起,五狀態繁忙海狸的這兩個候選值,就一直像兩座幽靈般的燈塔,印在無數的論文、博客論壇和計算理論經典教材的邊緣注釋里。
每一次提到它們,後面都無可奈何地跟著同一個刺眼的詞語。
未證明!
而現在,今晚。
最後一台不可一世的幽靈機器,被戴上了非停機的枷鎖。
八千八百六十六萬四千零六十四台種子庫機器,每一台都獲得了可追溯、可獨立核驗的非停機判定路徑。
此前被模擬確認停機的機器,則保留在完整枚舉目錄的另一條索引中。
喬聞鐸深吸一口氣,邁步走到會議桌最前方的主位上。
「報最終數據,枚舉目錄。」
「雙路獨立生成,數量完全一致,底層哈希一致,無遺漏。」第三方負責人大聲回答。
「已知冠軍核驗。」
葉寧將兩套獨立模擬器的最終狀態投射到主屏幕中央。
【Maximum_Halting_Steps:47,176,870】
【Maximum_Ones_On_Tape:4,098】
「非停機分類狀態。」
周述雙手敲擊回車,打開了最終的全局索引表。
「所有非停機條目,均能百分之百回指到對應的證書文件、核驗器版本號和機器原始哈希,無一孤立。UNKNOWN分類,確認為零。」
喬聞鐸緩緩取下鼻樑上的老花鏡,從口袋裡掏出眼鏡布,將鏡片仔細擦了一遍。
當他再次戴上眼鏡時,屏幕上那三行決定性的結果,依然安安靜靜地立在那裡,宣示著永恆的數學真理。
他拿起桌上一本厚重的項目總記錄冊,翻到最後空白的一頁。
拔出鋼筆,在最終結論欄里,一筆一划地寫下——
【S(5)=47,176,870】
【Σ(5)=4,098】
日期:2022年9月15日。
筆尖離開紙面的那一刻,喬聞鐸抬起頭,環視著會議室里的每一個團隊成員。
「諸位。」他的聲音有些顫抖,「從現在這一秒開始,這兩個數,可以從候選名單里刪除,正式編入人類數學與計算理論的定理欄了。」
會議桌邊,驟然爆發出雷鳴般的掌聲。
最先拍手的是那位平時極其嚴苛、專找麻煩的第三方負責人,他拍得手掌發紅。
隨後是葉寧、周述。
緊接著,會議室旁邊的幾個大型視頻通訊窗口裡,那些連續參與了數月復現、分布在世界各地的外部協作者們,也紛紛起立鼓掌。
有人摘下耳機,激動地在狹窄的房間裡走來走去。
有人熟練地使用截圖工具,把屏幕上那三行結果截進自己的工作記錄中,作為見證歷史的私人勳章。
還有人已經迫不及待地在公共頻道里敲字,開始索要最終的加密證書包。
江臨安靜地坐在靠近白板的角落位置。
掌聲如潮水般將他包圍,但他只是靜靜地看著白板上的公式,仿佛這一切喧囂都與他無關。
掌聲持續了整整十幾秒。
喬聞鐸雙手下壓,等聲音稍微平息了一些,他立刻恢復了項目負責人的沉穩,開始連夜分配掃尾任務。
「值守人員按預案分組完成歸檔,其餘人員輪換休息。證書包、兩套核驗器的核心源碼、規範化後的機器目錄、以及完整的構建說明,分成四份進行冷備份歸檔。記住,今晚的數據只發給名單上預定好的幾個外部頂級復現節點。論文的最終標題先不定,但在外部節點回傳驗證通過之前,我們的結論,一個字也不許向外媒和學術界透風。」
周述一邊打包文件一邊問:「學校那邊呢?」
「我親自來報。」
喬聞鐸拿起手機,大步走到會議室外走廊的盡頭,撥出了一個號碼。
深夜十二點,電話僅僅響了兩聲就被接起。
兩分鐘後,電話另一端的那位計算機系負責人顯然已經接收並打開了喬聞鐸發過去的簡報郵件。
「老喬,你郵件最後附的那個0,指的是我們之前討論的那個全庫機器,全排除了?」電話那頭的聲音透著掩飾不住的震驚。
「全部,無一死角。」喬聞鐸回答得斬釘截鐵。
「那是誰把最後一台那塊硬骨頭啃下來的,Skelet的那個幽靈,你們用了什麼新算法?」
喬聞鐸隔著會議室的玻璃牆,深深地看了一眼站在白板前的那個年輕身影。
白板上,江臨徒手寫下的那八類宏控制狀態定義和代數推導,依然清晰可見。
「江臨。」喬聞鐸對著電話說。
電話那頭陷入了長達幾秒鐘的死寂。
「又是那個孩子?」那頭的聲音顯得不可思議,「前幾天你們報上來說共享可信核的架構,也是他定的?」
「對,底座架構,加上最後的數學見證,全是他。」
「我如果沒記錯的話校歷,他今天應該才剛剛正式開課到第四天吧?」
喬聞鐸嘴角泛起一絲連他自己都沒察覺的驕傲微笑:「對,大一新生,第四天。」
會議室里,第一批面向全球頂尖學者的外部復現郵件已經通過加密通道發出。
收件人名單很短,只有寥寥幾個名字。
但這幾個名字的份量,足以撼動整個理論計算機科學界。
其中既有幾十年來一直像苦行僧般維護BB(5)機器資料庫的骨灰級研究者,也有在形式化驗證和小型圖靈機領域享有盛譽的理論大牛。
郵件內容很短。
沒有長篇大論的新聞稿,沒有誇張的成果介紹,甚至沒有寒暄。
只有一行指向代碼倉庫的臨時只讀地址、四組用於防篡改的哈希校驗碼,以及一句簡單到有些傲慢的請求。
【請獨立構建底層環境,並嘗試推翻這一結論。】
零點十七分。
系統監控日誌顯示,第一個位於歐洲的外部節點開始下載新增的宏狀態證書、兩套核驗器源碼,以及最終索引增量。
零點四十三分。
第二個北美節點發回握手協議,確認完成機器龐大目錄的初步校驗。
凌晨一點零六分。
一封來自外部復現節點的郵件進入喬聞鐸的郵箱。
發件人從2003年起便持續追蹤Skelet #17的運行規律。
他沒有對整個BB(5)問題的終結發表任何宏大的評價,而是直接略過了前八千八百萬台機器,一針見血地將目光聚焦在江臨寫出的那份格雷碼不變量見證上。
郵件正文裡,他在規範文檔的頁碼後面,尖銳地標出了三個他認為可能存在致命漏洞的數學邊界問題。
空段歸併時的極值坍縮。
雙分隔符狀態下的向後查找歧義。
邊界奇偶翻轉時的相位丟失。
這三個問題直指核心。
全都是之前第三方盲測組耗費無數精力才攻擊過的險隘。
喬聞鐸微微一笑,沒有任何猶豫,直接將對應的四十三條重寫規則的證書編號,以及Rust和OCaml兩套不同實現底層在處理這些邊界情況時的詳盡運行記錄和日誌反推斷言,打包作為附件,點擊了回復。
二十六分鐘後。
那邊的收件箱再次閃爍。
這一次,對方發來的郵件正文更短,只有兩行字。
【三個邊界均已形成邏輯閉合。無懈可擊。】
【請告訴我,規範文檔的作者,那個Jiang Lin是不是那個Jiang Lin?】
周述看完了屏幕上的這封郵件,轉過頭,將筆記本電腦的屏幕轉向了江臨。
「江臨,這位老前輩的問題,你說我該怎麼回他?」周述打趣道,連日的疲憊似乎一掃而空。
江臨正在收拾自己的背包,他偏過頭,淡淡地看了一眼屏幕上的名字。
「按學術界的規矩,正常提供項目貢獻說明回復就行。」他平靜地說,語氣里聽不出一絲炫耀。
凌晨三點二十二分。
窗外的天色依然漆黑,但距離黎明已經不遠。
叮。
一聲清脆的系統提示音在會議室里炸響。
第一個持有完整資料庫鏡像的外部節點完成獨立構建和全量索引覆核。
隨同跑批結果一起發來的審查備註里,第一句話是用加粗的英文字體寫著的。
「如果你們的全庫哈希索引在未來幾天內繼續保持一致沒有衝突,這將是計算理論四十多年來,第一個被完全確定的新繁忙海狸值。這是一個不可思議的奇蹟。」
由於對方使用了完全不同的系統架構和編譯器版本,Rust編譯實體的最終二進位文件哈希自然與國內不同。
但當他們將最終生成的邏輯裁決摘要送入校驗比對工具時——
完全一致。
【External_Reproduction_01 / PASS】
看到這個綠色PASS彈出的瞬間,會議室里的空氣沸騰了。
這一次,再也沒有人刻意維持那種嚴肅安靜的學術氛圍。
有人重重地一巴掌拍在堅硬的木質桌面上,手掌拍得通紅。
有人仰起頭,把杯子裡準備用來熬後半夜的咖啡一飲而盡。
葉寧更是直接將那個綠色的PASS標誌,狠狠地複製粘貼進了項目組的最高級別總記錄歸檔文件里。
喬聞鐸走回大屏幕前。
1990年,艾倫·布雷迪那句帶著絕望色彩的預測,依然靜靜地掛在那裡。
喬聞鐸調出系統里的紅色批註工具,用顫抖但有力的手,在永遠無法證明這六個巨大的字體上,狠狠地劃下了一道鮮紅的橫線。
隨後,他在被劃掉的預言旁邊,用電子筆寫下——
【已完成第一次全球外部獨立復現確認。】
【2022年9月16日,凌晨。】
人群在歡呼,在相互擁抱。
而在這個歷史性時刻的邊緣,江臨安靜地拿起了桌上的書包,單肩背上,準備推門離開,回紫荊公寓去補幾個小時的覺。
經過前方那塊寫滿推導公式的白板時,他的腳步停頓了一下。
拿起放在槽里的板擦,伸出手,將白板最下方,那條兩天前寫下的UNKNOWN標記的舊狀態,輕輕擦去。
五狀態繁忙海狸。
這個如同魔咒一般的名詞,在整個人類計算理論的邊界上,像一團迷霧般徘徊停留了四十多年。
無數天才的頭腦在它面前折戟沉沙。
而就在今夜,就在這個不起眼的會議室里,它身後的那個巨大問號,終於在嚴密的邏輯和絕對的隔離盲測中,煙消雲散。
而站在白板前擦掉它的人,剛剛上完大學第四天的課。
六點零七分。
項目組會議室的大屏幕上,孤零零地掛著一句寫於1990年的判斷。
【人們永遠無法證明:Σ(5)=4098,S(5)=47176870。】
下面,端端正正地署著一個名字。
艾倫·布雷迪(Allen Brady)。
對於繁忙海狸(Busy Beaver)問題的人來說,這都是一個繞不開的名字。
1983年,他完成了四狀態繁忙海狸的證明。
而五狀態繁忙海狸那台著名冠軍機,由馬克森(Marxen)和邦特羅克(Buntrock)在1989年找到。
那是一台宛如奇蹟般的機器,它會在全白紙帶上運行整整四千七百一十六萬八千八百七十步,然後在停機的那一瞬間,留下四千零九十八個「1」。
冠軍早已找到,甚至被人們瞻仰了三十多年。
但問題在於,誰也無法在數學和邏輯上給出一個堅不可摧的證明:在這個龐大的搜索空間裡,在等價約化前超過十六萬億張轉移表、經過樹形規範化後仍需處理上億台代表機器的搜索空間裡,誰也無法排除另一台藏得更深、跑得更久的機器。
五個狀態。
兩個符號。
一張只有十個轉移位置的表格。
這就是五狀態圖靈機的全部構成。
它的規則是如此簡單。
任何人,只要花上幾分鐘,都能把它的規則抄在一張便簽紙上。
然而,正是這近乎原初的簡單,孕育出了連現代超級計算機都無法窮盡的複雜性。
幾代最頂尖的研究者前赴後繼,先後嘗試循環判定、符號壓縮、閉合紙帶語言、有限自動機約簡和形式化驗證,卻始終無法給這兩個數字蓋上最後一枚印章。
32年前,布雷迪在耗盡了無數心血後,乾脆把它寫進了自己的預測清單。
永遠無法證明!
喬聞鐸今天又把這句話放了出來。
這位在形式化驗證領域摸爬滾打了半輩子的老教授,此刻雙手撐在會議桌的邊緣,靜靜地注視著大屏幕。
他之所以放出這句話,是因為大屏幕右側,還掛著項目組全庫復驗後的最後一行狀態提示。
【Unresolved_Machines:1】
九月十日,當大一新生江臨剛剛完成軍訓物資清退,還在操場上聽著院系入學教育的喧鬧時,兩支被嚴格物理隔離的實現組,已經悄然完成了共享可信核的獨立盲測。
那是一場不見硝煙的慘烈戰爭。
中間出現過一次足以讓整個團隊驚出冷汗的分歧。
當時,OCaml實現組在處理一段裁剪紙帶兩端空白格的邏輯時,由於一個極其隱蔽的思維盲區,將底層容器的起始下標誤當成了邏輯坐標,直接吞掉了一段本該保留的平移量。
第三方測試組毫不留情地抽取了最小復現件。
江臨被緊急召回,他沒有看兩邊的代碼,而是直接依據凍結在保險柜里的規範文檔,給出精確的解釋。
兩支團隊被迫推翻之前的進度,重新編譯可執行文件,從第一個隱藏樣例開始,全量重跑了所有的測試用例。
那是令人窒息的幾個小時。
最終的結果傳回時,所有人都屏住了呼吸。
Rust通過。
OCaml通過。
兩份裁決摘要的哈希值在校驗器中逐位比對,綠色的MATCH亮起,宣告一致。
九月十一日,安全教育與學籍補項按校歷有條不紊地推進。
與此同時,全庫復驗也在同一天轟然啟動。
八千八百六十六萬四千零六十四台種子庫機器,連同項目組這幾個月來日夜不休生成的非停機見證,被像傾倒進巨型熔爐的礦石一樣,分批送進兩套互不通信的核驗器中。
精確循環機制啟動。
平移循環機制啟動。
反向不可達判定樹展開。
成百萬、上千萬台機器在經過嚴苛的審查後,從待判隊列里消失,化為資料庫中一行行確定的綠色記錄。
舊證書里的格式錯誤、機器哈希錯配、甚至是多年前留下的坐標約定污染,被核驗器無情地逐一退回,強制重新生成。
每一台被標記為非停機的機器,都必須給出一份無可辯駁的證據。
一條能夠從機器底層語義層面重新走通的證明路徑,絕不允許任何概率性猜測。
到九月十二日下午,現有證書全部復驗完成。
八千八百多萬台機器構成的浩瀚星海中,只剩下最後一台。
最後一台的狀態欄里沒有REJECT,只有UNKNOWN。
項目組至今拿不出任何可核驗見證。
喬聞鐸關掉布雷迪那句沉重的預測,拿起遙控筆,將最後一台機器的轉移表放大,直到它占據了整個屏幕的中心。
【Skelet #17】
只有五行,兩列。
十個轉移位置。
表格小得一張便簽紙就能抄下。
「這台機器來自格奧爾基·Skelet·格奧爾基耶夫在2003年公布的四十三台holdouts,因此被稱為Skelet #17。」
喬聞鐸站在屏幕左側,聲音在空曠的會議室里顯得格外低沉。
「我們嘗試了所有常規武器,精確循環無效,平移循環無效,反向不可達集合我們強行展開到了第九層,但狀態數量在那之後開始呈現出恐怖的指數級膨脹,內存直接溢出。」
喬聞鐸的語氣中透出深深的疲憊。
「現有最長軌跡,已經超過了兩百億步。仍然沒有停機。更可怕的是,它也沒有進入任何能被現有規則捕捉的重複結構。」
周述在一旁接手操作。
他深吸了一口氣,將一張龐大的空間—時間圖調了出來。
黑白相間的紙帶軌跡瞬間占滿了整面牆的屏幕,仿佛某種遠古生物的複雜基因圖譜,又像是高空俯瞰下的異星城市遺蹟。
「這就是它兩百億步的生命歷程。」周述指著屏幕上那些密密麻麻的紋理說,「讀寫頭在越來越寬的區間裡來回掃動,像一個不知疲倦的織布工。它寫入,擦除,再折返。圖像的外沿在不斷擴張,紙帶越來越長。」
周述說著,放大了其中一個區域。
「但是內部卻找不到兩個完全相同的截面,繼續模擬下去沒有任何意義。」
周述轉頭看向眾人,語氣篤定。
「兩百億步和兩千億步,甚至兩萬億步,在這裡沒有本質區別。只要它還能在邊界上生成新的紙帶結構,只要它的行為沒有展現出閉合的周期性,我們就永遠等不到循環。」
會議桌的另一端,葉寧揉了揉布滿紅血絲的眼睛,調出項目組連日來熬夜趕出的三份厚厚的分析報告。
「項目組先後嘗試過三條分析路線。有人把它看成一種廣義的二進位計數器,試圖用進位法則去框定它;也有人懷疑它在模擬某種類似於考拉茲猜想的動態疊代,所謂的3n+1變體。」
葉寧繼續翻頁。
「我們嘗試了三套最先進的壓縮模型去解釋它的軌跡。在局部,這些模型確實能完美契合。但只要推到邊界歸併的極端情況,只要讀寫頭觸碰到那個特定的0與1的交界,模型就會瞬間斷裂,所有的預測都會失效。」
她把最後一份報告翻到末頁,展示給所有人。
【結論:現有抽象不足以排除未來停機。】
屏幕右上角,那個數字仍然是1。
就像懸在整個團隊頭頂的達摩克利斯之劍。
只要這個1還在那裡,布雷迪的預言就依然生效。
四千零九十八就只能被稱為下界,四千七百一十六萬八千八百七十也僅僅只是一個候選值。
整個五狀態繁忙海狸問題四十年的歷史,幾代人的心血,此刻全都被死死壓在這張只有十個格子的微小轉移表上。
喬聞鐸轉過頭,將目光投向了坐在會議桌最末端的江臨。
這個名義上的大一新生,穿著一件普通的純色T恤,面容平靜得像是一汪沒有波瀾的湖水。
但就是他在過去的幾天裡,一次又一次地展現出了遠超常人的敏銳與決斷。
「共享可信核已經圓滿完成了它的任務。」喬聞鐸對江臨說,語氣中不無期待與託付,「現在,我們缺的是一份能被它檢查、能經受住數學界審視的見證。」
江臨的視線從那張轉移表上掃過,在腦海中快速重構著這十個轉移規則背後的代數結構。
十幾秒後,他抬頭說道:「把單步動畫關掉。」
周述愣了一下,隨即敲下空格鍵,按下了暫停。
屏幕上那片令人眼暈的黑白軌跡,呈現出龐大到令人絕望的紙帶狀態。
「只保留讀寫頭每次回到最左側分隔符的配置。」江臨站起身,走向前方的白板,「中間那些繁雜的來回掃動,全部隱藏,狀態屬性也要保留下來。」
葉寧心領神會,立刻拖出系統里的軌跡篩選器,雙手在鍵盤上飛快敲擊,重新設定採樣條件。
密集的運行記錄迅速收縮,最後,屏幕上只剩一列時間間隔越來越長的紙帶快照。
第一張快照。
第二張快照。
第三張快照。
當過濾完成時,眾人的目光都被吸引了過去。
每一次快照里,紙帶上都不再是雜亂無章的黑白像素,而是呈現出詭異的規律性。
長短不一的連續1的區塊,中間被單個的0精確隔開。
隨著機器模擬輪次的不斷運行,有些連續的1段在增長,有些在縮短,還有一些被無情地向右側推開。
「單看這些長度,依然是雜亂的數值。」江臨走到白板前,拿起一支黑色的白板筆,「但如果你們仔細看變化發生的位置,就會發現它隱藏著清楚的順序。」
說著,他提筆在白板上寫下一段最基礎的紙帶符號表示。
【0 1ᵃ⁰ 0 1ᵃ¹ 0 1ᵃ² 0 …… 1ᵃᵏ 0】
「它沒有在紙帶上製造隨機圖案。」
江臨轉身在每一段連續1的上方標出一個整數。
「這些連續段是一張用一進位寫出來的整數表。讀寫頭每完成一次長程的往返掃描,看起來修改了成千上萬個格子,但在宏觀層面,它僅僅只修改了其中一項的數據。下一次完整的掃描,它會去修改相鄰的另一項。當某一端發生進位時,它的修改方向就會發生反轉。」
周述猛地站直了身體,他瞪大眼睛,目光在那列被篩選出的整數快照上快速移動,大腦在飛速運轉。
十幾秒鐘後,他像觸電一般衝到了大屏幕旁,用手指著連續八張快照的變化位置,聲音因為激動而微微發顫:「零,一,零,二,零,一,零,三。」
會議桌邊,剛才還在敲擊鍵盤的幾個研究員,手部的動作瞬間停滯了懸在半空。
「格雷碼(Gray Code)。」周述脫口而出,轉頭看向江臨。
「對。」江臨點了點頭。
在計算機科學中,格雷碼是一種特殊的二進位編碼方式。
它最顯著的特徵是,相鄰兩個數之間,永遠只有一個二進位位發生改變。這種特性常用於硬體設計中以消除毛刺。
而這台只有五個狀態、簡陋到極點的圖靈機,竟然用它那左右往返、看似愚笨的讀寫頭,以及紙帶上一串串長短不一的1,在兩百億步的狂飆突進中,硬生生地把一整套格雷碼的更新次序,天衣無縫地藏進了紙帶的結構演化里!
過去十幾年裡,所有研究者的分析都深陷在泥潭中,因為他們都在試圖追蹤每一格紙帶在每一納秒里究竟發生了什麼。
那是一個細節爆炸的微觀地獄。
而江臨,直接把觀察的尺度抬高了整整一個維度。
「一輪長程掃描結束後,具體在這個區間裡寫過多少個1,已經不再重要了。」
江臨的語速不快,但每一個字都像釘子一樣敲進眾人的腦海里。
「我們要剝離無關變量。需要保留的只有三類信息:作為符號參數存在的活動段索引iii,當前掃描階段,以及邊界標記的奇偶類。八個宏狀態只描述控制階段、掃描方向與奇偶類的組合,活動段索引和各段長度仍作為證書中的符號參數存在。」
葉寧作為形式化驗證的老手,此時已經完全明白過來他到底想做什麼。
「但是這個列表的長度是會無限增長的啊!」葉寧指著屏幕邊緣,眼中閃爍著興奮的光芒,「如果只記錄活動段的位置和奇偶性,能覆蓋未來所有新生成的連續段嗎?」
「能。」江臨毫不猶豫地回答,「因為每個新段的產生,都必然通過同一個固定的進位模板。」
說完,他在白板的右側,刷刷刷地寫出了三類局部重寫規則的大綱。
1、普通翻轉。
2、向右進位。
3、抵達邊界後的反向掃描。
「列表可以向右無限延伸,宇宙毀滅它也不會停。但生成這無盡列表的規則,只有這三種。」
江臨轉過身,直視著所有人。
「所以,我們的非停機見證不需要裝下整張紙帶的快照,那是內存裝不下的。我們只需要在數學上證明:所有合法的列表狀態,在經過一次這樣的宏轉換之後,仍然屬於我們定義的同一個集合。只要這個集合是閉合的,機器就永遠逃不出去。」
「那停機條件呢?」喬聞鐸從桌邊霍然站起,快步走到屏幕前。
長年做學問的穩重此刻也被打破了。
江臨走過去,手指直接點在轉移表最後那個顯眼的未定義入口上。
「這台機器要撞進停機狀態,條件極為苛刻。它必須同時滿足三個前提:第一,它必須在回收階段抵達當前編碼區的右端分隔符;第二,以指定狀態讀取空白符;第三,讓邊界標記落在偶類。」
「只有這三個條件同時成立,那個未定義轉移才會被觸發。」
江臨轉身,沿著剛才寫出的宏轉換邏輯,一層層向下推導。
筆在白板上劃出一道道嚴密的邏輯鏈條。
「根據剛剛拆出的三類宏轉換,活動段每向右推進一次,邊界奇偶位都會隨對應的進位模板翻轉。這個結論來自機器自身的局部重寫關係,而非格雷碼的一般性質。」
「因此,我們可以得出結論:當機器抵達當前編碼區的右端分隔符形成宏狀態時,它的奇偶標記永遠落在奇類,也就是非停機類。而如果奇偶標記碰巧符合了停機要求的偶類時,對不起,此時活動段與邊界之間,至少還隔著一個不可逾越的分隔符,它根本觸碰不到邊界。」
「那個未定義的停機入口確實就在那裡,敞開著大門。」
江臨看著眾人,語氣平靜得讓人不由得冒起雞皮疙瘩。
「卻不屬於任何一個從初始配置可達的宏狀態。」
喬聞鐸稍一思索,拿起桌上的另一支紅色白板筆,走到江臨身邊。
在江臨列出的宏狀態旁,畫了一個圈,加上了一個退化情況。
他敏銳地察覺到了這個宏大架構中的一個風險點。
「你的理論很精妙。但如果中間這一段連續的1縮減到零呢?兩個0分隔符直接合併,活動位置會發生跳躍,直接跨過一層,方向標記也會在跨層合併的同時發生翻轉。」
江臨微微一笑,仿佛早就預料到了這個問題。
他接過紅筆,在歸併規則的下方補上了一行嚴密的代數推導。
「跨層發生以後,雖然發生了一次額外的翻轉,但由於位置的跳躍補償了相位的損失,新的邊界奇偶類經過計算,仍然與停機類保持相反。它依然落入我們的不變量集合中。」
周述緊接著舉起手,指出了系統實現層面的第二個問題。
「邏輯上成立了,但是核驗器怎麼識別?如果兩個分隔符合併成連續的00,讀寫頭停在其中任意一格時,左右兩種編碼都可能成立。核驗器在匹配規則時會產生歧義,怎麼避免把兩個不同的宏狀態識別成同一個?」
「很簡單。把讀寫頭停留在分隔符上的朝向,強制寫進狀態定義里。」江臨在白板上畫了一個帶有箭頭的方塊,「我們不做對稱歸併,破除歧義。」
原本白板上的六個宏狀態,因為這一調整變成了八個。
葉寧沒有廢話,直接從伺服器里調出了之前運行的最長軌跡,從中抽取出所有發生過邊界歸併的極端樣本。
她把這些數據打包,逐條投入到江臨剛剛定義的新的宏狀態邏輯中進行跑批測試。
三十七次嚴重的邊界歸併。
全部安全著陸,無一遺漏地落在江臨剛寫出的那兩條邊界路徑里。
當然那,這三十七條軌跡能證明新抽象與已知數據一致,還是無法替代對全部符號參數的閉包證明。
會議室里原本同時打開的幾個鍵盤,打字聲逐漸停了下來。
所有人都停下了手頭的工作,目瞪口呆地看著白板上的推導。
喬聞鐸重新看向白板。
「歷史樣本過了,現在,怎麼把無限個參數情形交給核驗器?」
他此時問出的第三個問題,已經不再是懷疑這個不變量是否成立,而是已經直接跨越到了工程實施的層面。
江臨在八類宏控制狀態的外圍,畫了一個大大的方框,將其整體圈住。
「在系統中,單獨建立第四類非停機見證類型——宏狀態不變量見證。」
「底層的公共可信核呢?」第三方負責人立刻追問,因為這關係到整個驗證架構的公信力。
「公共核保持凍結,絕對不能修改。」
江臨說完在方框外寫下三條冷硬的檢查條件。
【條件一:驗證初始配置是否安全進入宏狀態集合。】
【條件二:窮舉所有的局部重寫規則,驗證其是否能保持集合閉合。】
【條件三:驗證宏狀態集合是否與停機入口徹底互斥。】
「具體的工程方案是這樣的:新的見證文件只負責提交宏狀態的定義、符號塊的劃分以及局部重寫的模板。公共核繼續負責驗證圖靈機的一步轉移語義和有限基例;新的宏狀態核驗器負責檢查參數化重寫模板的歸納條件、集合閉包與停機排除。兩層之間只通過凍結後的機器語義接口連接。」
江臨看著周述和第三方負責人,侃侃而談。
「Rust組和OCaml組,分別獨立實現針對這八類宏控制狀態的核驗器擴展模塊。第三方,你們的責任是,想盡一切辦法生成能擊穿這八個狀態邊界的變異樣例。」
「兩組開發人員能看到你的白板推導嗎?」喬聞鐸問。
「只給抽象的規範文檔和序列化後的證書格式。隔離必須徹底。」江臨平靜地說。
喬聞鐸抬起腕錶看了一眼時間。
晚上七點二十六分。
從江臨下令關掉單步動畫,到他在白板上徒手寫出完整的足以鎮壓Skelet #17的核驗邊界,用了一個小時十九分鐘。
喬聞鐸轉過身,目光如炬,掃過周述和第三方負責人。
「都聽清楚了?開啟新的規則編號,兩套實現團隊繼續保持絕對隔離,切斷一切私下通訊。今晚九點前封存規範文檔,明天一早,開始盲測。」
周述深吸了一口氣,合上桌面那疊曾經耗費了他們無數心血,此時已經失效的分析報告。
他轉過頭,又看了一眼大屏幕右上角那個紅色的數字1。
「這一次總該輪到它歸零了吧。」周述喃喃自語,手心全是汗。
接下來的三天,是近乎瘋狂的三天。
江臨在白板上畫出的那八類宏控制狀態,被嚴格的數學語言拆解,最終變成了十七頁密密麻麻的規範文檔、四十三條覆蓋所有邊緣情況的局部重寫模板,以及六類專門由第三方用來攻擊邊界的惡毒隱藏樣例。
盲測的交鋒極其慘烈。
第一輪盲測啟動。
僅僅四個小時後,Rust實現組的核驗器突然報警,在驗證集合閉合性時崩潰。
Rust實現首先拒絕了證書。
原因是從全白紙帶進入第一類宏狀態的有限前導運行段沒有寫入序列化格式。
宏狀態不變量本身不受影響,但證書缺少初始入口見證。
江臨收到報告後,沒有任何情緒波動,只是補入前導運行段及其哈希,重新封存證書。
第二輪盲測。
OCaml實現組發難。
他們的邏輯引擎拒絕了一條跨越雙分隔符的歸併路徑,認為該路徑存在邏輯斷裂。
第三方測試組立刻介入,他們沒有看代碼,而是直接調用底層的機器重放功能,逐幀比對。
三個小時後,確診問題並非規範出錯,而是OCaml組在將證書進行序列化處理時,不慎漏掉了一位方向標記,導致反序列化時數據錯位。
修正代碼。
重新編譯。
重新封存哈希。
再次開啟盲測。
時間來到了九月十五日,晚上十一點四十一分。
項目組會議室里重新坐滿了人。
沒有人說話,連呼吸聲都被壓抑到了最低。
空氣中瀰漫著濃烈的黑咖啡味和持續熬夜帶來的焦躁感。
大屏幕左側,仍然是布雷迪1990年的那句悲觀判斷。
而右側,則是兩套物理隔離的核驗器的實時運行窗口。
黑底綠字的終端屏幕上,校驗日誌不斷刷新。
突然,左側的Rust窗口停止滾動。
進度條走到了100%。
【Gray_Invariant_Witness / ACCEPT】
【Skelet_17 / NONHALT】
周述握著滑鼠的手停在桌面上。
在形式化驗證的鐵律里,一套實現的通過,僅僅只能證明一套程序認可了這份見證。
如果沒有另一套獨立代碼的印證,它在數學上仍然是不完備的。
右側的OCaml窗口仍在以一種令人抓狂的緩慢速度,逐條展開最後六個最複雜的邊界歸併模板測試。
第四十條檢查通過。
第四十一條檢查通過。
第四十二條……驗證宏狀態互斥性……通過。
第四十三條……
全場死寂。
葉寧不自覺地咬緊了下唇。
光標猛地下移一行。
【Gray_Invariant_Witness / ACCEPT】
【Skelet_17 / NONHALT】
緊接著,仿佛是約好的一樣,兩邊的系統同時開始生成最終的結果驗證摘要。
屏幕底部彈出了對比進程。
兩秒鐘後。
【Cross_Impl_Result_Digest / MATCH】
資料庫總控程序在接收到這份雙重確認的無懈可擊的見證後,底層邏輯觸發。
它將目錄里最後一個被標記為UNKNOWN的條目,毫不留情地劃入了NONHALT的分類中。
大屏幕右上角,那個懸掛了不知道多少個日夜,猶如噩夢般的數字,輕輕跳動了一次。
【Unresolved_Machines:0】
周述猛地向後仰倒,重重地靠在人體工學椅的椅背上。
巨大的力量讓椅輪在硬木地板上發出呲啦一聲,向後滑出去一米多遠。
「真歸零了!」
周述的嗓音因為極度壓抑後的爆發而變得嘶啞。
葉寧沒有時間歡呼。
她立刻撲到鍵盤上,將最終生成的證書總包重新拖進斷網的離線環境裡。
手指顫抖著,連續計算了SHA-256與BLAKE3兩組摘要。
屏幕返回了完全一致的哈希字符串。
她這才長長地出了一口氣,抬起頭,看向站在前方的喬聞鐸,重重地點了點頭。
第三方負責人一言不發,直接伸手拔掉了連接測試伺服器的外網網線接口。
手法熟練地開始封存兩套編譯實體程序的二進位文件、隱藏的測試集,以及長達幾十個G的完整運行日誌。
這是未來應對任何學術質疑的鐵證。
喬聞鐸站在原地,仿佛一尊雕像。
視線久久地停留在那個0上,然後緩緩移到左側布雷迪的預測上,最後又重新落回資料庫的總控頁面。
四十多年。
從他還是個年輕學者的時候起,五狀態繁忙海狸的這兩個候選值,就一直像兩座幽靈般的燈塔,印在無數的論文、博客論壇和計算理論經典教材的邊緣注釋里。
每一次提到它們,後面都無可奈何地跟著同一個刺眼的詞語。
未證明!
而現在,今晚。
最後一台不可一世的幽靈機器,被戴上了非停機的枷鎖。
八千八百六十六萬四千零六十四台種子庫機器,每一台都獲得了可追溯、可獨立核驗的非停機判定路徑。
此前被模擬確認停機的機器,則保留在完整枚舉目錄的另一條索引中。
喬聞鐸深吸一口氣,邁步走到會議桌最前方的主位上。
「報最終數據,枚舉目錄。」
「雙路獨立生成,數量完全一致,底層哈希一致,無遺漏。」第三方負責人大聲回答。
「已知冠軍核驗。」
葉寧將兩套獨立模擬器的最終狀態投射到主屏幕中央。
【Maximum_Halting_Steps:47,176,870】
【Maximum_Ones_On_Tape:4,098】
「非停機分類狀態。」
周述雙手敲擊回車,打開了最終的全局索引表。
「所有非停機條目,均能百分之百回指到對應的證書文件、核驗器版本號和機器原始哈希,無一孤立。UNKNOWN分類,確認為零。」
喬聞鐸緩緩取下鼻樑上的老花鏡,從口袋裡掏出眼鏡布,將鏡片仔細擦了一遍。
當他再次戴上眼鏡時,屏幕上那三行決定性的結果,依然安安靜靜地立在那裡,宣示著永恆的數學真理。
他拿起桌上一本厚重的項目總記錄冊,翻到最後空白的一頁。
拔出鋼筆,在最終結論欄里,一筆一划地寫下——
【S(5)=47,176,870】
【Σ(5)=4,098】
日期:2022年9月15日。
筆尖離開紙面的那一刻,喬聞鐸抬起頭,環視著會議室里的每一個團隊成員。
「諸位。」他的聲音有些顫抖,「從現在這一秒開始,這兩個數,可以從候選名單里刪除,正式編入人類數學與計算理論的定理欄了。」
會議桌邊,驟然爆發出雷鳴般的掌聲。
最先拍手的是那位平時極其嚴苛、專找麻煩的第三方負責人,他拍得手掌發紅。
隨後是葉寧、周述。
緊接著,會議室旁邊的幾個大型視頻通訊窗口裡,那些連續參與了數月復現、分布在世界各地的外部協作者們,也紛紛起立鼓掌。
有人摘下耳機,激動地在狹窄的房間裡走來走去。
有人熟練地使用截圖工具,把屏幕上那三行結果截進自己的工作記錄中,作為見證歷史的私人勳章。
還有人已經迫不及待地在公共頻道里敲字,開始索要最終的加密證書包。
江臨安靜地坐在靠近白板的角落位置。
掌聲如潮水般將他包圍,但他只是靜靜地看著白板上的公式,仿佛這一切喧囂都與他無關。
掌聲持續了整整十幾秒。
喬聞鐸雙手下壓,等聲音稍微平息了一些,他立刻恢復了項目負責人的沉穩,開始連夜分配掃尾任務。
「值守人員按預案分組完成歸檔,其餘人員輪換休息。證書包、兩套核驗器的核心源碼、規範化後的機器目錄、以及完整的構建說明,分成四份進行冷備份歸檔。記住,今晚的數據只發給名單上預定好的幾個外部頂級復現節點。論文的最終標題先不定,但在外部節點回傳驗證通過之前,我們的結論,一個字也不許向外媒和學術界透風。」
周述一邊打包文件一邊問:「學校那邊呢?」
「我親自來報。」
喬聞鐸拿起手機,大步走到會議室外走廊的盡頭,撥出了一個號碼。
深夜十二點,電話僅僅響了兩聲就被接起。
兩分鐘後,電話另一端的那位計算機系負責人顯然已經接收並打開了喬聞鐸發過去的簡報郵件。
「老喬,你郵件最後附的那個0,指的是我們之前討論的那個全庫機器,全排除了?」電話那頭的聲音透著掩飾不住的震驚。
「全部,無一死角。」喬聞鐸回答得斬釘截鐵。
「那是誰把最後一台那塊硬骨頭啃下來的,Skelet的那個幽靈,你們用了什麼新算法?」
喬聞鐸隔著會議室的玻璃牆,深深地看了一眼站在白板前的那個年輕身影。
白板上,江臨徒手寫下的那八類宏控制狀態定義和代數推導,依然清晰可見。
「江臨。」喬聞鐸對著電話說。
電話那頭陷入了長達幾秒鐘的死寂。
「又是那個孩子?」那頭的聲音顯得不可思議,「前幾天你們報上來說共享可信核的架構,也是他定的?」
「對,底座架構,加上最後的數學見證,全是他。」
「我如果沒記錯的話校歷,他今天應該才剛剛正式開課到第四天吧?」
喬聞鐸嘴角泛起一絲連他自己都沒察覺的驕傲微笑:「對,大一新生,第四天。」
會議室里,第一批面向全球頂尖學者的外部復現郵件已經通過加密通道發出。
收件人名單很短,只有寥寥幾個名字。
但這幾個名字的份量,足以撼動整個理論計算機科學界。
其中既有幾十年來一直像苦行僧般維護BB(5)機器資料庫的骨灰級研究者,也有在形式化驗證和小型圖靈機領域享有盛譽的理論大牛。
郵件內容很短。
沒有長篇大論的新聞稿,沒有誇張的成果介紹,甚至沒有寒暄。
只有一行指向代碼倉庫的臨時只讀地址、四組用於防篡改的哈希校驗碼,以及一句簡單到有些傲慢的請求。
【請獨立構建底層環境,並嘗試推翻這一結論。】
零點十七分。
系統監控日誌顯示,第一個位於歐洲的外部節點開始下載新增的宏狀態證書、兩套核驗器源碼,以及最終索引增量。
零點四十三分。
第二個北美節點發回握手協議,確認完成機器龐大目錄的初步校驗。
凌晨一點零六分。
一封來自外部復現節點的郵件進入喬聞鐸的郵箱。
發件人從2003年起便持續追蹤Skelet #17的運行規律。
他沒有對整個BB(5)問題的終結發表任何宏大的評價,而是直接略過了前八千八百萬台機器,一針見血地將目光聚焦在江臨寫出的那份格雷碼不變量見證上。
郵件正文裡,他在規範文檔的頁碼後面,尖銳地標出了三個他認為可能存在致命漏洞的數學邊界問題。
空段歸併時的極值坍縮。
雙分隔符狀態下的向後查找歧義。
邊界奇偶翻轉時的相位丟失。
這三個問題直指核心。
全都是之前第三方盲測組耗費無數精力才攻擊過的險隘。
喬聞鐸微微一笑,沒有任何猶豫,直接將對應的四十三條重寫規則的證書編號,以及Rust和OCaml兩套不同實現底層在處理這些邊界情況時的詳盡運行記錄和日誌反推斷言,打包作為附件,點擊了回復。
二十六分鐘後。
那邊的收件箱再次閃爍。
這一次,對方發來的郵件正文更短,只有兩行字。
【三個邊界均已形成邏輯閉合。無懈可擊。】
【請告訴我,規範文檔的作者,那個Jiang Lin是不是那個Jiang Lin?】
周述看完了屏幕上的這封郵件,轉過頭,將筆記本電腦的屏幕轉向了江臨。
「江臨,這位老前輩的問題,你說我該怎麼回他?」周述打趣道,連日的疲憊似乎一掃而空。
江臨正在收拾自己的背包,他偏過頭,淡淡地看了一眼屏幕上的名字。
「按學術界的規矩,正常提供項目貢獻說明回復就行。」他平靜地說,語氣里聽不出一絲炫耀。
凌晨三點二十二分。
窗外的天色依然漆黑,但距離黎明已經不遠。
叮。
一聲清脆的系統提示音在會議室里炸響。
第一個持有完整資料庫鏡像的外部節點完成獨立構建和全量索引覆核。
隨同跑批結果一起發來的審查備註里,第一句話是用加粗的英文字體寫著的。
「如果你們的全庫哈希索引在未來幾天內繼續保持一致沒有衝突,這將是計算理論四十多年來,第一個被完全確定的新繁忙海狸值。這是一個不可思議的奇蹟。」
由於對方使用了完全不同的系統架構和編譯器版本,Rust編譯實體的最終二進位文件哈希自然與國內不同。
但當他們將最終生成的邏輯裁決摘要送入校驗比對工具時——
完全一致。
【External_Reproduction_01 / PASS】
看到這個綠色PASS彈出的瞬間,會議室里的空氣沸騰了。
這一次,再也沒有人刻意維持那種嚴肅安靜的學術氛圍。
有人重重地一巴掌拍在堅硬的木質桌面上,手掌拍得通紅。
有人仰起頭,把杯子裡準備用來熬後半夜的咖啡一飲而盡。
葉寧更是直接將那個綠色的PASS標誌,狠狠地複製粘貼進了項目組的最高級別總記錄歸檔文件里。
喬聞鐸走回大屏幕前。
1990年,艾倫·布雷迪那句帶著絕望色彩的預測,依然靜靜地掛在那裡。
喬聞鐸調出系統里的紅色批註工具,用顫抖但有力的手,在永遠無法證明這六個巨大的字體上,狠狠地劃下了一道鮮紅的橫線。
隨後,他在被劃掉的預言旁邊,用電子筆寫下——
【已完成第一次全球外部獨立復現確認。】
【2022年9月16日,凌晨。】
人群在歡呼,在相互擁抱。
而在這個歷史性時刻的邊緣,江臨安靜地拿起了桌上的書包,單肩背上,準備推門離開,回紫荊公寓去補幾個小時的覺。
經過前方那塊寫滿推導公式的白板時,他的腳步停頓了一下。
拿起放在槽里的板擦,伸出手,將白板最下方,那條兩天前寫下的UNKNOWN標記的舊狀態,輕輕擦去。
五狀態繁忙海狸。
這個如同魔咒一般的名詞,在整個人類計算理論的邊界上,像一團迷霧般徘徊停留了四十多年。
無數天才的頭腦在它面前折戟沉沙。
而就在今夜,就在這個不起眼的會議室里,它身後的那個巨大問號,終於在嚴密的邏輯和絕對的隔離盲測中,煙消雲散。
而站在白板前擦掉它的人,剛剛上完大學第四天的課。