第一部分 科学天地

计算机与数学证明本文发表于《科学画报》2013年第12期(上海科学技术出版社出版)。

自20世纪30年代起,有位名叫“布尔巴基”(Nicolas Bourbaki)的数学家崭露了头角,后来人们知道,他其实不是一个人,而是一群数学家的笔名。用笔名在科学界是较少见的,但也并非绝无仅有,比如当今数学界有个叫“艾卡德”(Shalosh B.Ekhad)的家伙发表了几十篇论文,也并不是一个人,甚至不是人,而是计算机。“艾卡德”虽远没有“布尔巴基”出名,象征意义却不容忽视,因为其“导师”——以色列数学家蔡尔伯格(Doron Zeilberger)——坚持让计算机独立署名,乃是为显示其在数学中日益重要的作用。

计算机在像物理那样的经验科学中的作用早已被广泛认可,一篇物理论文哪怕全部演算都靠计算机,也不会引起非议。数学却不同,它对严谨性的要求在物理之上,结果则不像物理那样受观测检验,因此特别注重推理的步骤。德国数学大师克莱因(Felix Klein)在名著《数学在19世纪的发展》中曾这样描述数学:“不管什么人,想要进入它,就必须在自己心里,依靠自己的力量,一步一步把它的发展再现一次。”计算机一介入数学证明,就明显破坏了克莱因的描述。

但计算机介入数学证明的势头却颇有些难以阻挡。早在其问世不久的20世纪50年代,一些美国数学家——其中包括华裔数学家王浩——就用计算机证明了英国哲学家罗素(Bertrand Russell)和怀特黑德(Alfred North Whitehead)的名著《数学原理》(Principia Mathematica)中一阶逻辑部分的全部定理;另一些数学家——其中包括中国数学家吴文俊——则用计算机证明了许多几何定理。而最轰动的则是1976年,美国数学家阿佩尔(Kenneth Appel)和德国数学家黑肯(Wolfgang Haken)用计算机辅助证明了四色定理(four color theorem)——一个从未被常规手段证明过的定理。

计算机介入数学证明引起了很多数学家的不安,因为在计算机领域中,像Windows、MacOS那样的操作系统,像Mathematica、Maple那样的应用软件都不是开放源代码的,从而在原则上就不是数学家所能检验的。更糟糕的是,即便是原则上可以检验的部分,比如直接介入数学证明的那部分程序,数学家通常也没什么兴趣去检验,因为那些程序所做的通常是运算量巨大而逻辑结构死板的工作,检验起来往往既学不到数学,也得不到启示,实在是味同嚼蜡。这种兴趣匮乏的一个后果,就是数学证明中的计算机部分往往会拖整个证明的后腿。这方面一个著名的例子是1998年美国数学家黑尔斯(Thomas Hales)向著名刊物《数学年刊》提交的一个有关开普勒猜想(Kepler conjecture)的证明。该证明包含了约250页的文稿及10万行左右的计算机程序。结果等了4年也没人检验他的程序,等了7年文稿部分才得以发表,但整个证明迄今未被公认。无奈之下,黑尔斯自2003年起开始研发一个能让计算机检验此类证明的系统。但据他估计,该系统若由一个人研发,约需20年的时间,看来是要“等到花儿也谢了”。而且该系统本身就是计算机程序,从而首先得接受检验。

计算机介入数学证明引发的一个重要问题是:数学证明的明天会怎样?对此人们众说纷纭。一些人认为,随着数学研究的不断深入,计算机的介入将日益显著,不用计算机做数学将如同不穿鞋子跑马拉松。比如蔡尔伯格就表示,人类正日益接近自身证明能力的极限,今天的许多数学研究已没多大意思,之所以仍有人做,只是因为唯有那些东西才是人类还能直接胜任的。他预期,随着计算机能力的快速增长,再过二三十年,大多数研究都将可以由计算机来做。它们不仅能证明数学定理,甚至可以发现数学定理。另一些人则坚信,数学仍将是他们熟悉的数学,计算机至多只能起辅助作用。就不太遥远的将来而言,我更倾向于后一种看法,因为数学证明中很多精妙的东西恐怕在很长时间内都不是计算机能够胜任的,比如拿费马大定理来说,它是一个有关自然数的命题,其证明——据我们所知——却要用到大量远远超出自然数范畴的高深数学,如果我们把命题及自然数的公理输入计算机,它几乎要自行重建数学大厦的很大一部分结构才有可能给出证明,这在我看来绝不是二三十年后的计算机能够胜任的。

退一万步说,假如真有前面那些人所说的那一天,很多数学家依然乐观地认为他们有事可做,因为他们认为,那时候的数学将是找出并研究那些无法用计算机来做的东西!