数学的大厦(一):集合与顺序
我们现在在教科书和数学课程中学到的集合论,几乎无一例外,都是在解决了罗素悖论之后建立起来的公理集合论体系,最常见的就是 ZF(策梅洛-弗兰克尔)或 ZFC(策梅洛-弗兰克尔-选择公理)系统:
1. 朴素集合论:就像最初人们觉得“有一块地,就能在上面盖任何想要的房子”。直观、自由,但结果盖出了会倒塌的“罗素悖论”之房。
2. 公理集合论(ZFC): 在吸取教训后,人们为盖房子建立了严格的公理。
外延公理:规定了两个集合何时相等。
分离公理模式:这是解决罗素悖论的关键!它规定你不能随便找一堆有共同性质的东西就声称它是一个集合。你只能从一个已经存在的、已知的集合中,分离出具有某种性质的元素来形成一个新的集合。这就直接禁止了“所有集合的集合”这种危险品,自然也禁止了罗素集合 R 的构造。
正则公理:禁止了集合“属于自己”这种危险的自我指涉结构,保证了每个集合都可以在某种“层级”下被构造出来。
所以,我们现在学习的集合论,是一个经过严格审查、逻辑上自洽,至少到目前为止没有发现矛盾的坚固体系。它保留了朴素集合论中所有有用且直观的部分,如并集、交集、函数、关系等,同时通过精密的公理系统,巧妙地规避了所有已知的悖论。
如何用纯粹的集合来定义“顺序”这个概念?比如,我们如何用集合来表示有序对 (苹果, 香蕉),并确保它不等于 (香蕉, 苹果) ?
数学家库拉托夫斯基(Kazimierz Kuratowski,1896年2月2日—1980年6月18日,波兰数学家)提出了一个绝妙而古怪的定义:有序对 (a, b) 可以定义为集合:{{a}, {a, b}}。
为什么这样定义?在这个集合里,元素 {a} 和 {a, b} 的地位是不同的。第一个元素 a 同时出现在了两个内层集合里。第二个元素 b 只出现在了一个内层集合里。通过判断哪个元素是“单独出现”的,哪个是“成对出现”的,我们就可以唯一地确定顺序。
所以,(苹果, 香蕉) 就是 {{苹果}, {苹果, 香蕉}},而 (香蕉, 苹果) 则是 {{香蕉}, {香蕉, 苹果}}。这是两个完全不同的集合!
这个定义虽然看起来像是一种“黑客行为”,但它完美地在集合论的框架下,用最基础的概念(集合、属于关系)构建了“顺序”这个更复杂的概念,为定义函数、关系等所有数学对象奠定了基础。
它真的有效!你可以用这个定义去检验:什么时候 (a, b) = (c, d)?只有当 {{a}, {a, b}} = {{c}, {c, d}} 的时候。而这要求 {a} = {c} 且 {a, b} = {c, d},从而严格地推导出 a = c 且 b = d。看,它完美地捕捉到了有序对的本质!
现在,你想在这个世界里创造“数”,比如自然数1, 2, 3...
你怎么定义“2”?你无法说“就是比1多1的那个”,因为“多1”你还没定义。你必须在游戏的初始规则下,只用“集合”来把它造出来。
冯·诺依曼提出了一个绝妙的定义:
0 = ∅ (空集)
1 = {∅} = {0} (一个包含空集的集合)
2 = {∅, {∅}} = {0, 1}
3 = {∅, {∅}, {∅, {∅}}} = {0, 1, 2}
...
看,每一个自然数,都被定义成了“包含所有比它小的自然数”的集合。在这个定义下,数字**本身**就天然地有了一个顺序:0 ∈ 1 ∈ 2 ∈ 3 ...
现在,轮到“有序对”了。我们想定义函数 f(x) = y。一个函数本质上是一系列输入和输出的配对 (x, y)。但关键是,(2, 4) 和 (4, 2) 必须是两个不同的东西。如果我们只用无序集合 {2, 4} 来表示,那么 {2, 4} = {4, 2},我们根本无法区分哪个是输入,哪个是输出,函数的概念就崩溃了。
所以,库拉托夫斯基那个“啰嗦”的定义 (a, b) = {{a}, {a, b}},就是为了在数学世界的“建设游戏”里,为“顺序”这个至关重要的概念,提供一个纯逻辑的、不依赖任何直觉的基石。有了它,我们才能严格地定义函数、关系、序列……最终,才能建立起整个分析学、代数等数学大厦。
彩蛋:这个定义完美地体现了“黑客精神”中的几个核心特质:利用现有系统的简单规则,通过巧妙乃至非常规的组合,实现一个看似超出系统原设计目的的全新功能。黑客从不强行改变规则,而是深刻地理解并巧妙地利用规则。
它优雅(Elegant),没有添加任何新的、额外的假设,仅用现有工具就解决了问题。它高效(Effective),完美地达成了目标,(a, b) 和 (b, a) 被严格区分。它出人意料(Unexpected),谁能想到,“顺序”这种基本概念,其本质可以还原为如此古怪的集合嵌套?它展现了深刻的洞察力(Insightful),这不是蛮力,是智慧。它看到了别人没看到的,在规则的夹缝中找到了出路。
