九月十二日,正式开课后的第一个下午。
六点零七分。
项目组会议室的大屏幕上,孤零零地挂着一句写于1990年的判断。
【人们永远无法证明:Σ(5)=4098,S(5)=。】
下面,端端正正地署着一个名字。
艾伦·布雷迪(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?1 0 1?2 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标记的旧状态,轻轻擦去。
五状态繁忙海狸。
这个如同魔咒一般的名词,在整个人类计算理论的边界上,像一团迷雾般徘徊停留了四十多年。
无数天才的头脑在它面前折戟沉沙。
而就在今夜,就在这个不起眼的会议室里,它身后的那个巨大问号,终于在严密的逻辑和绝对的隔离盲测中,烟消云散。
而站在白板前擦掉它的人,刚刚上完大学第四天的课。