声明:本文来自于微信公众号新智元(ID:AI_era),作者:新智元,授权站长之家转载发布。
历时三周,陶哲轩成功地用AI工具完成了形式化多项式Freiman-Ruzsa猜想证明过程的工作。他再次呼吁数学研究者学会正确利用AI工具,网友惊呼:以后的数学论文不需要人类可读了?
用AI工具辅助研究数学的项目,再一次被陶哲轩跑通!
三周前,他曾发布一篇博文,记录下自己使用Blueprint在Lean4中形式化多项式Freiman-Ruzsa猜想的证明过程。
就在昨天,他激动宣布:将多项式Freiman-Ruzsa猜想的证明形式化的Lean4项目,在三周后取得了成功!
现在,依赖关系图已经完全被绿色所覆盖,Lean编译器也报告说,这个猜想完全遵循标准公理。
陶哲轩表示,在整个团队中,自己贡献的代码大概只有5%。这个结果很鼓舞人心,因为这意味着数学家即使不具备Lean编程技能,也能领导Lean的形式化项目。
他发现,项目中在数学上最有趣的部分,形式化起来比较容易,而技术上看起来最显而易见的步骤,却最耗时。
而使用Blueprint将项目分解成难度小到中等的部分,效果很好,这就让大量并行工作成为可能。
这样,许多贡献者就可以处理特定的子任务,而无需理解整个证明过程,甚至可以完全不了解相关的数学领域知识。
就在几分钟前,Lean成功证明了PFR猜想,且没有留下任何悬而未决的问题(后文将会提到的「sorry」)。这意味着,这个项目的所有主要目标,都已经圆满完成。
与此同时,他在三周前也就是11月18日的那篇博客也被网友翻出,引发热议。
果然,AI加持数学研究颠覆力量的后劲,得需要数月的时间才能让人们认识到。
而只有在最前线的研究者,才能在第一时间切实感觉到这种巨大力量的冲击和震撼。
陶哲轩呼吁:数学家们一定要学会用AI了
有网友向陶哲轩提问:这是否意味着,有越来越多的证明是人类不可理解,但机器可解决的?
陶哲轩表示,恰恰相反,如果证明的形式化变得更加主流,并且更多地得到AI辅助,那完全有可能创建出既人类可读、又能被机器阅读的证明。
PFR证明的blueprint就证明了这一点——既人类可读,每个证明步骤还带有形式化的理由,还能得到一个依赖关系图,来可视化整个论证的全局结构。
当然,陶哲轩也提醒道,不要把「计算机辅助证明」和「不能提供理解/偶然成立的证明」搞混了。
比如对于有限单群分类的超过10000页的证明,几乎百分百是由人工生成的,但一个由计算机协助处理的替代证明,在某些方面看更令人满意。
跟网友经过几轮讨论后,陶哲轩做出以下总结——
Blueprint本身就是一种编程语言,可以看作一种Lean的伪代码。
许多数学家都应该将写作风格从标准数学英语/LaTex,转换为Blueprint/LaTex。
网友:以后研究都不需要「人类可读」,AI懂就行了
网友表示,陶哲轩对于各种研究工具随意掌握的程度,几乎可以称得上是可怕。
我在研究生阶段对数学的尝试,就就好像一个穴居人本来在摇晃一辆普通的独轮车,忽然眼前出现了一辆直升机,上面的人向我伸出手,告诉我来试试看,一点也不可怕。
自从听说四色定理以来,我一直很清楚,形式化是数学的未来。但我没有预料到的是,陶哲轩如此从容不迫,形式化才刚刚获得牵引力,他就能用AI完成几乎所有的数学写作。
形式化,是指从基本公理和规则中真正推导出证明中的每个陈述。而陶哲轩在这篇博文里,把需要死记硬背的劳动都抽象出来,交给了机器。
他的工作表明,形式化才刚刚开始在主流数学中受到关注。
已经有人开始畅想:很可能会有一段时间,大多数证明只是在Lean或类似系统中完成,再也没有人需要费心写一篇「人类可读」的论文了。
数学,将变成一种编程!
一位数学硕士表示,现在自己的研究步骤有三步——
1.理解自己想证明的东西,通过阅读或者与人交谈;
2.用纸笔绘制出包含要点的草图;
3.将校样输入到LaTeX中,让自己要交的作业变得人类可读。
是的,如果我们只是要训练或微调AI来产生答案,然后编写一个循环来反馈,直到编译器正确输出,那我们自己并不需要真的理解。
用这种方法,我们还能生成更多的训练示例,可以手动检查结果是否符合要求,做上注释。而训练,可以提高初始答案的准确性。
PFR猜想的形式化过程
以下是陶哲轩发在博客上的形式化过程,感兴趣的读者可以挑战一下。
11月,陶哲轩与Yael Dillies和Bhavik Mehta启动了一个合作项目,目的是利用Lean4对自己之前关于Freiman-Ruzsa(PFR)猜想的预印本论文进行形式化。
项目虽然启动不到一周,但进展相当顺利,大部分文件都被形式化了。
这个项目得益于Patrick Massot的Blueprint工具,这个工具让团队能够编写与Lean形式化紧密相关的、人类可读的证明「蓝图」。
在Blueprint中,有一个陶哲轩特别喜欢的功能,那就是自动生成的依赖图。它可以提供形式化进度的大致快照。截至当时,依赖图的样子如下:
在依赖图的图例中,不同的气泡(表示引理)和矩形(表示定义)被赋予了不同的颜色。
简单来说,绿色的气泡或矩形表示那些已经被完全形式化的引理或定义,而蓝色的则指那些已准备好进行形式化的引理或定义(这意味着它们的陈述已经形式化,但证明还没有,同时所有相关的前置引理和证明也是如此)。
而陶哲轩团队的目标,就是将所有通向「pfr」气泡的底部气泡,都变成绿色。
点击依赖图底部的「pfr」气泡时,可以看到以下内容:
图中,Blueprint显示出一种人类可读的PFR语句形式,还附带了这个语句的人类可读证明,该证明依赖于项目中的其他语句:
注意,「pfr」气泡是白色的,但有一个绿色边框,这意味着PFR的陈述已经在Lean中正式化,然而证明并没有。
证明本身还没有准备好被形式化,是因为一些先决条件(特别是「entropy-pfr」Theorem6.16)甚至还没有形式化的陈述。
单击依赖关系图中PFR陈述下方的Lean链接,就可以进入相应的Lean文档:
这就是Lean中的典型定理的样子。在冒号之前有许多假设,例如:
G是一个属于顺序2的有限初等阿贝尔群(这就是团队选择形式化有限场向量空间的方式);A是G的非空子集;A+A的基数<k倍a的基数。< p="">
冒号后边的陈述是结论:A可以以c+H的和的形式包含在G的子群H中,以及在最多
的基数的集合c中。
聪明的读者可能会注意到,上面的定理似乎缺少一两个细节,例如,它没有明确断言H是一个子群。
这是因为「pretty printing」模式抑制了定理陈述中的一些信息,只要单击「来源」链接,就可以看到了。
可以看到,H需要具有G加法子群的类型。
该定理底部有一个明显的「sorry」,这意味着尚未为该定理提供证明,但最终意图当然是用实际证明,来代替这个「sorry」。
填补这个「sorry」现在还很难做到,所以需要寻找一个更简单的任务。
下面是一个简单的中间引理「ruzsa-nonneg」,它出现在证明中:
该表达式
指的是X和Y之间的熵Ruzsa距离,它是一个实数。
气泡是蓝色的,带有绿色边框,这意味着陈述已经形式化,证明也准备好形式化了。
Blueprint依赖关系图表明,这个引理可以从前面的一个引理中推导出来,称为「ruzsa-diff」:
「uzsa-diff」也是蓝色的,边框是绿色的,所以它与「ruzsa-nonneg」具有相同的当前状态:陈述是形式化的,证明也准备好形式化了,但证明还没有用Lean编写。其中,
是X的香农熵。
通过观察Lemma3.11和Lemma3.13,我们可以清楚地看到|H[X] - H[Y]|显然是非负的。
因此,即使我们还不知道如何证明Lemma3.11,但假设Lemma3.11成立,并补全Lemma3.13的证明,应该是轻而易举的事。
Lemma3.11的形式化如下:(「sorry」表示Lemma目前还没有证明)
同时,Lemma3.13的形式化为:
现在,我们要试着把后一个「sorry」填上。
在PFR github仓库的本地副本中,陶哲轩用编辑器(Visual Studio Code,扩展名为lean4)打开了相关的Lean文件,并导航到「rdist_nonneg」的「sorry」处。
随附的「Lean信息视图」就会显示Lean证明的当前状态:
在底部,可以看到我们需要证明的目标。
接下来,在证明这个说法时,需要运用一系列「战术」来改变目标和/或假设。
第一步是加入应用Lemma3.11所需的因子2。
现在,我们有了两个目标(和两个「sorry」):一个是证明
等价于
;另一个是证明
。
在填上第一个「sorry」之后的状态如下(删去了一些无关的假设):
这里可以使用一种非常方便的「linarith」策略,它能解决任何可以通过现有假设的线性运算得出的目标:
成功之后可以看到,状态报告显示这个分支已经没有需要证明的目标了。所以,我们继续剩下的「sorry」,也就是证明
:
在这里,我们将尝试引用Lemma3.11。为此,陶哲轩添加了几行代码:
于是,我们又有了两个子目标,一个是证明约束
(可以称之为「h」),另一个是就从h推导出前一个目标
。
对于第一个目标,需要调用正在编码Lemma3.11的「diff_ent_le_rdist」引理。
其中一种方法是尝试使用「exact? 」策略,它会自动搜索,看目标是否可以立即从现有的引理中推导出来:
于是,陶哲轩点击了建议的代码(系统会自动将其粘贴到正确的位置)。结果成功了,只留下最后的「sorry」:
这里,陶哲轩通用使用了「exact?」策略,并按照它的建议建立匹配了边界
:
在补全最后一个「sorry」时,陶哲轩再一次尝试了「exact?」,想知道如何把h和h'结合起来才能达到预期目标,结果成功了!
可以看到,所有的下划线都消失了。也就是说,Lean已将其视为有效证明。
通过省略几个中间步骤,我们可以将这个证明压缩得相当紧凑:
现在证明完成了!
我们最后得到的,基本就是一个「单线证明」,考虑到Lemma3.11和Lemma3.13是如此接近,这也是合情合理的。
然后,陶哲轩将所有内容推送回Github主版本库。
Blueprint的重建需要相当长的时间(约半小时),依赖关系图现在以绿色显示 「ruzsa-nonneg」:
因此可以说,PFR的形式化更接近完成了。
不过,虽然「ruzsa-nonneg」现在被涂成绿色,但还没有这个结果的完整证据,因为它所依赖的引理「ruzsa-diff」不是绿色的。
从这一点上看,证明仍然是局部完成的。
陶哲轩表示,希望在未来的某个时候,前身结果也能被证明,那时,就可以说PFR猜想的结果,得到了完全的证明。
参考资料:
https://news.ycombinator.com/item?id=38528582
https://terrytao.wordpress.com/2023/11/18/formalizing-the-proof-of-pfr-in-lean4-using-blueprint-a-short-tour/
【查看完整讨论话题】 | 【用户登录】 | 【用户注册】