念一叨

为 Russell 悖论的辩护

十九世纪,Georg Cantor 创立了集合论。 当时的集合论还很朴素,它说:任何一条性质可以确定一个集合,使其中元素为所有满足该性质的对象。 这后来被称为万有公理。

二十世纪初,Bertrand Russell 针对万有公理提出这样一条悖论:

设集合 $R$ 为所有不包含自己的集合组成的集合,那么 $R$ 包含它自己吗?

容易看出,不管 $R$ 是否属于它自己,都会导致矛盾。 这使得朴素集合论流产。

为了补救这个缺陷,后世的数学家们提出了 ZFC 公理体系,通过限制构造集合的方法来将那些病态的构造开除集合籍。 其中,正则公理把集合按照层数分级:空集是 $0$ 级集合,元素级别最大为 $n$ 的集合是 $n+1$ 级集合;集合的包含关系必须递降。 这样,Russell 悖论里构造出来的 $R$ 就不成立了,因为像 $A:={{A}}$ 这种隔几层递归嵌套的对象按定义属于 $R$,但在 ZFC 里并不合法。

不过,与 ZFC 的做法相悖,我的态度是:我们无法也不需要有意规避病态构造。 就像哥德尔不完备定理指出的那样,包含一阶谓词语言的构造方法,总存在不知其相容性的构造,除非我们只接受相当简单的一部分构造。 在我看来,这无异于为了安全而阉割掉了一大片集合之海、为了不被车撞而一辈子不出门。

不要有意规避病态构造

现在让我们来看看万有公理实际上是在说什么。

「任何一条性质可以确定一个集合」,这其实是在说 $\forall P\,\exists S\,\forall x(x\in S\Leftrightarrow P(x))$。 这里的性质 $P$ 是一个对象到布尔值的映射,其自变量可以取任何数学对象(因为在集合论的世界里,任何对象都可以用集合来表示)。 当 Russell 提出他的悖论时,万有公理做出了以此性质构造的集合 $R$ 存在的担保,故而引出悖论。

但是请注意,当我们说令某变量为符合某条件的对象时,我们通常假定这样的对象存在,或者我们要手动检验它们的存在性,否则可能会导致谬误。 考虑下面的论证过程:

$0$ 是最大的非负数。

证明:令 $n$ 为最大的非负数。 假设 $n\neq 0$,则 $n>0$,$2n>n$,与 $n$ 的最大性矛盾,故 $n=0$。

这个论证假设 $n\neq 0$ 为最大的非负数,然后得出矛盾,但它却没有注意到根本不存在最大的非负数。 因此,以「最大的非负数」为假设得到的归谬论证,是无效的。

万有公理与上面的做法反其道而行之,它不但不验证构造出来的集合的相容性,反倒直接担保其存在性,这是完全不合理的。 因此,万有公理确实应该被摒弃。 但是,这并不代表一定要用阉割式的手段去规避病态的构造。 当我们被要求在 $\mathbb R$ 中寻找大于 $1$ 而小于 $0$ 的数时,我们说这样的数不存在,而不说实数系是有漏洞的; 那么为什么在我们被要求在集合之海中寻找 Russell 悖论中的病态集合时,却要将后果怪罪于其背后的集合论框架呢? 遇病即割,这与数学世界中通常的做法不一致,也不合常理。 对待 Russell 悖论,我的态度是:废除万有公理,不否认其构造的合法性,但也不承认其存在性。 事实上,Russell 的论证恰恰构成了其构造存在性的一个证伪。

开放构造后,我们能得到什么

促使我写出这篇辩护的动机是:我很想允许泛集的存在,以及真的很讨厌真类的异化

在 ZFC 中,因为有 Cantor 定理,泛集被证明不可能存在。 这是因为 ZFC 中存在良序定理,它使得任何集合都可以指定一个基数,这样两个集合之间总是能比较大小(势)的。 Cantor 定理的证明依赖于良序定理:

给定任意集合,其元素与其幂集(原集合的全部子集)之元素间不存在双射(即其二者不等势)。

证明:使用归谬法,假设集合 $S$ 之元素与其幂集 $\mathrm{pow}(S):={X:X\subseteq S}$ 之元素间存在双射 $f:S\leftrightarrow\mathrm{pow}(S)$。 由于幂集中的元素都是原集合中的元素组成的集合,因此对于任意 $s:s\in S$,$s$ 要么属于 $f(s)$,要么不属于 $f(s)$。 现在令 $T:={x:x\in S\land x\notin f(x)}$,即,$T$ 中元素为所有 $S$ 中不在自己经 $f$ 映射后的像中的元素。 易知 $T$ 是 $S$ 的子集,故 $T\in\mathrm{pow}(S)$;又因为 $f$ 是双射,因此必然存在 $s_0:s_0\in S$ 使得 $f(s_0)=T$。 现在,我们询问 $s_0$ 是否在 $T$ 里。将 $s_0$ 代入 $T$ 的定义,有:$s_0\in T\ \Leftrightarrow\ s_0\in S\land s_0\notin f(s_0)\ \Leftrightarrow\ s_0\notin T$,矛盾。 于是命题得证。

更进一步地,可以得到如下引理:

任意集合的幂集的势严格大于其自身。

由于对于任意原集合中元素 $s:s\in S$,有 ${s}\in\mathrm{pow}(S)$,因此 $\mathrm{pow}(S)$ 至少与 $S$ 等势,即 $\mathrm{card}(\mathrm{pow}(S))\geq\mathrm{card}(S)$; 再结合 Cantor 定理的结论和势的三歧性,即可得证。

有了这个引理后,就可以证明泛集不存在了:

假设泛集存在,即 $\exists U\,\forall x(x\in U)$,那么根据良序定理和Von Neumann 指派,一定有一个与之等势的基数 $\mathrm{card}(U)$。 现在,考察泛集的幂集 $\mathrm{pow}(U)$,根据泛集的定义,其幂集中的元素一定都属于泛集本身,因此,$\mathrm{card}(\mathrm{pow}(U))\leq\mathrm{card}(U)$。 这与上面的引理矛盾,故而不存在泛集。

现在不承认 ZFC 后,能够通过嘴硬任何方法来使得泛集有一丝存在的可能性吗?

当然可以。 注意到泛集存在性的证伪过程中使用了良序定理和 Von Neumann 指派,而这两者都依赖于 ZFC 成立。 现在既然放弃了 ZFC,这两者自然也就不成立了。 证伪泛集存在性的论述就像 Russell 悖论的论述一样,反而成为了一个重要的证明:不是所有集合都可以指派基数。 从这一点上看,基数就像测度一样:不是所有实数集都可测,类似地,不是所有集合都可赋基。 比起泛集的缺失以及真类的异化,我认为基数的不完备性是一个更能让人接受的选项。

有人可能会这样指责:可是你牺牲的是一整套基数诶!这代价难道不是更大吗? 其实不然,良序定理只是确保了任意集合都可以指派基数,这有点类似于选择公理,意指那些非人构造的集合。 对于几乎所有人工构造出来的集合,因为我们能够直接证明它与某个基数等势,就完全不需要依赖 Von Neumann 指派来确保其基数的存在性了(构造性证明总比非构造性证明令人安心)。 所以,放轻松,${a,b,c}$ 的基数还是 $3$,$\mathbb R$ 的基数还是 $\aleph_1$,一切安好。