在越过无穷这座山丘之前,让我们先休息一会,也顺便热热身,来聊一聊前人的一次伟大但失败的登山尝试。虽然先前的登山者没有越过它,但却留下了宝贵的经验与财富,让我们这些后来者得以沿着他们踩出的路继续前行。这位登山先驱的名字叫康托尔(Cantor),他为登山所创立的理论如今称为 朴素集合论 (naive set theory)。
顾名思义,一来这个理论通过所谓“集合”来把握无穷,二来这个理论是“朴素”的。于是,我们先来聊聊“集合”是什么,再来看其为何朴素。如果你有高中数学的基础,那将会发现本节并没啥新鲜的东西 。
概念3.2 集合 (set)是若干不同对象组成的无序整体。
如果经过第2章的熏陶,上面的概念你读来非常不舒服,那就太好了。显然如此这般的定义充满了模糊,什么叫“整体”、什么叫“对象”、什么叫“无序”、什么又叫“组成”?但不要担心,我们很快就将在严格的形式基础上毫无歧义地定义集合,在这里我们先凭借咱们天然的理解能力,在“康托尔创造的乐园里 ”闲庭漫步游览一番。
概念3.3 令 A 为一个集合。若 a 是 A 的组成对象之一,我们称 a 是 A 的一个 元素 (element),记做 a ∈ A 。若 x 不是 A 的元素,我们记 x A 。
让我们来看几个集合的例子:
·
·
·
·
我们用花括号来表示一个集合。定义一个集合的方式有两种,一种是将其元素一个一个列出来,比如 A 。这个方式虽然直截了当,但也有一个问题,即它只能表达元素个数有限的集合。
概念3.4 令 A 是一个集合,若其只有有限个元素,我们便称其是一个 有限集 (finite set),并将其元素个数记为| A |。否则称其为 无限集 (infinite set)。
另一种定义集合的方式是通过描述集合中元素所具有的性质来确定该集合,比如 B 就是由全体男人构成的集合, C 就是由全体偶数构成的集合。这种方式最大的优势在于,可以通过有限来表示无穷!描述性质的汉字肯定是有限多个,但是其所刻画的对象却可以无穷无尽!上面的例子中, B 依旧是一个有限集——全世界的男人再多,但终究是有限个,但 C 可就是一个实打实的无限集了,它由无穷多个偶数构成。
最后我们再来看 D ,存在能被二整除的奇数吗?如果我们按照常识来理解“被二整除”与“奇数”,那么立马会发现,这样的数是不存在的,进而 D 根本不含有任何元素!
概念3.5
我们称不含任何元素的集合为
空集
(empty set),并以符号
Ø
记之。
概念3.2的字虽然不多,但还是有三个词需要强调一下。第一个词是“若干”,零个、一个、五个、无穷个都叫若干,这一点已经由上述有限集、无限集和空集阐明了。另一个词是“不同”,集合的组成对象必须是彼此不同的,或者说相同的对象会被视为一个。比如考虑{1,1,2,2,3},即使不说它不是一个集合,我们也说它其实就是{1,2,3}。最后一个需要强调的词是“无序”。我们在书写时不得不按照一个顺序写下集合中的元素(比如上面例子中的 A ),但是这个顺序是无所谓的,{1,2,3}和{3,1,2}是同样的集合。
对于一个集合,我们可以通过其元素构成新的集合。
概念3.6 令 A 为一个集合。若集合 B 的所有元素都是 A 的元素,我们称 B 是 A 的一个 子集 (subset),记做 B ⊂ A 。若 A 中存在元素不属于 B ,那么称 B 是 A 的 真子集 (proper subset),记为 B ⊊ A 。
举个例子,如果 A ={1,2,3},那么{1,2,3 }⊂ A ,{1,2 }⊊ A 。
概念3.7 令 A 为一个集合。 A 的所有子集全体构成一个新的集合,称作 A 的 幂集 (power set),记做2 A :={ X | X ⊂ A }。
还以之前的集合 A 为例,我们有
2 A = {Ø ,{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}}
它是一个集合的集合,一共有8个元素,每个元素是 A 的一个子集。你可能会好奇为什么要用记号2 A 。其实原因很简单,假如 A 是一个有限集且有 n 个元素,不难发现它的幂集有2 n 个元素。
对于两个集合,我们还可以谈论它们之间的关系。
概念3.8 令 A,B 为两个集合。
· 二者的公共元素构成一个新的集合,称为它们的 交集 (intersection),记为
A ∩ B :={ x | x ∈ A 且 x ∈ B }
· 二者的全部元素构成一个新的集合,称为它们的 并集 (union),记为
A ∪ B :={ x | x ∈ A 或 x ∈ B }
· A 独有的元素叫做它关于 B 的 补集 (complement),记为
举个例子,比如 A ={1,2,3} ,B ={2,4},那么
· A ∩ B ={2}
· A ∪ B ={1,2,3,4}
· A \ B ={1,3}
另外,如果我们想把很多个集合 A 1 ,A 2 ,… ,A n 交起来 ,除了写成
A 1 ∩ A 2 ∩…∩ A n
往往还会精炼地写成
这在表达无穷个集合取交集时尤其方便。最一般的,我们用记号
来表示满足某性质的所有集合的交集。
至此,我们便介绍完了朴素集合论中最基本的概念与记号。你可能要问,然后呢?为什么呢?意义何在呢?不难看出,朴素集合论绝不是第2章意义下的形式语言,它无非就是自然语言的 符号化 ,发明了一些符号用以代表自然语言的描述,使得我们可以用更加简洁精炼的公式进行表达与演算。诚然,这已经是一项了不起的成就了——如果你看看《九章算术》中描述的解题过程与现在机械化的方程求解步骤,便会意识到符号化的巨大价值。但康托尔的贡献不止于此,朴素集合论的核心在于它为数学提供了一种语言,虽然并非形式语言,但也强大到足以让我们把握无穷——通过有穷的办法。但我们也将看到,正是因为它毫无边界地强大,最终摧毁了自己的根基。这一切的核心蕴藏在之前提到过的那条看上去并不起眼的构造集合的方法之中:通过描述其元素的性质来构造集合。方法论上,我们称之为 普遍概括原则 :
原则3.9 ( 普遍概括原则 Principle of Universal Comprehension) 给定一个关于性质的描述 P ,我们可以基于此定义一个集合 A ,其元素为所有满足该性质的对象 [1] :
A ={ x | P ( x )}
看起来再自然合理不过了,不是吗?显然,若想要构建一个无穷集,我们不可能一个一个地罗列元素。普遍概括原则的强大之处便在于它使得我们得以用有限的字符来 概括 无限个对象!“所有三角形”寥寥五个字,天下无穷无尽的三角形尽入吾彀中!得益于此,在进行推理前我们都会先明确研究对象的性质,利用集合来框定推理的边界,这也正是洞察2.8所表达的精神。比如下面这些,都是基于普遍概括原则构造的集合:
·
·
·
看上去没啥问题吧,让我们来仔细看看这三个例子,关注的重点是 它们与自身的关系 。 A 的元素是1,2,3,4,5这样的数,但 A 自己是一个数的集合,显然 A 的元素与 A 本身是八竿子打不着的。 B 就不同了, B 的元素可是集合了——是那些元素个数少于三个的集合。世界上有多少元素个数少于三个的集合呢?无穷无尽吧,我随手就能写下四个:{1},{2},{3},{4}。于是乎, B 的元素至少有四个,所以 B 并不是自己本身的元素:
是不是感觉有点不对劲了?再来看看 C ,它的元素也是集合——是那些非空的集合。世界上有非空的集合吗?当然有咯!所以 C 是空集吗?当然不是咯!于是, C 是自己的元素:
C ∈ C
这里就蕴藏着大问题了!如果你曾经在洗澡的时候琢磨过“我在说谎”这句话 ,那应该能体会到如下我自己的感悟:
洞察3.10 悖论常源于自指。
当然,至此并没发生什么, C ∈ C 没啥问题,但准备工作已经就绪了。我们发现,基于朴素集合论的体系以及普遍概括原则,我们可以谈论一个集合是否属于自身。于是,下面这个集合的定义是毫无问题的:
R ={ x | x 是一个不属于自身的集合}
翻译成符号也即
现在我要问: R 属于自身吗?我们来看一看。如果 R 不属于自身,那么按其元素的性质, R 应该是 R 中的元素;如果 R 属于自身,那么同样按照其元素的性质, R 应是一个不属于自身的集合。横竖都不是,这正是“我在说谎”的翻版啊!其实,这里的 R 正是著名的罗素悖论的符号表示,它的通俗版是这么说的:
悖论3.11 ( 罗素悖论 Russell’s Paradox) 村子里有一个理发师,他只为不给自己理发的人理发。那请问,他应该给自己理发吗?
说实话,这条悖论今天看来似乎也不过尔尔,是问题,但也不至于地震。但是在当年就不同了,那可是各路英雄豪杰正在雄心勃勃地建模人类理性的年代。1902年,当德国数学家弗雷格(Frege)历经十载写成的《算术原理》 第二卷即将付梓之际,他收到了罗素的来信。信中罗素告诉他,自己在他书中构建的体系内构造出了矛盾,即罗素悖论。弗雷格尝试对自己的体系进行修复,但并未成功。最终,第二卷《算术原理》如期出版,但是他补充了一个附录,介绍了罗素悖论,并不无悲伤地写下了下面这句话 :
令一名学者最为痛心的事莫过于在其理论大厦完工时,它的一块地基动摇了。
从此,弗雷格结束了自己一手创立的数理逻辑研究,原本计划的《算术原理》第三卷从未出版,他再也没有发表过任何有价值的成果,拒绝了各种大学讨论会与学术论坛的邀请,郁郁寡欢,直至终老。
历史自然不是一帆风顺的,登山也并非一片坦途。罗素悖论一方面摧毁了弗雷格建立的体系,但另一方面也为人们提供了关于人类心智更深刻的理解。不难发现,症结的根源在于普遍概括原则毫不限制选取对象的边界,一切人类的想象力所及与不及之处的任何事物,都能被一句短短几个字的描述轻松纳入所构建的集合之中。平时无伤大雅,但若这个性质涉指了自身,那么如“我在说谎”般的悖论便无可避免。于是,为了消除悖论与矛盾,我们必须为普遍概括原则加上边界,是为 受限概括原则 :
原则3.12 ( 受限概括原则 Principle of Restricted Comprehension) 给定一个集合 Σ 以及一个关于性质的描述 P ,我们可以基于此定义一个集合 A ,其元素为 Σ 中所有满足该性质的元素:
A ={ x | x ∈ Σ 且 P ( x )}
可以看到它与普遍概括原则3.9唯一的区别在于,我们再也不能天马行空地选取对象了,一切用以构造集合的对象必须来源于一个已事先明确的全集 Σ !我们的想象力必须被加上边界!为了强调这一点,我们一般将这个全集写在竖线的前面:
A ={ x ∈ Σ | P ( x )}
我们在朴素集合论的短暂停留至此便告一段落。弗雷格与罗素同时期及后来的数学家们沿着他们的足迹继续前行,终于将被动摇的地基重新加固。其坚不可破,牢不可摧,至今仍支撑着早已高耸入云的数学大厦。让我们收拾行囊,离开朴素集合论的泥沼,踏上 公理化集合论 为我们铺平的康庄大道,将本章所提到的所有概念、记号与原则,建立在一个严密坚实的形式系统之上!