集合论和逻辑推理 (II) - 集合论与第三次危机
前文介绍了数学经历的两次危机,在前两次危机的余震还没能彻底平息之前,第三次危机又再次来到,这次危机不同于前两次,它更加颠覆人类的逻辑直觉。
01
—
基础的集合论
比较系统的集合论理论虽然直到十九世纪才由康托尔等数学家完成,但集合的概念,和用集合思考则可以追溯到古希腊时代。
集合论从某种程度上可以说是基础中的基础,数学的两大基本支柱,一个是数的定义,另一个是逻辑公理,而这两项都可以由集合构建出来,所以集合论是基础中的基础。虽然撇开集合论,人们同样可以定义数和逻辑公理,然而当人们试图对一些抽象概念进行解释时,集合论则是最为直观便利的工具。
基础的集合论非常简单,相信大家都已经熟悉,在这里我只是快速回顾几个术语帮助帮助阅读。
集合论中有两个重要概念,第一个是集合,第二个是集合中的成员(也称为元素)。比如科学家是一个集合,牛顿是这个集合中的一位成员。集合与集合可以做不同运算,最常见的是交集。比如科学家是一个集合,哲学家也是一个集合,两者的交集也是一个集合,里面的成员同时是哲学家,也是科学家。
两个集合的关系可能是包含关系,被包含的集合称为子集。比如科学家是一个集合,物理学家是另一个集合,因为所有的物理学家都是科学家,所以物理学家是科学家的一个子集。一个集合本身就是自己的子集,但这属于“假”子集。只有当原先集合中有成员不属于子集时,这个子集称为真子集。因为我们知道达尔文是生物学家,也是科学家,但他不是物理学家,所以我们知道物理学家是科学家的真子集。
最后再介绍一个概念,我们就离开这种枯燥的数学定义。如果一个集合里面没有任何成员,那么这个集合就被称为空集。比如我们把古希腊哲学家当作一个集合,文艺复兴以后的哲学家当作另外一个集合。那么这两个集合的交集就是空集,因为古希腊时代的哲学家们到文艺复兴时期早都全部过世了。
(集合论,数学和逻辑的基础)
02
—
集合论与逻辑
学习一门语言首先要学习语法(grammar),其次要学习语义(sematics)。语法用来检验一个句子是不是病句。而语义则用来解释一句话到底是什么意思。逻辑也是如此,不过逻辑学家普遍用句法(syntax)来代替语法,但含义差不多。
逻辑有很多种,最常见的有命题逻辑(propositional logic),一阶逻辑(first order logic)等等。比如经常听到的逻辑推理的范例:大前提,小前提,结论就属于一阶逻辑。
然而逻辑给出的只是一些句子,比如:所有人都会死,苏格拉底是个人,所以苏格拉底会死。这是三个句子,按照逻辑句法,它们是正确的,但句法并不解释意思,这些句子的意思如何解释呢?这就需要逻辑的语义。
逻辑语义最自然的方法是用集合来表达。第一句“所有人都会死”。这句的语义是人组成一个集合,这个集合的每一个成员都有“会死”这个属性。
第二句“苏格拉底是个人”的语义是苏格拉底是人这个集合中的一个成员。
第三句“苏格拉底会死”的语义是苏格拉底有“会死”这个属性。
虽然逻辑用集合表示语义似乎并没有给出比直觉想象更多的内容,但它却把所有概念都精确地定义了。为了表明这种方法的实用性,我们用它来解析一下“白马非马”这个著名的逻辑悖论。
(逻辑,让认识从地面走向天空)
03
—
白马非马
“白马非马”是战国时期的哲学家公孙龙提出的一个逻辑悖论。他的主要论据是马是一种动物,白是一种颜色。现在我们把颜色和动物混在一起,其结果当然不能等同于动物,所以白马不是马。
有人反驳,如果说白马不是马,那么同理黑马也不是马,黄马也不是马,只有无色的马才是马,而世上没有无色的马,那么世上就没有马了。
公孙回答,如果白马是马,黄马也是马,那么白马就是黄马,这个显然不对,所以白马不是马。
公孙的辩论是一种诡辩,他利用自然语言的多义性,在辩论过程中巧妙地偷换概念从而导致矛盾。如果我们用集合来表达这些概念,就不会产生这种歧义,也自然不会造成这种悖论。
首先马是一个集合,白也是一个集合,表示所有白色的物体,而白马则是这两个集合的交集。根据集合论理论,一个集合和其他集合的交集都是自己的子集,所以白马是马的一个子集。这样一个成员属于白马,那么自然也属于马,所以白马是马。
但公孙所说的白马非马是指这两个集合并不相等,这也是正确的,因为除了白马外,还有其他颜色的马,所以白马是马的一个真子集。然而两个集合不相等不能排除一个集合是另一个集合的真子集,所以白马非马不能表明白马是马是一个错误命题。
公孙的第二个论据说“如果白马是马,黄马也是马,那么白马就是黄马了”更是错误。因为说“白马是马,黄马也是马”只是表明白马和黄马都是马的子集,但不能推出这两个集合之间有什么关系。这里公孙把“是”(表示子集的概念)和“等于”(表示相同集合的概念)混为一谈,所以导出错误结论。
(只依靠自然语言,一个如此简单的逻辑错误可以把人搅糊涂)
04
—
罗素悖论
引发第三次数学危机的是罗素悖论。前面已经介绍,集合论是数学中基础下的基础。因为数学大厦的两大根基一个是数,另一个就是逻辑。
上面已经讲到,逻辑需要集合来解释语义,我们后面还会介绍如何用集合来构造自然数。喜爱老庄哲学的人会喜欢这一点,因为它用严格的数学语言表达如何从“无”生成1,再从1生成2,再生成3。。。
然而罗素悖论却指出集合概念本身存在潜在矛盾。如果集合本身就是矛盾的,那么如何保证建立在上面的数学大厦得以稳固?
所以当罗素把他的悖论寄给数学家弗雷格时,这个数学家大为震惊。他花费12年时间编写的著作《算术的基本法则》就要完工的时候,突然发现整个地基居然不稳,整个大厦摇摇欲坠,再没有什么比这更让人沮丧的了。
罗素悖论的数学表达:A={X| X∉ A },那么X∈A是否成立?这里A是一个集合,这个集合是由所有不属于这个集合的成员构成的。显然如果我们说X∈A,那么不符合成为这个集合成员的条件,所以X∉ A ,但如果X∉ A,它又符合成为A成员的条件,所以X∈A。这样就陷入了无限循环,无法给出结论。
如果看不懂数学符号,罗素悖论还有一个通俗表达:一个理发师,他要给所有村子里不自己给自己理发的人理发,并且只给这种人理发,那么他要不要给自己理发。很显然无论他选择给自己理发,或者不给自己理发,都会陷入矛盾之中。
罗素悖论还有一个更简单也更常见的表达法,就是我说“我错了”。当我说“我错了”的时候,我到底是错还是对。如果说我错,那么我说“我错了”就是对的。如果说我对,那么我说“我错了”就是错,总之都无法自圆其说。
这个矛盾如此尖锐,让人不得不深思集合定义本身的合理性。后来的结论是康托尔所建立的集合论是基于经验直觉上建立起来的朴素集合论(naive set theory)。这种集合论虽然符合我们日常绝大部分经验,简单实用,但却有严重的缺陷,因为它并没限制构造集合的方法,所以必然会导致悖论,解决办法是找到更加严谨的集合论。 下一集我们将介绍公理化集合论。
(罗素悖论的根本问题在于自我引用)
推荐阅读: