直观和逻辑

直观是绝对必要的。在考虑用人工智能进行数学推理的时候大家往往只注重逻辑,我想这是电脑还没学会数学的主要原因。我并不认为直观是人独有的能力。电脑也可以有直观,只要你好好编程。(不过这好象和数学没有什么关系。)

人的缺点是,往往会轻易相信自己的直观。当严密的逻辑推理导出了比如说关于无穷大的种种所谓“不可思议”的性质时,人们往往会怀疑逻辑出了问题——逻辑,这个行事绝不光明正大的诡辩家,不知道在什么地方偷偷做了什么手脚,然后就把人给骗了。比如说就在那个反证法里。——但这往往是不对的。如果你无法接受一个由严密的逻辑推理得到的结论,通常是因为你的直观出了毛病。比如说初学者往往把无穷大想象成“一个很大很大的数”,这在很多时候有效,但也会出很多毛病。而如果想象成“一个越来越大的数”,情况就会好的多。请发挥你的想象力。

数学的特征

说到数学,我总是喜欢举两个问题作为例子。

第一个问题是,一杯水和一杯酒,体积相同。舀一勺水到酒里,搅拌一下,再舀一勺(掺了水的)酒到水里。现在问是酒里的水多还是水里的酒多?
答案是一样多。不管一勺有多大,也不管有没有搅匀。这是因为这两杯东西在开始和最后的体积都是相同的,所以说有多少水跑到了酒里,就有多少酒跑到了水里去填补失去的水留下的空位。

第二个问题是,甲和乙分别从A和B出发相向而行。第一次相遇时甲走了40米,然后两人继续各自前进,走到对方的出发点后再折回,第二次相遇时甲离开B点20米。假定甲乙行走的速率不变,不考虑转身的时间。问两次相遇的地方相距多远?
答案是40米。这是因为从第一次相遇后到第二次相遇,甲和乙分别走的路程,是他们从开始到第一次相遇时所各自走的路程的两倍(从开始到第一次相遇,甲和乙一起把AB间的路覆盖了一次;而从第一次相遇到第二次相遇,甲和乙一起把AB间的路覆盖了两次)。所以特别地,从第一次相遇后到第二次相遇时甲又走了80米。而这时他离B点20米,所以显然第二次相遇点在第一次相遇点的靠近B点方向的40米处。

这两个问题的共同点是似乎都缺失了一些条件。在第一个问题中,我们不知道两杯液体的体积是多少,也不知道勺子的容积是多少,更不知道是否搅匀。我想这些都是我们在想象这个转移液体的过程时觉得需要知道的条件。同样,在第二个问题中我们不知道AB间的距离也不知道甲和乙的速率。在想象这个相遇过程时,我想这些应该是我们觉得首先要知道的东西吧。当然,你可以把你觉得应该知道的东西设成x、y之类,然后用我们强有力的代数手法去精密地分析各个量之间的关系,然后得出答案。但是得出答案并不等于真正的理解。接下来你要做的是在那一堆代数等式的迷团中,抓出之所以会有这个答案的本质上的原因,也就是上两段中我所叙述的。当然更好的情况是一下子就想到上两段那样的解答,根本不借助代数。总之,数学需要考虑的不是一个对象的一个过程,而是一对象的一过程,要在一堆虽然很不相同但到底有些类似的东西中抓到本质。这是数学得以区别于算术的所在。在前一篇文章讲等价关系的时候也提到过,数学中讨论的对象往往是抽象的等价类。我们作直观想象的时候只能把具体的对象浮现于脑际,这时你要么把等价的那些具体的对象同时浮想出来,要么时刻牢记,这个就是那个,白马和黑马都是马。当然,关于具体的东西的精密的分析手段也是绝对必要的,在复杂的问题上,几乎没有人能够一下子就抓住问题的本质。几乎所有重要的概念都是从关于一个个具体的例子的具体的知识储备中升华出来的,而有了这些概念以后那一个个的具体的例子往往都变成显然的了。就像上面的这两个问题,明白了以后会觉得这是多么浅显道理啊!这也是为什么每一代新生的数学家都能在短时间内掌握前辈们在几百年一千年的时间里储备下来的数学知识,而且在此基础上又有新的创造的原因。

