正文
真实世界里可能没有两个东⻄是完全⼀样的
(请让我忽略量⼦⼒学⾥的全同粒⼦,我们现在在幼⼉园,没有听说量⼦⼒学)
。⼀般⼤家要看两个东⻄⼀样不⼀样,就把这两个东⻄⽐较⼀下。但是这两个东⻄不可能完全⼀样,所以⽐较的时候要忽略⼀些属性,一个极端的情况是,我们忽略一个苹果的所有内部结构和属性,把它看成一个既没有内部结构也没有附加属性的东西
(就是集合论里面的元素)
。这种情况下,一一对应就是一个很好的“一样”的定义。
如果我们接受了这样定义“⼀样”是可⾏的, 即⽤“⼀⼀对应”来定义“⼀样”。那么问题来了:
有两种不⼀样的“⼀样”还是⼀样吗?
现代数学或范畴学就是对这样⼀个基础的问题做了深刻的思考。现代数学或范畴学的观点是:
有两种不⼀样的“⼀样”就是不⼀样,除⾮有⼀个⽐另⼀个更⾃然
。⽐如:左边的苹果⼀个是红的,⼀个是绿的;右边也是⼀个红的,⼀个绿的。⼀个
⾃然
的“⼀样”是保持颜⾊的“⼀样”。但是在没有颜⾊这个附加“结构”之前,我们有两种不⼀样的“⼀样”,其实就是不⼀样。
这个问题看似简单,但是却是⼀个核⼼问题,在数学⾥⾯⼴泛出现,造成很多初学者的困惑。⽐如中国的不少教科书把线性代数教成了矩阵代数。很多学⽣⼀想到⼀个线性空间,就⾃动给它装上⼀个向量基。事实上,(线性空间+给定的基)是和线性空间完全不⼀样的数学结构!不明⽩这个就⽆法明⽩⼀个线性空间和它的对偶空间的区别,到了微分⼏何,也会困惑切空间和余切空间的区别。⼀个有限维线性空间和它的对偶空间有⽆数线性同构,但是没有⼀个是⾃然的!但是⼀个有限维线性空间到它的对偶空间的对偶空间有⼀个⾃然的同构。
我们注意到上⽂反复出现了“⾃然”这个词。⽽范畴学的起源,就是Ellenberg-Mac Lane试图定义什么是“⾃然”,由此引发了“
⾃然变换
”
(natural transformation)
这个概念,为了定义“⾃然变换”,需要引⼊“函⼦“
(functor)
的概念,为了定义函⼦,⼜需要引⼊“
范畴
”
(category)
这个概念。
本⽂不想⾛进这些概念细节,但是我们希望能够展示⼀下范畴学的基本精神。粗略地说:所有苹果可以看成⼀个“范畴”,⽽所有⾹蕉是另⼀个“范畴”,它们都可以放到⼀个更⼤的叫“⽔果”的范畴⾥⾯。
我们想说,从OO抽象出来⼀个“2”的概念其实是⾮常困难的,⽽且往往需要很暴⼒的做法。⽼师在引⼊“2”之前,为了加深理解,还会再放两个⾹蕉。我们姑且⽤J来代表⾹蕉。于是⿊板上⼜出现了如下公式:
J + J = JJ, (2)
但是同样的问题仍然会令我们烦恼。更加令⼈困惑的是⽼师有的时候还要在⾛向“2”的路上做更多让我们困惑的事情,⽐如为了硬说这些都是“2”,还可能有这样的公式出现:
OO=JJ.
这样不在⼀个“范畴”能“⼀样”吗?甚⾄⼀不留神,⽐如苹果不够⽤了,可能临时还会出现下⾯的公式:
O + J = J + J.
疯掉了,苹果和⾹蕉能加吗?苹果和⾹蕉不在⼀个“范畴”怎么能加呢?事实上,我们可以说⼀个苹果是“1”,⼀个⾹蕉也是“1”,它们都是“1”的代表,但是从这些可以作为“1”的代表中抽象出来“1”这样的概念是⾮常困难的。也许那些连1+1=2都听不懂的孩⼦不是笨,⽽是把握住了⼀些深刻和本源的东⻄。
我们来看看范畴学怎么解读1+1。
范畴学的观点就和我们最天真的看法⼀样,⼀个苹果是“1”,⼀个⾹蕉也是“1”。
它们都是“1”的代表。
既然只是代表,是不是说它们都还不是“1”?
那么到底什么是“1”呢?
“1”应该反映出来所有这些“1”的不同代表所具有的“共有性质”。数学家给这个“共有性质”起了⼀个正式的名字叫“
万有性质
”
(universal property)
。如何写下这些“1”的不同代表的共有性质呢?
范畴学提供了⼀种全新的视⻆。不要⽤“⼀个研究对象”⾥⾯“有什么东⻄”这样⾮常集合论或还原论的⽅式去看问题,⽽要以对象和其他对象的相互关系的⽅式来了解⼀个对象。这个⽅式其实是我们理解世界更根本的⽅法,⽐如你想了解⼀个未知的“存在”
(如粒⼦、材料等)
,你怎么办?你会⽤你熟悉的东⻄打进去去看看会测量出来什么。物理学家会测⼀个新材料的发光谱和吸收谱,打X光进去看看X射线衍射;数学家会把球⾯扔进⼀个未知空间来测量,或看看能不能让⼀个群作⽤上去,等等。⾼能加速器的云室⾥⾯测的不是粒⼦的轨迹,⽽是粒⼦和其他东⻄相互作⽤的轨迹。没有相互作⽤,测量也⽆从谈起。可以⼗分安全地说:
这个世界上没有⽐相互关系或相互作⽤更基本的存在。
既然如此,我们可以尝试⽤相互关系来定义什么是“1”。
我们先回顾⼀个概念:集合之间的映射
(a map)
。集合就是⼀堆元素的“集合”,呵呵。不过值得指出的是,空集也是⼀个集合,就是⼀个没有元素的集合。那么什么是两个集合A和B之间的映射呢?⽐如考虑两个集合X={a,b}, Y={1,2,3}, ⼀个从X到Y的映射,记成
或
这其实就是⼀个分配规则:给X中的每⼀个元素分配唯⼀⼀个Y中的元素。⽐如,f(a)=1, f(b)=1 就是⼀个合理的映射, g(a)=2, g(b)=3 也是⼀个映射。但是不能给a分配两个Y中的元素!如果集合X⾥⾯没有元素
(空集)
,等于分配规则⾃动定义好了,这个什么都不需要分配的分配规则就叫空映射。
有了这些准备,我们可以给出⼀下定义。
定义:
1 就是这样⼀个集合,任何⼀个集合到它都存在且有唯⼀⼀个映射
[1]
。我们有⼀个简洁的图来记录这个定义:对任意集合X,我们有
这⾥
“
”
是指“存在”,“!”是指“唯⼀”
[1
]
。另外要注意,定义中“对任意集合X”也⾮常重要!不是对⼀个特别的集合,⽽是所有集合!
⼤家看到没有,这个定义⾥⾯⽤到了“1”和所有集合的关系,这件事相当重要。不过第⼀次看到这个读者可能更关⼼的是,为什么这是“1”的⼀个合理的定义呢?我们来看看,⼀个苹果的集合满不满⾜这个定义?⼀个⾹蕉的集合呢?或者,零个或三个⾹蕉呢,⼜或者所有中国⼈的集合?
如果你愿意尝试,你很快会发现,零个⾹蕉是不⾏的,因为它破坏了定义中映射“存在性”条件。“三个⾹蕉”也是不⾏的,因为它破坏了映射的“唯⼀性”。什么集合可以呢?就是那些只有⼀个元素的集合,⽐如⼀个苹果
的集合
、⼀个⾹蕉
的集合
、⼀个鸡蛋
的集合
、⼀个⼈的集合,等等,它们可以同时保证存在性和唯⼀性。
所以这样定义的“1”不唯⼀,这个好像是⼀个缺陷,但是妙的地⽅是,所有可能的“1”都有且仅有⼀种⽅式互相对应起来,这是由“存在性”和“唯⼀性”决定的,和“1”的具体内容⽆关。就像教⼩朋友时,可以⽤⼀个苹果代表1,也可以⽤⼀个⾹蕉代表1,⽽且我们知道如何把它们等同起来! 你能相信吗,幼⼉园虽然很努⼒地教“去范畴化”的数学,但教的⽅法是⽆法回避的范畴学!因为这就是它的本来⾯⽬。
⽽这个定义也被称为“1”的“万有性质”
。也就是说,我们⽤“1”的性质来定义“1”,⽽不是⽤“1”⾥⾯有什么东⻄来定义“1”。
所有
的数学概念都可以⽤它的“万有性质”来定义,我说的是“所有”,是的,你没有听错!
好极了,如果你还能跟上我,我们就再来⼀个。
定义:
0就是这样⼀个集合,它到任何⼀个集合都存在且有唯⼀⼀个映射。即对任意集合X,我们有: