罗素悖论的公理化解决——语法角度的考察

罗素悖论的公理化解决——语法角度的考察

最近匿名回答了这样一个问题:
卓里奇《数学分析》中一个关于集合的问题? - 集合论
结果提问者和我讨论完马上又提了个在我看来完全相同的问题:
请问公理集合论是如何解决罗素悖论的? - 数理逻辑
说实话我是不太高兴的。如果我表达的清楚,那么提问者这么做就可能是对我回答的不满。我可能是个心胸狭窄的人,揣测他人的意图时必然也会考虑最大恶意的情况。
然而新提问下的回答在我看来要么是错的,要么根本没有把握到重点。我对此不屑的同时也因自己的卑鄙而感到罪恶。
虽然开这个专栏本来就是想要大吐私货,享受与人撕逼的快感,所以每篇文章都会贴上几个提问或回答的链接围绕目标展开。但是这篇文章中的私货就到此为止了,接下来我尽量保持平静来解释一下罗素悖论的公理化解决。

罗素悖论就是说:
考虑这样一个集合(朴素的概念): \{x:x\notin x\} ,即恰好以--所有不以自身为元素的集合--为元素的集合,记为 A
考虑 A\in A 是否成立。
假设 A\in A 成立,则由 A d的定义, A\notin A
假设 A\in A 不成立,即 A\notin A ,则由 A 的定义, A\in A
于是不论命题 A\in A 是否成立,总是有矛盾。

罗素悖论指出了朴素集合论中存在矛盾,即理论不自洽。而人们又不愿意抛弃集合论里的一些有价值的结果,因此要想办法解决这个矛盾,并且保留下那些有价值的结果。而公理化集合论就是广为人知的解决方案。

对于公理化集合论是如何解决罗素悖论的,有这样一种典型的回答:
假设罗素悖论中的集合 A 存在,则得到矛盾。因此,罗素悖论其实是证明了集合 A 是不存在的。
这样一种回答,当然没有错误,但是这很难说能让人理解。如果你本来就明白罗素悖论的解决究竟是怎么回事,那当然知道这在讲什么。但是如果你本来就不明白,我感觉这种回答的帮助不大,只会觉得这解决的也太粗暴了,甚至有人觉得这根本是回避问题。
事实上,将一个理论公理化是个在现在看来非常自然的事,而公理化对罗素悖论的解决也是非常自然的。

首先让我们明确一下,罗素悖论其实是在说(为了方便表达,就不要求严格叙述命题了):
\Sigma\vdash(A\in A)\rightarrow(A \notin A)\\ \Sigma\vdash(A\notin A)\rightarrow(A\in A)
这里 \Sigma 是朴素集合论中使用的公理集(虽然这在朴素集合论中没有被明确指出,但是在公理化的角度,是有这样的一个公理集的), A 即罗素悖论中的集合, \vdash 即语法蕴含的符号(即能够推导的意思)。
经过简单的推导,我们可以得到:
\Sigma\vdash\phi\wedge(\neg\phi)
其中 \phi 代表命题 (A\in A) 。也就是说,朴素集合论能够推导出矛盾。

在我们导出矛盾时,我们其实略去了集合 A 存在的证明。 而这个集合的存在,是因为在朴素集合论中,我们事实上是承认概括公理模式(在此简记为 AS_C ,Axiom Scheme of Comprehension)的 ,即:
\forall p_1,p_2,...,p_n(\exists B(\forall x(x\in B\leftrightarrow \psi(x,p_1,p_2,...,p_n))))
意思是说,对于任何一个命题函项 \psi(x,p_1,p_2,...,p_n) ,给定参数 p_1,p_2,...,p_n 后,使之为真的所有 x 能构成一个集合 B 。这和我们当时对集合的直觉感受是符合的。
可以看出,令这里的 \psi(x) x\in x ,这样就证明了集合 A 的存在。于是我们得到了从朴素集合论的公理集到一个矛盾的证明。

当我们考虑要将集合论进行公理化时,其实我们是要找一个合适的公理集(在给定的逻辑系统中),使之能够证明我们所想要的那些有意义的命题。而我们肯定是不允许理论能够导出一个矛盾来的(即不自洽)。因此我们要修改朴素集合论的公理集。我们对罗素悖论的产生,直觉上将其归因于朴素集合论中的集合构造太随意了,有些集合(或者是集合间的属于关系结构)在直觉上是不应该存在的(事实上这是种语义角度的直觉,也是正规公理的来源)。而允许朴素集合论随意构造集合的原因,就是 AS_C ,即:
AS_C \subset \Sigma
\Sigma \vdash \phi\wedge (\neg \phi)
于是公理化时为了避免理论不自洽,我们的选择就是把 AS_C 从理论中去除。但是这么做会导致我么难以构造许多我们需要的集合,于是我们又增加了以下公理:
无序对公理
并集公理
幂集公理
分离公理模式
......
需要注意的是,分离公理模式是直接来自于概括公理模式的弱化。但是如果我们仅仅使用分离公理模式,不添加其他公理,这样是不够的。这是因为分离公理模式
\forall p_1,p_2,...,p_n\forall A\exists B\forall x(x\in B\leftrightarrow [x\in A \wedge \psi(x,p_1,p_2,...,p_n)])
只允许我们从一个已有集合中分离出一个满足某个命题函项的子集。这不足以让我们在新的理论中重新推导出集合论中的那些有意义的结果(事实上没有其他一起添加的公理,新的理论将寸步难行)。而在朴素集合论中,其他的那些有关特定集合存在的公理都是没有必要的,因为概括公理模式 AS_C 已经足够了。
可以说, 将概括公理模式弱化为分离公理模式,添加新的公理,完全是语法上的考虑 (即我们需要推导出一些有意义的结果),而不是语义上的考虑(因为这在公理化前后都是相同的直觉。严格上说我们对集合的直觉会因此被改变,但是在作出这种修改时的动机,仅仅是为了尽可能保持原来的直觉的同时避免矛盾)。
*无穷公理虽然在语义上是有争议的(对实无穷的争议),但是公理化中加入这条也是语法的考量,和实无穷的争议是无关的。
**至于替代公理模式也是可以由概括公理得到的,公理化后单独列出也是为了得到有意义结果的语法考量,事实上在公理化前后的集合直觉上并没有改变。

由于我们改变了集合论的公理集,新的集合论不再能够证明罗素悖论中的集合 A 是存在的,因而理论中便不再存在罗素所指出的矛盾。而罗素悖论后续的论证,在新的理论中便成为了集合 A 不存在的证明(反证法)。至此罗素悖论就被解决了。

而正规公理看似规定了任意集合不得属于自己,但是这和罗素悖论的解决是没有直接关系的。
从语法上看,因为 \Sigma\vdash\phi\wedge (\neg\phi) ,则必然有 \Sigma\cup \{Ragularity\}\vdash\phi\wedge (\neg\phi) 。只要理论依然能证明集合 A 的存在,则矛盾总是存在的,加入正规公理最多不过能改变矛盾产生的论证。
从语义上看,原本不能被满足的理论,添加新的公理只能“更加”不能被满足。
正规公理和普通的公理一样,都是来源于我们对集合的直觉感受,这种感受带来的对理论模型的限制,比单单解决罗素悖论要强的多。因此,凡是用正规公理来解释罗素悖论的,不说是理解有误,至少也是步子迈的太大。比如这个问答: 据说罗素悖论有解,如何解? - 知乎用户的回答 至于同一个问题下别的回答对此的质疑,更加不在要点上。

从语法的角度来考察罗素悖论的解决,可以说是对一个理论进行公理化最自然的结果。
罗素悖论的解决过程可以这样理解:先是我们建立了朴素集合论,证明了很多我们感兴趣的命题。接着发现这个理论不自洽。然后我们试图建立一个新的理论,尽可能覆盖原来我们有的那些命题,同时避免矛盾。也是只有在这种意义上,我们说我们的直觉没有被改变,即 我们并不希望原来在朴素集合论中得到的有意义结果会因此改变
因此这更多的是一种语法的考量,而不是语义的考量(当然准确的语义模型和直觉又可能是不同的)。
而以罗素悖论为代表的一众朴素集合论可以导出的结果,则不是我们想要的结果,不是一个我们要的有意义的结果,因此公理化后这个命题自然被抛弃了(虽然事实上就是为了避免导出这个命题)。

事实上,罗素悖论其实也指出了我们依靠朴素的集合直觉建立的集合论,是不自洽的,进而间接说明了我们的直觉是存在矛盾的。而公理化后的集合论所对应的直觉,则必然是和朴素集合论对应的直觉是不同的。这显然已经不属于建立理论时的语法考量了,我也不再赘述。

***还有一种广泛的说法,说罗素悖论是由于自指的定义产生的,特别是把罗素悖论和理发师悖论联系在一起时。我的建议是:自指是个大锅,什么都能往里扔。事实上罗素悖论的解决并没有严格地禁止集合论中出现自指的定义。关于严格禁止自指的数学,又是另一个巨大的话题了。当然从某种意义上说,这种讨论没有特别大的意义(有道理的废话)。


****罗素悖论的解决现在看来是非常平庸的工作,而这个专栏起初也不是为了讲这些琐碎的小事而建立的。我想接下来应该可以好好谈点我想说的私货了。

编辑于 2015-12-15 14:53

文章被以下专栏收录