数学的方法

在我看来,数学最根本的方法莫过于类比。用我们容易想象的、充分理解的东西去类比不那么容易理解的东西。这个过程分为几个方面。

首先对于我们很了解的东西,我们需要做的是抽出“这东西之所以成为这样的根本原因”,这就是公理化。把那许许多多性质之所以成立的根本原因归结于几条公理,然后在其他我们不甚了解的对象身上发现满足这几条公理的“结构”。举一个例子。我们很熟悉有理数。我们知道有理系数的多项式可以唯一地因式分解。然后我们抽出这其中的原因是因为有理数是一个“域”。后来我们发现,对于素数p,整数除以p的同余等价类也作成了一个域。而在这个域上,显然 1, 2, 3, … , p - 1(的等价类)都满足方程 xp -1 - 1 = 0。于是按照有理系数的多项式的类比,我们得出在这个域上有
xp - 1 - 1= ( x - 1 ) ( x - 2 ) … ( x - p + 1 )
比较左右两边的常数项,我们得出结论, ( p - 1 ) ! ( p - 1 的阶乘)与 -1 是除以 p 同余等价的。或者换种说法,当 p 是素数的时候, ( p - 1 ) ! + 1 被 p 整除。这就是著名的Wilson定理。也许你曾经见到过用初等数论的方法给出的这个定理的一个很有技巧性的证明,但在这里我们得到它只是用了一件显然的事和一个类比。

在上个世纪,公理化的工作是如此的成功以至于我们几乎把几千年来人类储蓄下的几乎所有数学知识都归结到了几种基本的“结构”上。现在,任何一个经过训练的数学专业的学生,无论他在应用中碰到什么问题,几乎都可以立刻把它归结到一个关于我们已知的某种结构的性质的问题上面来。

公理化完成之后,类比的方法再细分大概可以大致区别为两种:一曰“近似”,二曰“表现”。近似当然是“用离它很近的东西来类比它”,可以说整个数学分析领域贯穿的都是近似的思想。用有限近似无限,用线形近似非线性,用光滑近似不光滑。等等等等。表现,意思是“用我们容易理解的东西来表现我们不容易理解的东西”。(不可交换的)群是不容易理解的,所以有表现论研究怎样把群的元对应到我们比较容易理解的矩阵。连续的几何对象通常是不容易理解的,所以有代数拓扑把几何对象对应到我们比较容易掌握的加群。各种大大小小的同构、同态、同胚、同伦、同调、同位映射更是充斥了数学的各个角落,这些简单的说就是把一个对象保持它的某些结构不变地映射到另一个对象来考虑,或者说用另一个对象来“表现”这个对象。

我举两个例子。我个人认为这两个例子非常精彩,非常好地说明了什么叫做“把不容易理解的东西化成容易理解的东西”。

circles.GIF

第一个例子是这样的:一个大圆B套着一个小圆A。我们在A和B之间作圆,要求圆1和A、B相切,圆2和A、B、1相切,圆3和A、B、2相切,依此类推。(图一)这样一直作下去,假设绕了一圈之后回来,圆n正好和A、B、n-1都相切。问题是:假设我们在一开始的时候选择一个不同的位置作圆1(图中红色的圆1),然后依次作下去,这样在绕一圈回来之后最后的那个圆是否仍然能够正好和圆1相切?如果是,那A、B间圆的个数是否仍然正好等于n?
这两个问题的答案都是肯定的。很奇妙吧。但是对于一种特殊情形,A和B是同心圆的情况下,(图二)这件事完全是显然的。那我们有办法把图一的情形化到图二的情形吗?有。我们把平面看成是复数平面,考虑复平面上的一次变换 z |→ ( az + b ) / ( cz + d )。众所周知,这变换把圆映成圆,并且是保角的,所以当然保持相切关系不变。另一方面只要稍做计算就会知道,对于任意两个套着的圆,这变换总可以把它们映成是同心的。于是我们就借助这变换的力量,把奇妙的事化成了显然的事。眼睛一眨,老母鸡变鸭。

第二个例子。过圆外一点P,求作这个圆的切线。这个问题的解法大概在任何一种初中几何教科书里都会介绍,但这里描述的是一种(按照初中几何的标准来说)“非标准的”、只使用直尺就可以完成的作法。如图三,过P随便作两条直线交圆于A、B、C、D。AD与BC交于E,AC与BD交于F。然后连接EF交圆于R、S,则PR与PS就是圆的切线。
如果你多画几次,一定会感觉到这件事中间隐藏着什么重大的秘密。那些点神秘地排列在同一条直线上。我们有办法理解它吗?如果你知道一点射影几何,这件事就容易说明的多了。
假设点P是在无穷远的地方。这时过点P的所有直线是一组(朝着某一个方向的)平行线。于是我们看到这件事在一瞬间变得显然了。(图四)

用射影变换,我们可以把图三的情形化成图四的情形。射影变换把直线映成直线,交点映成交点。相切于一点既然是相交于两点的极限情形,射影变换当然也保持相切关系不变。另一方面射影变换虽然不一定把圆映成圆(一般地来说它把圆映成圆锥曲线),但在这个问题中,我们有办法既把点P映成无穷远点,又把那个圆仍然映成圆。(图五)
这样一来我们就又把一件神秘的事化成了一件显然的事。但是——我们真的理解了这些事了吗?诚然对于特殊情形来说它们简单得令人发笑;也诚然我们确实知道有变换把一般情形化成特殊情形;但是这变换岂不是很奇妙吗?现在神秘性从一般的情形转到了这个变换上。为什么会有这个变换?为什么就偏偏正好就在这件神秘的事上有这个神秘的变换呢?我只能说这两个变换并不是那么神秘。一个是复一维射影空间上的一次变换,一个是实二维射影空间上的一次变换,两者都是非常朴素、自然的东西。但是……确实这两件事着实可以让我们的直觉吃上一惊。而我想我们目前为止对这两件事所能作的最好的解释莫过于此了。我们总是用一件事去解释另几件事。——古人认为我们的世界是被驮在一只大乌龟的背上,至于大乌龟又站在什么上面就是另一回事了——如果你追求不懈,坚持要刨根问底,很容易就会陷入哲学的迷思。我想古希腊人就是这样被五个正多面体迷得神魂颠倒的——为什么正好是五个呢?柏拉图在《Timaios》中主张说,正四面体=火,正六面体=土,正八面体=空气,正二十面体=水,而关于正十二面体则记叙说:然而还有一个第五构成体的存在;这是神为了包含万物的目的,在上面画着各种各样的绘图时所使用的。(所以说古希腊人还是不够聪明。你看我们的老祖宗早就在说阴阳行了……)问题在于,你永远不可能从自己先天的直觉或上帝的启示(我们假定有这种东西)中得到问题的解答,因为先天的直觉本来就不完美,而上帝又是太完美了所以觉得根本没必要解释。能够美妙地解释已知事物的,只有新发现的事物。我们所能做的只有到广大的未知中去探索发现,或者偶尔回眸一瞥。物理学家们或许会渴望找到可以解释万物的终极理论,但是数学,为了追求更广的视角和更深的理解,永远不会停止。

用集合论的语言,一个关于集合 A1, A2, … , An 中的元的 n 项关系,定义为集合 A1 × A2 × … × An 的子集 R。对于 a1A1, a2A2, … , anAn,如果 ( a1, a2, … , an ) ∈R,我们就说 a1, a2, … , an满足关系 R

但是这定义其实也是怎么都好。一个关系,就是数学语言中的一个谓语,我们用它来构成一个句子或者说命题的主干部分。最为常见的关系,大概是要数表示相等的“等于”和表示大小的“大于”、“小于”了吧。几乎每一个数学系的学生都会首先学到这两种关系,或者更精确的说,这两种关系中的逻辑结构。

等价关系

如果一个二项关系~满足以下条件,我们就称其为等价关系:

  1. x ~ x
  2. 如果 x ~ y,则 y ~ x
  3. 如果 x ~ yy ~ z,则 x ~ z

相等当然是等价关系。对于任意一个对象 x,所有和 x 等价的对象的全体称为 x等价类。如果这是定义在某个集合 A 上的等价关系,那么等价类把 A 分成几个互不相交的子集。我们把每个等价类看作是一个单独的对象,由这些等价类为元组成的集合称为集合 A 的(关于 ~ 的)商集合

“明白了商集合,就是数学初段。”(XX语)这话很有道理。商集合体现了数学的一个重要特征,那就是一个对象的表示不一定是唯一的。比如说我定义如果两个自然数除以6的余数相同,就称它们同余。同余是一个等价关系。在这个等价关系下,我说“1”怎么怎么样和说“7”怎么怎么样是一个意思,因为我们已经把1和7看成是一样的东西了。我想每个小学生在听到“1 = 0.9999999…”的时候心灵都会受到一定的冲击。在我看来,这个时候对他们解释实数、极限之类,或者小数的分数表示之类,或者小数的加减法之类,都是没有说到点子上。在这件事上我们的心灵受到的冲击是来自于一种原始的直观我们认为在我们的十进制记数系统下每个数的表示都是唯一的,但其实不是的。在我看来正是这种不唯一性让我们感到焦虑不安。在那一瞬间我们开始怀疑自己本能的感觉:我们甚至不知道两个东西是不是相等。

在我上面举的两个例子中,情况还稍微有点不同。比如我们可以规定说,总是用0,1,2,3,4,5来表示除以6的6个同余等价类。我们遇到说7怎么怎么样的时候都自动的把7换成1。对于小数也是一样。我们遇到说0.2199999…怎么怎么样的时候都自动把它换成0.22。我想大多数的普通人都是这么处理的。但是在真正的数学中,这样的“规定”很多时候都不现实而且没有意义,甚至会让论证变的复杂。你要做的是习惯于面对“表示不是唯一的”这样的状况。这种状况的最典型的例子出现在要定义一个商集合到另一个集合的映射的时候。请不要把商集合单纯的理解成“等价类们的集合”,虽然我们确实是这么定义的。除非在很特殊的情况下,等价类通常都是抽象的虚无飘渺很难把握的概念。请把一个集合的商集合理解成,“还是那个集合,只不过把其中的一些元看成是一样的”。所以说一个集合 A 的商集合的元,通常写成 [ a ] 的形式,其中 a 是集合 A 的元而中括号 [ ] 提醒我们现在正在讨论的是另一种等价关系。在不至于引起误解的时候,甚至连中括号都省略。这样你该很容易明白了,要定义集合 A 的一个商集合到另一个集合B的映射,等于说是定义一个从 AB 的映射,满足“等价的两个元的像是相等的”这个条件。这个条件通常被称为well-defined,映射能够正当地被定义的意思。

等价类的一个元有时被称为这个等价类的代表元。如果从每个等价类中都选出一个代表元,这些代表元组成的集合被称为代表系。选取一个代表系的过程相当于上一段开头所说的“规定”的过程。

顺序关系

如果一个二项关系 ≤ 满足以下条件,我们就称其为偏序关系

  1. xx
  2. 如果 xyyx,则 x = y
  3. 如果 xyyz,则 xz

偏序关系是数的大小关系的类似,这种类似的唯一不足之处在于,偏序关系并不保证任意的两个元总可以比较大小。补上这个不足之后的关系称为全序关系

如果在某个集合上定义了一个偏序关系,我们有时会说这是一个偏序集合或这个集合具有偏序结构。有“结构”就有“保持结构不变的映射”。所以对于两个偏序集合 AB,一个从 AB保序映射 f 定义为从 AB 的满足以下条件的映射:
对于 A 中任意两个元 xy,如果 xy,则(在 B 中)有 f ( x ) ≤ f ( y )。

具有非全序的偏序结构的一个典型例子是一个集合 A 的幂集合 ℘ ( A ) ( A 的所有子集组成的集合)上由包含关系 ⊆ 定义的偏序关系。对于任意的映射 f: AB,我们可以定义 f: ℘ ( A ) → ℘ ( B ) 和 f-1: ℘ ( B ) → ℘ ( A ) 分别把 A 的子集 U 映到 f ( U ) 和把 B 的子集 V 映到 f-1 ( V )。(参看前一篇《映射》。)显然这两个映射都是保序映射。但是如果我们还另外在幂集合上考虑 ∩、 ∪ 两项运算,这运算在幂集合上定义了另一种结构(这结构有时叫做“布尔代数”,把布尔代数和包含关系放在一起考虑的结构则称为“lattice”),这时 f-1 仍然是保持这种结构不变的,但 f 就不是了。(仍然参看前一篇《映射》。) f: ℘ ( A ) → ℘ ( B ) 和 f-1: ℘ ( B ) → ℘ ( A ) 有时被称为是由 f: AB 诱导的映射,由于 f-1 是从 ℘ ( B ) 到 ℘ ( A ),所以称为反变,相应的 f 是从 ℘ ( A ) 到 ℘ ( B ) 所以称为共变。诱导、共变、反变云云,都是范畴论的概念,这里就不多说了。

对于一个定义了偏序关系的集合,显然在它的任意子集上也同样定义了偏序关系。这个子集上的偏序关系有时被说成是“子集继承的偏序结构”。如果一个子集继承的偏序结构在这个子集上正好是一个全序,则把这个子集叫做全序子集

我们说 a 是一个偏序集合中的极大元,如果这集合中再没有比 a 更大的元了。极小元也是同样地定义。极大/极小元可能不存在,也可能有好几个。但是显然当这顺序是全序的时候,极大/极小元如果存在就只有一个,称为最大/最小元

在公理化集合论的叙述中,集合 A 到集合 B 的映射被定义为集合 A × B 中满足下列条件的子集 F
“对于 A 中每一个元 a,都唯一存在一个 B 中的元 b,使得 ( a, b ) 是 F 中的元。”
但是这种技术上的定义怎么都好。所谓 AB 的映射就是说对于 A 中每一个元 a,都指定了 B 中的一个元 ba 对应。如果我们把映射记为 f: AB,那么这个对应通常写成 f ( a ) = b 或者 af = b(我们有时会想要把 f 写在 a 的右边,那么就是这样写)。这时我们说 ba 的(关于映射 f 的)。至于映射的技术上的定义的唯一用处,只是在于说明从 AB 的所有映射组成了一个集合。这个集合有时记为 BA

虽然我前面说过,数学中所要讨论的问题——命题,从本质上来说,就是关于某个元是否属于某个集合的问题;但这并不是说数学就是关于各种性质的集合和各种集合的性质的学科。数学,是关于结构和结构保持的映射的学科(MacLane语)。这话的意思是说映射是比集合更基本更重要的概念。说“数学的一切奥秘都隐藏在映射中”(我的话),这话我想一点也不为过。在我看来,数学的一切神秘力量都起因于我们对这个世界的真理的认识的先天的不平等性。我们对有些东西知道的多一些,有的少一些;大概在上帝看来费马大定理和 1 + 1 = 2 是一样显然的,但是在我们看来费马大定理一点也不显然。而数学所做的,一言以蔽之就是把不那么容易理解的东西,“保持它的某些结构不变”,“映射”到我们容易理解的东西上面。我们充分地理解容易理解的东西,然后通过这个映射,(因为它是保持了“某些结构”不变的,)来推测出不容易理解的东西的性质。可以说每发现这样一个映射,我们对这个世界的了解都切实地大大前进了一步。

至于什么是“结构”什么又叫做“保持结构不变”的映射,虽然这在Bourbaki里是有严格的定义的(本来“结构”的概念就是由Bourbaki提出来的;这和同时期法国的“结构主义”哲学究竟有还是没有关联,就不是我所知道的了),但是我们尽可以把结构直观地理解成“集合的元的相互之间的关系”,而说把这个集合映到那个集合的一个映射“保持结构不变”,意思自然是说如果在这个集合里的一些元满足一些关系,那么这些元被映射映到那个集合里去的“像”之间,也同样满足这些关系。

假设有映射 f: ABg: BC,我们显然可以定义一个映射 gf: AC,把任意元 aA 映到 g ( f ( a ) ) ∈C。这叫做映射的“合成”或者“乘法”。有时我们会希望把这乘法写成 fg 的样子,这时我们就说 fg 把任意元 aA 映到 ( af ) gC

命题。映射的合成满足结合律。也就是说假设有映射 f: ABg: BCh: CD,则 h ∘ ( g ∘ f ) = ( h ∘ g ) ∘ f

证明是显然的。这只是把一件显然的事用记号表达出来。逻辑推理虽然只是把一些显然的事连接起来,但是连接的多了就会累了。但是如果把推理变成记号的演算,就不显得那么累。这也算是“把不容易理解的东西化成容易理解的东西”的一例吧。

定义。假设有映射 f: AB,对于 A 的子集 U,把 f ( U ) ⊆ B 定义为 f ( U ) := { xB | ∃uU s.t. f ( u ) = x }。和对于 A 的元的说法一样,我们把 f ( U ) 也称为 U

如果你完全不明白这堆符号的意思,请看前一篇末尾处的记号表。这个定义直译过来就是说, f ( U ) 是由 B 中满足这样条件的元 x 所组成的集合:存在一个 U 中的元 u,使得 u 的像正好是 x。我们喜欢用这样的记号而不是用“把 U 的元通过映射 f 映到 B 得到的所有像的集合”这样的句子来表示,我觉得很大程度上是因为记号的笔画比较少,在黑板上写起来比较容易。但是在电脑上写起来就正好反过来了。不过为了让这文章“看起来像数学”,我还是喜欢时不时用记号。真的,对我们来说,记号更为明确而且通常比文字更易懂。只要在纸上写过几遍,我想你也一定马上会习惯的。

定义。假设有映射 f: AB,对于 B 的子集 V,把 f-1 ( V ) ⊆ A 定义为 f-1 ( V ) := { xA | f ( x ) ∈V }。我们把 f-1 ( V ) 称为 V原像或者逆像。直观说来就是, f-1 ( V ) 是 A 中所有被 f 映到 V 的元的集合。

命题。假设有映射 f: AB
对于 B 的子集 RS,我们有
f-1 ( RS ) = f-1 ( R ) ∪ f-1 ( S ),
f-1 ( RS ) = f-1 ( R ) ∩ f-1 ( S );
对于 A 的子集 PQ,我们有
f ( PQ ) = f ( P ) ∪ f ( Q ),
f ( PQ ) ⊆ f ( P ) ∩ f ( Q )。

证明是容易的。如果你从没有尝试过,请试着证明它。这个命题唯一不那么美好的部分是最后一条 f ( PQ ) ⊆ f ( P ) ∩ f ( Q ) 中的包含关系不能改成等于。这起因于 A 中两个不同的元的像可能会相等。从这个命题也可以看出一些端倪,一般来说,原像的性质常常比像的性质要好。

定义。对于映射 f: AB,如果 f ( A ) = B,则说 f 是一个全射;如果 A 中两个不同的元的像总是不同,则说 f 是一个单射。如果一个映射既是全射也是单射,则称之为全单射一一对应

虽然从定义中完全看不出来,但是在很多情况下全射的概念和单射的概念是有一定的对称性的。这从下面这个命题中可以看出一些迹象:

命题。假设有映射 f: AB。则
f 是单射的充分必要条件是:
对于任意两个映射 g1, g2: LA,只要 fg1 = fg2,就有 g1 = g2
f 是全射的充分必要条件是:
对于任意两个映射 h1, h2: BR,只要 h1f = h2f,就有 h1 = h2

这是一个从范畴论的观点来看的命题。范畴论是一门充分强调映射(或者更广泛的说,保持某种“结构”的映射)在数学中的基础地位的理论,它的口号是所有概念都用映射之间的相互关系(而不是元与集合之间或集合与集合之间的相互关系)来表达。现在大家都说范畴论是和集合论一样基础的理论。至于这个命题本身的证明是容易的。如果你没有试过,请尝试。(我还没有定义什么叫做两个映射相等,不过把两个映射相等理解成它们“把同样的元映到同样的像”,应该是没有任何异议的)

定义。对于任意集合 A,存在一个恒等映射 idA: AA,把每个元映到其自身。显然对于任意的映射 f: AB,我们有 f ∘ idA = idBf = f

这定义看起来似乎完全是没事找事。但是从范畴论的观点来看,我们与其说“一个集合 A”,还不如说“一个恒等映射 idA”。因此从强调映射的角度来看,这也不完全是吃饱了撑的。更重要的是我们需要恒等映射来定义同构的概念:

定义。我们说一个从 AB 的映射(或者更广泛的说,保持某种结构不变的映射) f 是一个同构,当且仅当存在一个从 BA 的(同样保持这种结构不变的)映射 g,满足 gf = idAfg = idB。这时我们把 g 叫做 f。显然逆如果存在,一定是唯一的。

一个从 AB 的(保持某种结构不变的)映射是一个同构,意味着我们把 A 的元对应到 B 中来讨论的对应过程中(仅就所保持的这种结构而言)没有任何信息的丢失或者增加。因此这当然是十分重要的概念。

同构当然是全单射。而仅就单纯的集合之间的映射而言,全单射显然也一定是一个同构(也就是说全单射一定有逆映射)。但是如果我们考虑了某种结构,一个保持这种结构的全单射是否是一个同构,就是另一个问题了。这是因为对于一个保持某种结构的全单射,虽然存在它的一个忽视结构的集合论意义上的逆,但这个逆是否一定也会保持这种结构,这和要考虑的结构有关。比如保持群结构的全单射一定是同构,但是保持偏序结构的全单射就不一定。

集合论之所以是数学的基础,不仅因为它提供了定义各种概念的框架,更因为它完全规定了数学所要讨论的问题的范围——一个“命题”,从本质上来说,就是关于某个元是否属于某个集合的问题。也就是说,从本质上来讲数学的语言里只有一个谓语“属于”,用来描述一个“对象”和一个“集合”的关系。在严密贯彻集合论的逻辑体系里,所谓的“对象”同样也是一个集合。但是通常可以把对象理解成“一个意义明确的东西或一些这种东西组成的集合”。比如说一个自然数 3 ,或者一个字母 x,或者两者的集合 { 3 , x },都算做一个对象。(在严密贯彻集合论的逻辑体系里,我们比如说是这么定义自然数的:上帝说,要有空集合。于是就有了空集合(空集公理)。我们把空集合定义为 0。把集合 { 0 } 定义为 1。把 { 0, 1 } 定义为 2。把 { 0, 1, 2 } 定义为 3。依此类推。上帝看着这是好的,于是把上面定义好的这些东西全体做成了一个集合(无限公理),取名为自然数。)

不管怎么样,我们有了谓语,只要再规定构造名词(集合)的方法,再加上各种连接词(逻辑),就大功告成了。只是为了避免由“不属于自身的所有集合组成的集合”(关于其是否属于自身)所造成的著名悖论,我们需要小心翼翼地规定什么样的东西才能算做集合。除了这一点,我们把集合理解成为“一些对象组成的集体”的直观,通常是没有问题的。我不打算描述这里面的各种逻辑和技术细节,只列出一些常用的定义集合的方法,顺便规定一些记号。

集合的定义方法。

  • { a, b, c }      列举。abc 组成的集合。
  • { xA | 命题 }      集合 A 中满足命题的所有元组成的子集。注意这里有 xAx 属于 A )的限制,这样就可以避免定义出“不属于自身的所有集合组成的集合”之类的东西。
  • ℘ ( A )      幂集合。集合 A 的所有子集组成的集合。
  • AB      非交和。把集合 A 的元和集合 B 的元合在一起看成是一个集合。A 的元与 B 的元总看成是不同的。
  • A × B      笛卡儿积。集合 A 的元 a 与集合 B 的元 b 构成的顺序对 ( a, b ) 全体组成的集合。
  • Aλ ( λΛ )      给集合 Λ 中的每一个元 λ 对应集合 Aλ 中的一个元,所有这样的对应全体组成的集合。如果 Λ = { 1, 2 },这就是 A1A2 的笛卡儿积。因此这可以看成是笛卡儿积的推广版。
  • Aλ ( λΛ )      非交和的推广版。由集合 Λ 中的一个元 λ 和集合 Aλ 中的一个元 aλ 组成的有序对 ( λ, aλ ) 全体所组成的集合。如果 Λ = { 1, 2 },这就是 A1A2 的非交和。
  • AB      集合 A 与集合 B 的合并。
  • AB      集合 A 与集合 B 的交集。
  • AB      集合 A 中不属于集合 B 的元全体组成的子集。

记号。

  • ∅      空集合。
  • xA      x 属于集合 A 。通常集合的元用小写字母 a, b, … ,集合用大写字母 A, B, … ,集合的集合用大写花体字母 A, B, … 来表示。
  • ⊂, ⊃      集合的包含关系。不包括相等。
  • ⊆, ⊇      集合的包含关系。包括相等。
  • A := B      这是“把 A 定义为 B ”的意思。
  • xA 命题      这是“集合 A 中任意一个元 x 都满足命题”的意思。记号 ∀ 是把“All”的首字母倒过来写。
  • xA s.t. 命题      这是“集合 A 中存在一个元 x 满足命题”的意思。记号∃是把“Exist”的首字母倒过来写。s.t. 是 such that 的缩略。(读做“there exists an x in A such that …”)

从前往后写,从后往前看。

这基本上是我的学习笔记。我的打算是从头开始慢慢写,(就像Bourbaki的前言所说)不假定任何预备知识,只需要稍有一些逻辑推理能力就可以看懂的东西。和Bourbaki不同的是,我想我会尽我所能的使用感性的语言。真的我时常会觉得有些失落。数学实在是太不普及了。虽然这是一门从小学起就开始教的课程。每当我张口想说群、环、体的时候都会记起,这居然是只有数学专业才教的词汇。(为什么不把它写进初中教科书呢!?)我不知道有多少人因为迷失在这些陌生的单词里而对数学退避三舍。很多介绍数学知识的文章都尽量避免使用专业词汇,这当然是一种普及的方式。但我想我既然开始了这样一个blog,那就有充分的空间来做准备,让那些抽象名词变得容易亲近起来。也许和许多人的理解相反,我们之所以使用那些奇异的词汇和陌生的语法,是因为这样才比较容易理解。数学家和律师是不同的。数学的目的是建立一种描述这个世界的精确、理性而且容易理解的语言,把人类创造性的灵感最为显著的表达出来。如果你是诗人、小说家或者恋爱中的少年,一定会切身的体会到,我们平常使用的语言是多么的贫乏、无力、暧昧甚至滑稽可笑。真的,不仅在感性方面是如此,理性方面也是一样。或者说更甚。但是和广大的令人尊敬的艺术家们所面临的状况不同,我们在理性的表达方面已经拥有了近乎完美的解决方案,那就是数学的语言。从这方面来说,考虑到文学、音乐、美术等等作为一个人的教养的重要性,数学的普及程度和它所取得的成就相比,实在是大大的落后了。

我写这个的目的是想从头开始回忆整理一遍我所学到的,然后把那些首先从记忆里跳出来的东西写出来。我想正是这里面包含了(我所理解的)数学的精髓。还有一个目的也许是更重要的,那就是我把它们写出来,然后会切身体会到我所知道的是多么的少。

从博客的性质上来讲,如果我从头开始写然后按顺序贴上来,那么首先看到的必然是最后一页。我想我会尽可能地让人即使从最后一页开始读,也能迅速地明白我到底在说什么。但愿如此。

注:Bourbaki据说是普法战争中一个法国将军的名字。做为名词它指当年一群法国数学家的秘密结社,或者他们所编的厚厚一叠味同嚼蜡的教科书。有时它作为形容词来形容高度抽象、没有人情味、精确但冗长难懂的书写数学记号的方式。

« Previous Page