2019年10月

软科公布2019中国最好学科数学排名

 

关注 哆嗒数学网 每天获得更多数学趣文

 

前身为上海交大的世界大学学术排名的“软科世界大学学术排名”日前公布了公布了“2019中国最好学科排名”,包括96个一级学科,其中也包括了数学学科排名。
 


中国最好学科排名的指标体系由高端人才、科研项目、成果获奖、学术论文、人才培养5个指标类别组成,对应10余个指标维度,包括30余项测量指标。按排名官网说法,所有指标均为客观指标。如何你有兴趣,可以去该排名的官网查看。

 


 
数学排名公布了134所的学校。第一名是北京大学,山东大学和中山大学分列第二、三名。第四到十名分别是中国科学技术大学、复旦大学、清华大学、西安交通大学大学、浙江大学、南开大学、武汉大学。中科院大学没列入榜单。前10名的中,有9个同样是去年的前10名,唯一例外是南开大学,从2018年的第11名升至2019年的第9名。而2018年第7名的四川大学,在2019年的排名中跌到第15名。
 
 
 
以下是详细榜单,我们对任何排名的意见都是——你可以有任何意见!

 

关注 哆嗒数学网 每天获得更多数学趣文

R语言令人意外的能做到这10件事

 

本文原文来自SimplyStatistics网站

翻译作者,独行者,哆嗒数学网翻译组成员。

校对:风无名

 

关注 哆嗒数学网 每天获得更多数学趣文

 

 

过去的几周里,我和来自计算机方面的同行进行了一些交流,他们对R语言颇有微词。当中的很多人都将怒火集中于R语言在统计分析上显而易见的局限性。

 

 

 

的确,R语言在CRAN,Bioconductor、Neuroconductor、ROpenSci以及其他好的包管理网站都有很多非常棒的软件包。当我进行交流的时候,我意识到R语言已经从只能做数据分析的语言成长为一种多用途中介性语言。但是,在数据分析之外,R语言的功能则所知甚少。所以,这篇文章介绍了一些非常奇妙的R语言特点,它们可能广为人知,也可能鲜有所闻。这里基于Kara一篇《R语言可以做的简单事情》推文,我列举了十项R语言可以做但你又可能不知道的事情。

 

 

 

1.  你可以通过R markdown程序写出可以再次编辑的Word和Powerpoint文档

 

只需要在YAML中修改一行代码,rmarkdown包就可以为你生成可以再次编辑的Word和Powerpoint文档。

 

 

2. 你可以只用几行代码构建和部署交互式网络应用

 

只需要几行代码,你就可以用R语言来创建一个交互式网络应用。例如,使用flexdashboard包,添加36行代码,你就能生成一个可以研究你的BMI和NHANES样本之间关系的交互式控制面板。

 

 

 

3. 你可以只添加一行R代码便可实现网站应用托管

 

在R语言中建立网站应用的另一件很酷的事情。通过使用rsconnect包,只需要额外添加一两行代码就可以将你的网页应用编译运行,接着你就可以把它们放在网站上。你可以把它发布到你自己的服务器上,甚至更简单的,放到类似于shinyapps.io的云服务器上。

 

 

4. 你可以通过dplyr/dbplyr包来获取数据

 

通过使用dbplyr包,你能够很轻松地连接任何一个(本地或者远程)数据库。这允许R用户独立的从几乎所有的公共数据库里面提取数据。你也可以使用特定的包,例如bigquery包可以直接连接BigQuery,或者其他高性能数据库。

 

 

 

5. 你可以在本地或多个不同数据仓库上的数据上使用相同的 dplyr 语句

 

一旦你学会基本的dplyr数据转化规则,你就可以应用相同的代码对你本地的数据和数据库和数据仓库里的数据进行分析。及使面对各种各样的数据库和编程语言,dplyr包都为开发者提供了简单又统一的数据处理方式。

 

 

 

6. 你可以用keras和Tensorflow来拟合深度学习模型

 

Keras包允许你直接通过R来拟合之前训练过的和重新拟合的深度学习模型。你也可以使用Tensorflow来做这两件相同的事情。

 

 

 

7. 你可以用R语言构建API,并为API提供各类服务

 

通过plumbr包,你可以将R函数转换成可集合到下游软件的web API中。如果你有RStudio Connect软件,你也可以像发布网络应用一样非常方便地发布你的程序。

 

 

 

8. 你可以通过R语言游戏交互界面

 

你不仅能够部署网站应用,还可以用R语言把它们变成很棒的游戏。Nessy包可以让你创建NES游戏的外观的Shiny 程序并且像部署其他Shiny一样部署它们。

 

 

9. 你可以用Spark clusters直接从R中分析数据

 

想要在巨大的数据集中用机器学习模型对大量、杂乱的数据进行拟合?现在,你可以使用R语言中的sparklyr包来达到你的目的。你可以在你的本地电脑上或者在巨大无比的Spark集群上使用。

 

 

 

10. 你可以用R语言开发一个学习R语言的互动式教学工具

 

swirl包是一个在R里面的能够为R构建交互式教程的R包。这不是一份完整的R语言包使用教程。你也可以连接上AWS Polly服务后写出一个文字转语音的软件,或者编译出Shiny应用。这些程序可以让你的程序执行语音指令,或者编译出能够让你结合深度学习和加速度测量术数据来施展哈利波特魔法咒语的应用。这里需要强调的是,R语言已经在数据分析领域之外有了自己的一席之地(尽管R语言仍然在数据分析上非常有用),能够熟练地运用R语言会让你在其他领域有所建树,创造出实用并有意思的程序。

 

 

关注 哆嗒数学网 每天获得更多数学趣文

朗兰兹纲领在一步一步成为数学的大统一理论?

原文作者:Kevin Hartnett,量子杂志资深记者。

翻译作者,e^iπ+1=0,哆嗒数学网翻译组成员。

校对:风无名

 

关注 哆嗒数学网 每天获得更多数学趣文

 

 

一代代研究者努力实现他提出的朗兰兹纲领,以期创造一个大一统的数学理论。

 

 

罗伯特·朗兰兹,作为20世纪提出最富有原创性数学观点的数学家之一,在2018年的某个早晨,在挪威的庆典上,被授予年阿贝尔奖。这个奖项好比是科学界的诺贝尔奖,是数学界最高荣誉之一。

 

时年81岁高龄的朗兰兹,普林斯顿大学高等研究院的退休教授,也是“朗兰兹纲领”的创造者。这个纲领发掘了现代数学的两根支柱之间深刻的联系:一是数论,主要研究数中的算术关系;另一则是分析,是微积分的高等形式。这两者间建立起的关系有着广泛而深远的意义,帮助数学家回答关于素数性质的世纪难题。

 

 

在1967年,朗兰兹30岁的时候,在一封寄给著名数学家安德烈·韦伊的一封信中,第一次清楚提出他关于纲领的想法。安德烈打开了一封17页的长信,读到朗兰兹谦虚的说辞:“如果你愿意将其当作一份纯粹的推测,我将非常感激。如果不是的话,我相信你会直接将它丢入手边的垃圾桶。”

 

 

 

自此,一代代的数学家采取了他的想法并将其拓展。朗兰兹纲领横跨了众多数学领域,以致于常它被人看作是寻求大一统数学理论的工作。

 

 

 “我认为从现有的数学历史发展来看,这无疑是革命性的事件”,多伦多大学的数学家、朗兰兹曾经的学生詹姆斯·亚瑟说道。

 

 

 

数学家一直对在素数中寻找模式很感兴趣,素数即那些只能被1和自身所整除的数。素数就像是数论的原子,并以此为基本单元建立了算术体系。他们有无数多个,并且它们在所有整数中好像是随机地分布。为了发现素数的分布规律(这是著名的黎曼猜想的主题),将其与其他的数学分支联系在一起是必要的。这样看来,素数就像是密码,只有使用了合适的钥匙才能读懂其中吸引人的内容。

 

 

 

“他们看上去像是随机的偶然事件,当他们和别的数学分支联系起来的时候,则显示出一种极其复杂的结构。”亚瑟说道。

 

 

其中一个有关素数结构的问题是,什么素数可以被表示为两个完全平方数的和,初始的几个例子包括:

 

 

修改译文:

5等于2²+1²,

13等于3²+2²,以及,

29等于5²+2²。

 

 

在17世纪,数论学家发现所有可以被表示为两个平方数之和的素数都有如下性质:当他们除以4则余数为1。这个结论开始揭示素数隐藏的规律。而在18世纪晚期,高斯推广了这一令人惊讶的关系,阐述了将特定的素数(那些可以表示为两平方数和的素数)与特定的性质(当他们除以4则余数为1)联系起来的互反律。

 

 

 

在朗兰兹的信件中,他极大地拓展了高斯所发现的互反律。高斯的工作应用于二次方程(二次互反律),就是最高次数不高于2次的方程。朗兰兹认为素数被编码在更高维的方程中(比如三次方程和四次方程),而这则与调和分析这个遥远的数学领域有着千丝万缕的关系,这是一个诞生于微积分的数学分支,并经常用来解决物理问题。

 

 

 

 

举个例子,十九世纪的科学家惊讶地发现当他们通过棱镜观察星光,他们没有得到连续的光谱。相对应的,光谱在不同的地方被黑色谱带打断,而这些现在被称作吸收带,也就是光在那里消失的意思。最终科学家认识到消失的光已经被星球中的元素所吸收了。而这个发现成为其他星球与我们星球是由相同物质组成的坚实证据。

 

 

 

同时,光谱带成为数学家感兴趣的对象。那些消失的波长提供了一个序列——消失的光的频率。数学家可以通过分析来研究这些数,或者可以选择攻克全新的方程——这些问题在物理学上被提出,灵感却来自分析和几何。基于那些新的方程,他们可以研究一个平行于吸收光谱的观念。

 

 

 

朗兰兹纲领将多项式方程的素数解与在分析与几何中研究的微分方程的谱联系起来。它断言这两者之间存在互反律。而应用这个结论得到的结果是,我们可以获知哪些数会出现在相应的谱中。

 

 

 

这两个集合的数不能直接比较,他们都需要从不同的数学对象翻译过来。具体来说,伽罗华表示(一个基于素数的工具)可以通过自守形式将这些数学对象配对。这些自守形式就包括了相关的谱。

 

 

在朗兰兹纲领上工作的当代数学家们,正在试图证明这个关系以及相关的猜想。同时,他们利用朗兰兹式建立联系的方法去解决那些其它方法看起来无法解决的问题。最值得庆贺的结果应该是安德鲁怀尔斯在1995年的关于费马大定理的证明。怀尔斯的证明部分地依赖于朗兰兹数十年前预测的在数论和分析上的关系的类型。

 

 

朗兰兹纲领这些年已经被相当广泛地推广了。而当你把所有创造出来的复杂原理(它们被创造出来是为了实现朗兰兹的远见)都推开去,你发现,这整个的宏大的事业,仍旧是由一些最基本的数学的关切所驱动的。

 

 

 

“理解那些出现在方程中的素数的性质,等同于在算术世界中完成一个基本分类”,亚瑟说道。

 

 

关注 哆嗒数学网 每天获得更多数学趣文

原来多项式可以用来玩涂色游戏!

多项式不仅是课本上抽象的练习题。它们还有助于在一些令人意想不到的地方揭示数学结构。

 

 

 

2015年,诗人数学家June Huh帮助解决了一个50年前的问题。这个问题是关于一个叫做“拟阵”(matroids)的复杂的数学对象,它是由点、线和图片的组合而成。同时它也是一个关于多项式的问题——那些数学课上常见的可以把变量求不同幂次再求和的表达式。

 

有时你可能在学校里遇到多项式的合并、分解和简化的问题。例如,你也许记得x²  + 2xy + y²  = (x + y)² 。这是一个简洁的代数技巧,但是它到底有什么用处?多项式擅长于揭示隐藏结构,这个事实在Huh的证明中有着重要的作用。下面让我们用一个简单的例子来说明如何实现这一点。

 

假设这里有一个游戏要求将两组玩家安排在一张方桌上。为了防止他们作弊,需要避免同队的玩家坐在相邻的座位上。那么一共有多少种不同的安排方法?

 

游戏一开始,我们将玩家分为红色和蓝色两种。如图所示,假设先将一个红色玩家安排在图的上面的位置。

 

 

上面的位置左右各有一个相邻的座位,因此,为了满足我们的要求,这两个座位必须都安排给蓝色玩家。

 

 

图的底部还剩下了一个和两个蓝色玩家相邻的位置,所以必须有一个红色的玩家坐在那里。

 

 

因为没有一个玩家坐在他队友的旁边,我们的限定的条件满足了。

 

我们也可以在游戏一开始的时候将一个蓝色玩家安排在上面。和上文相类似的推理可以得到下面的安排。

 

同样,没有一个玩家坐在他的队友的旁边。我们的约束条件满足了,所以这是另一种可能的安排方法。事实上,这个游戏只有两种可能的排座结果。一旦我们选定了上面位置的颜色,剩下座位的颜色也都决定好了。

 

有一种方法能让我们不用画出所有不同的座位图就可以知道只有两种安排座位的方法。让我们从上面开始:对那个座位我们有两种选择,红色或者蓝色。当我们做出这个选择的时候,它左边和右边的位置都只有一种选择(另一种颜色)。然后,对最下面的座位来说,也是只有一个选择:我们开始游戏的时候选择的颜色。通过运用“基本计算原理”,我们知道所有可能性的个数是每一种选择可能性数的乘积。这就得到了2 × 1 × 1 × 1 = 2一共两个座位,就像我们用图像的确定出来的一样。

 

现在,我们加入用其他颜色表示第三支队伍。想象现在有红色,蓝色和黄色三种玩家。如果相邻的座位不能安排同样颜色的玩家,那么有多少种不同的安排方式?画出所有的可能性可能会需要很多的图像,所以让我们改用计算参数试试。

 

现在上面的位置有三种颜色可以选择。做出选择之后,我们就可以为左右两个位置选择剩下两个颜色中的任意一个。

 

那么方桌下方的座位会发生什么?人们很容易说最后一个位置只有一种选择,因为它左右都有相邻的座位。但你有没有发现其中的问题?

 

 

如果左右两边位置颜色不同,那下面的位置确实只有一种选择。例如,左边是蓝色的,右边是红色的,那么底下的就必须是黄色的。但是左右的颜色相同又会怎么样?在这种情况下,底下颜色的选择会有两种。最后的选择取决于一开始的选择,这就让我们的计算变得复杂起来。

 

因此我们必须考虑两种相互独立的情况:左边和右边颜色相同的时候和左边和右边颜色不相同的时候。

 

如果左边和右边的颜色相同,那么每条边颜色的可能性就如下图所示:

 

 

首先,上面的颜色有三种选择。然后,对于右边的颜色还剩了两种选择。因为我们假设左边和右边颜色是一样的,所以左边的颜色只有一种可能:和右边的颜色相同。最后,因为左边和右边颜色相同,底下的颜色可以是剩下的两种颜色中的任意一种。这样我们就有  3 × 2 × 1 × 2 = 12种可能的结果。

 

现在让我们考虑一下左边和右边颜色不同时的可能性:

 

 

同样,上面有三种选择右边有两种选择。左边仍然只有一种选择,但是这次的原因和第一次的不同: 它既不能和相邻的上面颜色相同,又得符合假设和右边颜色不同。而因为左边和右边的颜色不同,下面的颜色只有一种选择(和上面一样的颜色)。这种情况有3 × 2 × 1 × 1 = 6种可能的结果。

 

因为这两种情况包含了所有的可能,我们只需要把它们加起来得到总共有12 + 6 = 18种可能的结果。

 

增加了一种颜色让我们的问题变得复杂,但是我们的努力会得到回报。我们现在可以用这种方法解决4,5或者任意q种不同颜色时的问题。

 

无论在多少种颜色中进行选择,我们都要考虑两种情况:左边和右边颜色相同,左边和右边颜色不同。假设我们需要在q种不同的颜色种进行选择。下面的图像表示的是当左右颜色相同时每条边不同的选择数量:

 

 

一开始,上面的座位有q种颜色可以选择,右面的座位有q-1种颜色可以选择。因为我们假设左边和右边颜色相同,所以左边只有一种选择。这样,下面可以选择q-1种颜色,即除了左右的那种颜色之外的任何颜色。根据基本算数原理我们一共得到了q × (q – 1) × 1 × (q – 1) = q(q – 1)²种可能的结果。 

 

如果左右颜色不同,我们可以像这样列举可能的结果:

 

 

同样,上面的座位有q种颜色可以选择,右边的座位有q种颜色可以选择。现在,左边的颜色不能和右边的颜色相同,所以我们有q-2种选择。底下座位可以是除了左右两种不同颜色之外的任意颜色,同样也是有q-2种不同的颜色。这样我们一共有q × (q – 1) × (q – 2) × (q – 2) = q(q – 1)(q – 2)²种可能的结果。因为这两种情况包括了所有的可能性,我们像前面一样把它们加在一起得到最后可能结果的总数:q(q – 1)²q(q – 1)(q – 2)²

 

这个表达式看起来好像和“我们能有多少种不同的方式让不同的队坐在方桌上,同时不让两个队友坐在一起”这个问题毫无关系。但是这个多项式表达了关于这个问题的好多信息。它不单告诉了我们具体的数字结果,还表现出隐藏在这道题之下的一些结构。

 

这个特别的多项式被称为“染色多项式”(chromatic polynomial),因为它回答了下述问题:你有多少种不同的方法能够给网格(或图)的方格或者节点上色使其与相邻的方格或节点颜色不同。

 

我们的问题最初是关于给队伍在一张桌子上安排座位,但是我们可以很容易地把它转化成一个关于给图像上节点上色的问题。我们不再想象人们围着桌子坐,我们将人们比作节点,如果他们坐在一起就用一条线把他们连接起来。

 

 

 

 

现在,图像中的每一个节点的颜色可以被看成方桌周围的一个座位,而“邻座”在图上变成了“有一条线段将它们连接起来” 。

 

 

既然我们已经将我们的问题用一个图表示出来,那么让我们回到它的染色不等式。以下我们将成它为P(q)。

P(q) = q(q – 1)² + q(q – 1)(q – 2)²

 

这个多项式的好处是它能够回答我们所有可能的图像上色问题。

 

例如:为了得到有三个颜色的题的答案,我们让q=3,从而得到:

P(3) = 3(3 – 1)²+ 3(3 – 1)(3 – 2)²= 3 × 2² + 3 × 2 × 1² = 12 + 6 = 18

 

这个恰恰是在我们上面的三个队伍的情况下找到的答案。而当我们让q=2时:

P(2) = 2(2 – 1)² + 2(2 – 1)(2 – 2)² = 2 × 1²+ 2 × 1 × 0² = 2 + 0 = 2

看起来是不是很熟悉?这是我们一开始两个不同队伍的情况下时的答案。我们只需要给q代入适当的值就能够得到有四个,五个甚至是十个不同队伍情况下的答案:P(4) = 84, P(5) = 260 and P(10) = 6,570。色多项式通过归纳我们的算数方法,已经捕捉到了这个问题的一些基础结构。

 

我们可以通过对多项式P(q)做一些基本的代数运算揭露更多的结构

P(q) = q(q – 1)² + q(q – 1)(q – 2)²:

=q(q−1)(q−1)+q(q−1)(q−2)²

=q(q−1)((q−1)+(q−2)²)

=q(q−1)(q−1+q²−4q+4)

=q(q−1)(q²−3q+3) 

 

这里我们已经把q(q – 1)从和中的每一个部分提取了出来然后合并同类项,把多项式变成用乘积表示出来的“因子形式”。在因子形式中,一个多项式可以通过它的“根”来告诉我们结构。

 

一个多项式的跟指的是使得多项式为0的去值。并且一个多项式的因子形式使得求根变得容易:因为多项式是以因式乘积的形式存在的,任何让其中一个因子为零都会让整个乘积变为零,因此多项式也是0。

 

例如,我们的多项式P(q) = q(– 1)(q² – 3q + 3)有一个因子(q – 1)。如果我们让q=1,这个因式就变成了0,从而将整个式子变成了0。就是P(1) = 1(1 – 1)(12 – 3 × 1 + 3) = 1 × 0 × 1 = 0. Similarly, P(0) = 0 × (–1) × 3 = 0。所以q=1和q=0就是我们多项式的两个根。(你也许在考虑(q2 – 3q + 3)的问题。因为没有一个实数能让这个因式变为0,所以它没有给我们的色多项式提供任何实根。)

 

这些代数根在我们的图像中是有意义的。如果我们只能选择一种颜色,那么每一个节点都会是相同的颜色。那么由于相邻的两个节点不能是相同的颜色,我们无法给这个图像上色。但是这就是q = 1是这个色多项式的根的含义。如果P(1) = 0,那么就没有办法能在给图像上色的同时保证相邻的节点颜色不同。如果我们有0种颜色供我们选择: P(0) = 0,结果也是同样的。染色多项式的根告诉了我们图的结构。

 

当我们开始看其他图像的时候,从代数的角度看这个结构的能力就变得更加重要了。让我们来看看下面的三角图像。

 

 

 

用q种颜色给上面的图像上色有多少种方法可以使任何相邻的两个节点颜色不同?

 

通常,前两个节点有分别有q和q-1种选择。因为剩下的节点是和前两个都相邻的,所以它的颜色必须和前两个的颜色都不相同,就只剩下了q-2种选择。所以这个三角图像对应的色多项式就是:P(q) = q(q – 1)(q – 2)。

 

在它的因式形式中,这个色多项式告诉了我们一些有趣的事情:q=2是一个根。而且如果P(2) = 0,我们无法用两种颜色给这个图像上色的同时保证相邻的两个节点颜色不同。

 

那么,想象一下沿着这个三角形的循环走,你每走到一个节点,就给它涂上颜色。因为你只有两种颜色可以选择,那你只能每走到一个节点就变换一种颜色:如果第一个是红色,那么第二个就必须是蓝色,这也代表着第三个必须是红色。但是第一个和第三个是相邻的,所以它们不能都是红色的。正如多项式预测的一样,两种颜色是不够的。

 

使用这种方法交替论证,你可以推导出一个有力的结论:任何有奇数个节点的循环的色多项式都必须有2作为一个根。这是因为如果你在一个有奇数个节点的循环中交替使用两种颜色,你就会给第一个和最后一个涂上一样的颜色。但是因为它是一个循环,第一个和最后一个是相邻的。这就是不可能满足条件的了。

 

例如,我们可以用各种技巧确定一个有五个节点的循环所对应的色多项式为P(q) = q5 – 5q4 + 10q3 – 10q2 + 4q。但当我们把它变换为因式形式的时候,它就变成了P(q) = q(– 1)(– 2)(q2 – 2q + 2)。就像我们猜测的那样,我们看见q = 2是一个根也就是P(2) = 0。值得注意的是,一旦我们建立起了图像和对应的多项式之间的联系,我们就会发现:多项式可以告诉我们图的结构,图也可以告诉我们它们所对应的多项式的结构。

 

正是对结构的研究让June Huh证明了Read在40年前关于染色多项式的猜想。这个猜想是说当我们按顺序列出一个色多项式的系数并且忽略它们的符号的时候,就满足了一个特殊情况:也就是,任何一个系数的平方都必然大于等于与它相邻的两个系数的乘积。例如:在有五个节点的循环所对应的色多项式中,P(q)  = q^5 -5q^4 +10q³- 10q² +4q我们可以发现52 ≥ 1 × 10, 102 ≥ 5 × 10以及 102 ≥ 10 × 4。这说明并不是每一个多项式都是一个色多项式:染色多项式通过和图像的连接有着更深的结构。更重要的是,这些多项式和其他领域直接的关系让Huh和他的合作者在证明了Read的猜想几年后解决了一个更加广泛的开放性问题——罗塔猜想(Rota)。

 

大家都知道多项式没啥了不起的:不过就是用符号来抽象表示的一些运算而已。但是多项式以及多项式的特征——它们的根,它们的系数,它们各种各样的形式——能够帮助我们在令人惊奇的地方揭示结构,建立了我们日常生活和代数之间的联系。

 

 

关注 哆嗒数学网 每天获得更多数学趣文

为什么自然数是0、1、2、3……这些,能不能有别的?

原文作者:Eliezer Yudkowsky,AI专家。

翻译作者,风无名,哆嗒数学网翻译组成员。

校对:Math001

 

关注 哆嗒数学网 每天获得更多数学趣文

 

 

解答者:

 噢!你好!又回来啦?

 

好奇宝宝:

是的,我又有新问题了。之前你说你不得不使用二阶逻辑来定义自然数。不过,我非常确信我听说过叫做“一阶皮亚诺算术”的东西,据说它定义了自然数。从名字上说,它不应该含有任何“二阶”公理。坦白地说,我觉得我对这个二阶的东西还是一点感觉都没有。

 

解答者:

好吧,让我们通过考察如下的模型来开始:

 

 

这个模型拥有那三个我们希望对于标准自然数都满足的性质“每一个数都有一个后继”, ”如果两个数拥有一样的后继,则相等”,”0是那个唯一的不是其它数的后继的数。”。在这个模型中,所有这些陈述都是真的,所以从那个意义上,它的确和自然数差不多

 

显然这个模型不是我们正在寻找的自然数,因为它拥有多余的一些神秘的数,像C, 2*。像C那样的东西甚至是一个圈,我当然不希望任何自然数会这样。而且,还存在双向无穷的不能收拢到任何其它的东西的一条链。

 

是的,这就是一阶逻辑与二阶逻辑的区别:在一阶逻辑中,我们可以去除那些ABC——做一个陈述句,它可以排除掉任何拥有像那样的圈的模型。但是我们不能去除掉下面的无穷的链。在二阶逻辑中,我们可以去掉多那个多余的链。

 

 

好奇宝宝:

你能解释一下你刚刚说的吗,虽然眼下我还不知道二阶逻辑是什么。

 

解答者:

再等我一下。首先,细想下面这个检验“二性质”的公式:

x + 2 = x * 2

 

好奇宝宝:

换句话说,当x等于2的时候,这个公式是真的,其它任何地方它是假的,所以它单独挑选出2 ?

 

解答者:

正是。下面这个是一个检查奇数的公式:

∃y: x=(2*y)+1

好奇宝宝:

嗯,OK.这个公式在说,“存在一个y,使得x等于2乘以y加上1”。当x是1的时候,那是真的,因为0是一个数,而且1=(2*0) + 1.当x是9的时候,那是真的,因为存在一个数4,使得(2*4)+1...正确地。只要x取奇数那个公式就是真的,而且只对x取奇数时是真的。

 

解答者:

非常正确。现在假定我们有一个办法来检查在一个模型中ABC-圈的存在——在ABC-圈都是真的其它地方都是假的的公式。然后,我可以改造一下这个公式,得到它的否定形式,即“任何像这样的对象都不允许存在“,增加它,使它与“每一个数都有一个后继“这些一起作为自然数的公理。

 

好奇宝宝:

嗯,我可以通过表述¬∃x:(x=A)来去除ABC-圈吗?

 

解答者:

嗯,只有你已经首先告诉了我A是什么才可以那么说,而且在一个去除了所有带有圈的模型的逻辑中,你不能指定某个特定的不存在的对象。

 

好奇宝宝

这样啊。OK...所以那些去除后继的圈的思路是...嗯。在0,1,2,3这些数中,0不是任何数的后继。如果我有一组次从1开始的数,比如{1,2,3 ...}, 在这个组中,1不是任何数的后继。在A,B,C,数A是数C的后继,数C是数B的后继,数B是数A的后继,如果我说”不存在数的组G,使得对于G中的任何数x,它是G中另外一个数y的后继。“

 

解答者:

啊!非常聪明。不过,你刚才就在使用二阶逻辑,因为你谈论了实体的组或类,一阶逻辑仅仅谈论单个的实体。假定我们有一个谈论小猫以及他们是否是讨人厌的逻辑。这是一个恰好含有三个不同的都是讨人厌的小猫的论域的模型:

 

 

 

好奇宝宝:

嗯,哪些“属性”(图中的“propery”)是什么?

 

解答者:

它们是小猫的所有可能的类。它们被称为属性,因为小猫的每一个类都对应了那类小猫具有的、其他类小猫不具有的属性。比如右上角的那个只含有灰色小猫的类,就对应了一个在灰色小猫为真而在其它地方为假的某个陈述,也对应了一个只有灰色小猫具有、其它小猫不具有的属性。事实上,从现在开始我们认为一个“属性”仅仅说了一个“类”

 

好奇宝宝:

好,我理解了“小猫的类”这个概念了。

 

解答者:

在一阶逻辑中,我们可以谈论单个的猫,它与其它单个猫的关系,符合某个特殊关系的猫是否存在。在二阶逻辑中,我们可以谈论猫的类,以及某些类是否存在。所以,在一阶逻辑中,我能说,“存在一只不讨人厌的猫”或者“对于任意一只猫,它都是不讨人厌的”或者“对于任意一只猫,存在另外一只猫它喜欢第一只猫”。不过,需要二阶逻辑才形成关于“猫的类”的叙述句,比如“不存在一个猫的类,使得该类中的每一个猫都被该类中的另一只猫所喜欢”

 

好奇宝宝:

我懂了。所以,当我想说你不能拥有任何数的组,使得这个组中的任一个数都是这个组中的其它某个数的后继...

 

解答者:

……你对数的类是否存在进行了量化描述,这意味着你在使用二阶逻辑。不过,就这个情形来说,仅使用一阶逻辑来去除ABC-圈,也是容易地可能的。考察这个公式:

 

x=SSSx

 

好奇宝宝:

x 加3与它自己相等?

 

解答者:

对的。这是一个一阶公式,因为它没有谈论类。在0,1,2,3...这个公式是假的,不过在A,B,C它是真的。

 

 

好奇宝宝:

图中的那个加号“+”是什么意思?

 

解答者:

嗯,我试图使用加号“+”来说“这公式是真的”,类似的,  假定“¬”的意思是那个公式是假的。一个普通的想法是,我们现在有一个公式来检查3-圈,把它们与像0,1,2这样的标准数区分开来。

 

 

好奇宝宝:

我明白了。所以,通过添加¬∃x:x=SSSx作为一条新的公理,所有含有A,B,C或者任何其它的非标准数的3-圈的模型,我们就可以都去除了。

 

解答者:

是的。

 

好奇宝宝:

不过,这样向自然数的基础理论添加一条公理,好像过于随意。我的意思是,我从来没有看到过这样描述自然数的尝试:把“没有一个数等于它自己加3”作为一个基本的前提。看起来它应该是一条定理,而不是公理。

 

解答者:

那是因为它是通过引入一个更加一般的的规则来引入的。具体来说,一阶算术有一个无穷公理模式——一个无穷但是可计算的公理模式。这个模式的每一条公理说了,对于一个一阶公式Φ(x):

 

1. 如果Φ在0是真的,即Φ(0)

 

2. 只要Φ在一个数时为真,则在这个数的后继也为真,即∀x: Φ(x)→Φ(Sx)

 

3. 那么,Φ在所有数都是真的:  ∀n: Φ(n),即

 

(Φ(0) ∧ (∀x: Φ(x) → Φ(Sx))) → (∀n: Φ(n))

 

 

换句话说,对于每一个公式,它在0时真的,它在每一个使它为真的下一个数都是真的,那么它在任何一个数都是真的。这就是一阶算术的归纳模式。作为一个特例,我们有这个归纳公理:

 

(0≠SSS0 ∧ (∀x: (x≠SSSx) → (Sx≠SSSSx)) → (∀n: n≠SSSn)

 

好奇宝宝:

不过那并没有说对于所有的n, n≠n+3。它给出了一些前提条件,然后根据这些前提能可以得出最后那个结论,但是我并不知道那些前提条件在哪里。

 

解答者:

啊,然而,使用算术的其它公理,我们证明那些前提条件,从而证明了这个结论。公式(SSSx=x)在0是假的,因为0不是任何数的后继,包括SS0。类似地,考虑公式SSSSx=Sx,我们可以整理为S(SSSx)=S(x)。如果两个数有相同的后继则它们是相等的,于是SSSx=x。根据逆否命题等价的逻辑规则:如果在Sx的真实性证明了在x的真实性,那么,在x为假就证明了在Sx为假。于是那个公式在0是假的,当它是假的时候它的后继也取值为假,于是根据一阶算术的归纳公理模式它必然处处为假。所以,一阶算术可以去掉像这样的模型:

 

 

好奇宝宝:

...嗯,我认为我明白了。如果这个模型遵守了我们已经指定了的其它公理(它们没有去处掉这个模型),比如“零不是任何数的后继”、“拥有同样后继的两个数相等”——那么我们可以证明公式x≠SSSx 在0是真的,可以证明那个公式如果在x是真的那么在x+1也是真的。所以,一旦我们更进一步地添加公理x≠SSSx在0是真的,以及如果x≠SSSx在y是真的则在Sy也是真的,那么x≠SSSx在所有的x都是真的...

 

解答者:

我们已经得到了这些前提条件了,所以我们得到了那个结论 ∀x: x≠SSSx,从而去除了所有的3-圈。对于任意的N,类似地逻辑可以去处N-圈。”

 

 

好奇宝宝:

所以,我们去处了所有的非标准自然数、只留下了标准自然数?

 

 

解答者:

不。因为还存在与-2*, -1*, 0*, 1* 这个无穷链相关的问题。

 

 

好奇宝宝:

这里有一个想法可以用来去除掉带有无穷链的模型。链中的所有非标准自然数都大于标准自然数,对吧?比如,如果w是一个非标准自然数,那么w>3, w>4,等等?

 

解答者:

我们可以归纳地证明没有一个数小于0,并且w不等于0、1、2、3、……,所以我必须同意那一点。

 

好奇宝宝:

OK.我们也能够证明:如果x>y,那么x+z > y+z.所以如果我们有一个非标准数w并且讨论w+w, 那么w+w一定大于w+3, w+4等等。

 

 

所以w+w不能是哪个无穷链的任何部分,然后相加两个数应该产生第三个数。

 

解答者:

事实上,那就证明了,如果存在一个无穷链,那就必然存在两个无穷链。换句话说,图片里面最原始的那个模型,仅仅它自己是不能作为一阶算术的模型的。那个链蕴含着其它的元素,展示了这一点不意味着证明了那个链不存在。类似地,由于所有的数为奇数或者偶数,我们一定可以找到一个v使得v+v = w 或者v + v + 1 = w。于是v必然是另一个非标准链的一部分,这个非标准链在那个含有w的标准链的前面。

 

好奇宝宝:

不过,那就要求有无穷多个无穷非标准数的链,这些非标准数都大于任何标准数。也许我们可以扩展这个逻辑,最终获得一个矛盾,从而一开始就去除无穷链 —— 比如,我们可以证明任何完备的非标准数的类必定大于它自己?

 

解答者:

想法很好,不过,并不可行。你将得到这样的结论:如果一个非标准数存在,它必定是一个双向无穷的链的一部分,这个链看起来像是负整数与正整数的有序拷贝。如果一个无穷链存在,那么存在对应于所有有理数的无穷多个链。所以呢,可以作为一阶算术的非标准模型的某个东西,必定至少含有标准数,紧接着一个有理数的拷贝(每一个有理数都被一个整数所代替)。然后,加法、乘法在这个设定中都走得通——我们不能证明它可能比我们已经说过的更大。”

 

好奇宝宝:

OK, 那么我们如何才能去除掉无穷多个无穷链的非标准自然数、仅仅保留开始的标准自然数呢?它们将违反什么样的陈述句——什么类型的公理才可以排除掉多余的数呢?

 

解答者:

为此,我们必须使用二阶逻辑。

 

好奇宝宝:

坦白地说,我不是100%地清楚它们的区别。

 

解答者:

OK...早先你给我一个可以检测出奇数的公式。

 

好奇宝宝:

是的。∃y: x=(2*y)+1,在x=1,x=9等等地方为真,不过在x=0为假。

解答者:

当你依据数的类来思考的时候,那就存在一些能够被公式所定义的类。例如,奇数 {1, 3, 5, 7, 9, ...}的类可以被这个带有自由变元x的公式所定义: ∃y: x=(2*y)+1。不过呢,你也可以试着去仅仅就类论类地讨论{1, 3, 5, 7, 9, ...}这个数集,是否存在一个定义了它的公式。

 

好奇宝宝:

等一下,如果你不能定义一个说明了某些东西是否是这个集合的元素的公式,你怎么能谈论一个一个集合呢?我的意思是,从理性主义者的视角来看,那样貌似感觉不爽。

 

解答者:

嗯...还记得先前关于小猫的谈话吗?

 

 

假定你像这样谈说,‘存在一个小猫的类,使得任何一只小猫只喜欢这个类中的其它小猫’。给我一个装满小猫的屋子,我可以计数出所有可能的类,对于每一个类检查你的陈述,这样就可以看到是否真的存在一个像那样说的类。所以那个陈述句是有意义的——它是可以被否定或者检查的,它限制了实在的状态。不过你并没有给我一个局部的公式以便我抓起一只小猫就能判断它是否在这个神秘的类之中。我必须遍历所有的小猫的类来寻找满足你的陈述句的类,只有到那时,我才能判断任何具体的单只小猫是否在那个类中。不过那个陈述句仍然有可错性,虽然使用数学的术语,它是非直谓的([译注1])——以下情况我们才能那样称呼它:当你构造了一个你只能通过考察很多可能的类来核实的陈述句,并没有从一个特殊的、你告诉了我如何构造的类来开始。

 

好奇宝宝:

啊... 嗯。如果是在有无穷只小猫的世界里,你不能在有限时间内遍历所有可能的类呢?

 

解答者:

如果你说,‘存在一个小猫的类,它们都互相喜欢’,我可以展示出来一个拥有三只小猫的彼此喜欢的类,于是就证明了那个陈述句是正确的。如果你说‘存在一个类,它有四只小猫,它们互相喜欢但不喜欢别的猫’,在已经知道小猫的其它特性的情况下,我也许可以提供一个构造性的证明来证明你的陈述是错的;每次,你给我四只猫,我可以找到第五只猫,它被你的四只猫的一只所喜欢,从而否定了你的努力。不过,这就把我们带到了关于数学的非常深入的部分了,我们暂时不去讲它。重点是即使是无穷的世界里,仍然存在二阶的陈述让你在有限时间内证明或证否。一旦你承认那些特殊的二阶陈述句是在有意义地说明一些东西,好吧,也许,你会承认一般的二阶陈述句也是有意义的。

 

好奇宝宝:

……对我来说那听起来有点怪怪的,也许不久以后我们会遇到麻烦。

 

解答者:

你不是唯一一个纠结这个的“数学家”。

 

好奇宝宝:

不过让我们回到自然数吧。你说我们可以使用二阶逻辑来去除任何的无穷链。

 

解答者:

是的。在二阶逻辑中,我们可以在一条陈述句中,直接对所有可能的类进行量化,而不必使用所有公式上的无穷的公理模式:

 

∀P: P(0) ∧ (∀x: P(x) → P(Sx)) → (∀n: P(n))

 

 

这里的P是任何一个类的陈述,它在每一个数要么真要么假。数的任何一个类,都对应了一个陈述,对于类里面的数它为真,对于类外面的数它为假。

 

 

好奇宝宝:

OK...那是如何去除掉无穷链的呢?

 

解答者:

因为,从理论上说,无论是否存在一个一阶公式能把它们挑选出来,仍然存在一个包含、且仅包含了标准数{0, 1, 2, ...}的类。如果你把类当作一个陈述P,那么P在0是真的——那就是说,0是标准数中。如果200是一个标准数则201也是等等;如果P在x是真的,也在x+1是真的。另一方面,如果你把‘仅在在标准数’这个类当作一个陈述,它在 -2*, -1*,  0*等等都是假的——那些数不在这个理论上的类中。所以‘如果它在0*为真则它在1*为真’就是为真了,因为在0*它不为真。于是我们以下图来终结:

 

 

所以这个二阶公理……

 

∀P: P0 ∧ (∀x: Px → P(Sx)) → (∀n: Pn)

 

 

……一下子就去除掉了任何不链接的链、有限圈,即任何非标准数。

 

 

 

好奇宝宝:

不过那条公理的准确意思是?我的意思是,暂时放弃短语‘标准自然数’,假定我对那些没有任何的理解,仅仅给我解释一下那条公理事实上说了什么。

 

解答者:

它表达了这个意思:正在讨论的模型——符合这个公理的模型——让形成这样的类是不可能的:在后继这个操作之下是封闭,包含了0但是不包含每一个东西。在这个论域中的类不可能是这样的:0在这个类中,这个类中的每一个东西的后继也在这个类中,然而它并不含有每一个东西。所以,你不能含有一个不连通的无穷的链——(如果存在的话)那将至少存在一个类,它含有了0以及所有的后继——后裔,然而并不包含那个链;而且我们有一个有启发性的新公理述说了那个不可能的。

 

好奇宝宝:

也许你能够使用一个更加直观的方式来说明?好比说,如果这就是我所信仰的关于这个宇宙的事情,那么,什么是我可以期望得到的呢?

 

解答者:

如果这就是你所信仰的你生在其中的数学模型...那么你相信了,不管是你还是其他对手,抑或是一个超级智能体,或者上帝,都不能对对象以这种方式来说‘是’或‘非’:当你给他们0,他们说‘是’;当你给他们任何他们说‘是’的对象,他们也对这个对象的后继说‘是’;然后,存在某个对象,他们说‘非’。你相信这绝不能发生,无论以什么方式。宇宙中的对象被后继安装的这种方式,从不允许那种事情发生。

 

好奇宝宝:

啊。如果他们对42说‘非’,我将回退并且询问41,然后是40,然后当我到了0,我将会发现他们对0说‘非’或者‘他们对41说了非,然而对40说了是’。如果我相信带有无穷公理模式的一阶逻辑,我能够期望得到什么呢?

 

 

解答者:

在那种情况,你相信不存在像那样起作用的灵巧规定的、紧凑描述的规则。不过如果你相信那个二阶版本,你相信,没有人可能像那样行动,即使他们是在随机地回答问题,或者把这个宇宙叉开一个分支来在不同的宇宙中以不同方式来回答等等。顺便注记一下,如果我们有一个有限的论域[译注2],也就是说,我们去掉了那个每一个数都有一个后继的规则,作为替代假定256是唯一没有后继的数——那么我们就可以在有限时间之内来验证这条公理了。

 

好奇宝宝:

我明白了。是否存在一个方法使用一阶逻辑去除掉无穷链呢?我将发现那更容易处理一点,即使它刚开始看起来更复杂。

 

解答者:

恐怕是没有的。一种我喜欢看待的方式是:从局部看模型如何这样的约束,一阶逻辑能够做到,然而只有二阶逻辑才能谈论链、类、作为一个整体的模型这些的性质。任何一个数是否具有后继是一个局部性质——模型从一个数的视角去看是怎样的,这样的问题。一个数加三是否等于它自己,是一个这样的问题:你能够从任何一个数它自己的位置去评估。一个数是否是偶数,这个问题你可以通过寻找唯一的一个数x使得x+x等于那个数来回答。但是,当你试图说仅存在唯一的链它从0开始,借助于连通、链的想法,你在试图描述非局部的性质,这需要指定一个关于可能的类的逻辑。

 

好奇宝宝:

嗯。不过如果所有的局部性质都是一样的,为什么要担心整体性质呢?在一阶逻辑中,任何‘局部’公式它在0以及所有‘自然的’后继都是是真的,在所有的不连通的链它将必须为真... 对吗?亦或我弄错了什么?0-链之外的所有链——所有‘非标准数’——将像‘自然’数一样拥有同样的性质,对吗?

 

 

解答者:

恐怕不是的。算术的一阶公理不能成功地确定一个图灵机会停止——是否存在一个时刻使得一个图灵机停止。在标准数中,从我们的视角说某个图灵机‘真的不’停机——它在第0个时钟滴答不停机,在第1个时钟滴答不停机,在第2个时钟滴答不停机,以及0-链上的所有标准后继。在整数的非标准模型——拥有其它无穷链的模型——在一个非标准链中也许存在一个位置,图灵机走到那里就停止了,而且永远停止在哪里。

 

 

在这个新的模型——与一阶公理完全兼容,并且不能被它们去除掉——‘对于任一个数t这个图灵机是运行的,在t+1它仍然运行’不是真的。虽然我们可以把我们的注意力限制在‘自然’数上,我们可以发现这个图灵机在0,1,2以及0-链的后继每一个时刻都是运行的。

 

好奇宝宝:

OK... 我不是清楚那样做会有什么后果?

 

 

解答者:

它意味着很多事实上在标准时间上从来不停机的图灵机,仅仅使用一阶推理,是不能证明不停机的,因为它们的不停机性事实上是不能从一阶公理推论出的。逻辑是关于那些从前提导出的结论的,还记得吗?这意味着你将不能证明——不应该证明——这个图灵机停止,只使用一阶逻辑的话。

 

 

好奇宝宝:

怎么证明不成立呢?我的意思是,那些证明在哪里走不通呢?

 

解答者:

你将无法得到归纳中的第二步,‘对于任一个时刻t图灵机正在运行,在t+1时刻它仍将运行’。存在带有非标准数t的非标准模型否定了这个前提条件——在一个非标准时间 图灵机从运行状态停止了。我们可以把注意力仅限制在标准数的话,我们会发现那个图灵机在0,1,2等等在运行。

好奇宝宝:

不过如果一个图灵机事实上真的停止了,那就存在某个它停止的时刻,比如在第97步。

 

解答者:

是的。不过97存在于算术的所有的非标准模型,所以我们可以在一阶逻辑中证明其存在性。0是一个数,每一个数有一个后继,数不循环等等,那将存在97。每一个非标准模型至少含有标准数。所以当一个图灵机确实停机的时候,你可以在一阶算术中证明它停机——它推导出自那些前提。那正是你所期待的,假定你可以观察那个图灵机97步的话。当某图灵机事实上停机的时候你应该可以证明它停止而不需要担心无限的未来时间!当它在标准数中事实上不停机的时候——由于‘非标准停机时间’的存在,它就变成了一个问题。于是,图灵机永远运行这个结论也许事实上不能从一阶算术推导出来,因为你可以遵从一阶算术的所有的前提,然而仍有在非标准模型中的某个位置图灵机会停机。

 

好奇宝宝:

所以二阶算数比一阶算术更加强大,就哪些可以从前提推导出来来说?

 

解答者:

能够谈论较少可能的模型这个能力必然得出那一点。正像已经写到的,“关于某个苹果是真的事情对于另一个苹果不一定是真的;所以,关于单个苹果可说的东西多于关于这个世界上所有的苹果可以说的东西。”如果你能够把你的论域限制到一个更狭窄的模型的类上,那就存在更多的可以必然推导出的事实,因为你谈论的模型越大,关于它们都真的事实越少。另外二阶算数比一阶算术证明了更多的定理,它也确实是真的——比如,它能够证明一个能计算古德斯坦序列的图灵机总是到达0并停机,赫拉克勒斯总是赢得九头蛇游戏。不过呢,如果这样就一般地来说二阶逻辑是否事实上比一阶逻辑更加强大,会遇到一点争议。

 

 

好奇宝宝:

好吧。毕竟,仅仅因为没有人曾经发明一个一阶公式来去除掉所有的非标准数,并不意味着它永远不可能。未来一些聪明的数学家也许可以找到一个方式使得,对于任一个数x,使用加法、乘法、关于其它单个的数是否存在这些来对它仅作局部的事情,这个方法可以告诉我们那个数是在0-链上,亦或在某个双向无穷的链上。它将简单得就像:

(a=b*c) 

 

解答者:

不。那不会发生。

 

好奇宝宝:

不过,也许,你能否找到一些完全不同的创新的方式,只用一阶公理得到全部都是标准自然数的模型。

 

解答者:

不可能。

 

好奇宝宝:

嗯...你是如何准确地知道那一点的?我的意思是,当你参加一个比赛,作为比赛选手的一条原则就是当某事看起来不可能的时候,你不要放弃。我不能明白如何使用一阶公式来检查无穷的链。不过,先前我不能认为你可以去除有限圈,一旦你讲解了,它就显得非常简单。毕竟,关于‘不可能’这个词存在两种不同的用法,一种直接用已有知识表明了某事不能实现,也就是说那怕你是一个超级智能体,也不可能找一种做法来达成这个目标。这种情况,你需要利用已知知识给出一个确定、完整的结果,从而你可以否定每一个可能的成功途径。还有另外一种,‘不可能’一词更加通常的用法:你思考了五秒钟没有发现实现它的方法,然后就说”不可能“。一般在对知识了解有限,那个问题又看起来有些神秘主义倾向会这样。

 

解答者:

是的。使用一阶公式来去除掉双向无穷链,是第一种类型的不可能。我们知道它永远不可能实现。

 

好奇宝宝:

嗯,我知道。好吧,你有什么观点,如何说明你的观点?能用你明确的知识正面回答为什么‘不可能’吗?别用这种神秘兮兮的方式强行灌输?

 

解答者:

下一次,下一次我们再来好好讲讲。

 

译者注:

 

[1]非直谓的(impredicative)

[2]原文universe既可以翻译为宇宙,也可以在某些情况下翻译为“论域”。有些情况下,难以抉择,或者本身就是双关。请读者自己记住这一点。

 

 

关注 哆嗒数学网 每天获得更多数学趣文