范畴论abc
本人刚刚入门,在经过范畴论的一番折磨之后,决定写一些心得。以下全部都是个人经验,几乎没有任何证据。首先总结一下范畴论的目的,这个
本人刚刚入门,在经过范畴论的一番折磨之后,决定写一些心得。以下全部都是个人经验,几乎没有任何证据。
首先总结一下范畴论的目的,这个语言的好处(再次强调都是个人见解)。范畴论的目的是找到想要的箭头,语言的好处在于,熟悉游戏规则的人可以完全脱离“集合论”式的思考方式,把一切心思都放在“点(object)”和“箭头(morphism)”的引入上。范畴论的推理过程就是根据规则逐步画图。
范畴论定义一个概念,或者指定具有某种的对象,或者建立本体论,的方式是用“万有性质(universal properties)”。万有性质是引入新的箭头的重要来源,万有性质往往不保证存在性,但保证唯一性。用万有性质引入的箭头被认为是典则的(canonical)。万有性质如何记忆?似乎有如下规律:万有性质永远都在告诉我们如何“实现”需要的箭头。比如加性范畴中 的kernel是 是零映射,万有性质应该是 如果是零映射的话,会怎么怎么样。那么我们需要的箭头是 ,如何实现呢?查看下图
很明显,我们只能按照下图的方式实现出 :
这就帮我们记住了万有性质的箭头的方向。类似地,诸如direct product等等对象的万有性质,似乎都符合这个规律。Again,不要用集合论的方式记忆!集合论可能会说: 要最终打到0,其打到 中的元素必然都落在 里,但如此思考最终会带来非常巨大的思考量,导致极大的困难。
范畴论定义箭头的性质,比如单、满、双、同构等等,是用新的点和箭头,并声明一些逻辑条件定义的;我们强调不要用“元素”等集合论的观念思考,否则极容易陷入先入为主的困境。
在一张图中,新的“点”往往是用万有性质定义的对象,比如kernel,cokernel,image,coimage等等。
为了展示“逐步画交换图”的过程,我们来举一个例子(读者可以跟着下述步骤一起画):我们希望在加性范畴中找到某个morphism的coimage到image的典则映射,范畴论是如何思考的呢?首先画出下图
回忆image要“挂在 上”,而 一开始只能指出一个cokernel,因此image应该要指向 ,也就是cokernel的kernel,所以我们应该画(括号内的事物可以不用画)
同样的,coimage应该挂在 上, 一开始只能指进来一个kernel,因此coimage应该从 指出去,作为kernel的cokernel,也就是
现在一共有
现在需要找到 ,而且只能用范畴论的公理,我们应该回忆image是cokernel的kernel,特别地,它是一个kernel;kernel的万有性质(在旁边拿出草稿纸回忆一下)是blabla,并画出
万有性质给出了指向kernel的箭头,因此我们只需指出 到 有一个箭头,且满足和cokernel符合是0。那么如何找 到 的箭头呢?回忆coimage是kernel的cokernel,cokernel的万有性质是blabla;万有性质应该帮助我们实现 ,因此我们有一个coimage到 的箭头。那么这个箭头为什么最终和 复合为0呢?因为 是一个满态射,我们有一个重要的常见结构:如果 是满的, ,那么 ;这是因为加性范畴保证了0态射总是存在,考虑 是0态射,我们可以平凡地有 是零态射,因此满态射公理保证了箭头 是0。