<译>有关态射的一切

上一篇:米田嵌入segmentfault

原文地址: https://bartoszmilewski.com/2...spa

若是我尚未使你已经确信范畴论就是全部和态射有关的东西,那就是个人失职。由于下一个主题是伴随,而伴随是用hom集的同构定义的,因此回顾一下有关hom集的那些积木是颇有意义的。并且你会看到伴随为描述咱们以前研究的不少构造提供了一种更通常的语言,因此复习一下它们也颇有必要。3d

函子

首先,你其实应该把函子看做态射的映射——这个观点有在Haskell的Functor类型类的定义中获得强调,也就是fmap。固然,函子也映射对象——态射的端点——不然咱们就无法谈论保持复合。对象告诉了咱们哪些态射对是可复合的。其中一个态射的终点必须等于另外一个态射的起点——若是它们能复合。因此若是咱们想把态射的复合映为提高后的态射的复合,端点的映射就很大程度上被决定了。code

交换图

态射的不少性质都是用交换图的方式表达的。若是一个特定的态射被以超过一种方式描述为其余态射的复合,那么咱们就有一个交换图了。对象

特别地,交换图构成了几乎全部泛构造的基础(初始对象和终端对象是明显的例外)。咱们已经在积、余积、不少其余(余)极限、指数对象和自由幺半群等等的定义中看到过它了。blog

积是泛构造的一个简单例子。咱们挑选两个对象ab,看看是否存在一个带上一对态射pq的具备成为它们积的泛性质的对象cget

productranking

积是极限的一个具体例子。极限是用锥的观念定义的。泛锥是构建在交换图之上的。这些图表的交换性能够被一个恰当的函子的映射的天然性条件所代替。这种方式下交换性被降为了汇编语言的角色,而高级语言是天然变换。数学

天然变换

通常来讲,当咱们须要从态射映为交换四方图的时候,天然变换会很是方便。天然四方图的两个对边是某个态射f在两个函子FG做用下的像。另外的边则是天然变换的份量(固然这也是态射)。it

naturality

天然性意味着当你移动到“相邻”份量(相邻的意思是说由一个态射链接)上时,你不会违背范畴的结构,也不会违背这两个函子的。你是先用天然变换的份量桥接对象,再用函子跳到它的邻居上;仍是反过来,这一点关系也没有。这两个方向是正交的。天然变换让你左右移动,函子让你上下活着先后移动——打个比方说。你能够设想一个函子的就是靶范畴里的一页纸。天然变换就把对应于F的这样一页纸映为对应G的另外一页。class

sheets

咱们已经见过Haskell中这个正交性的例子了。在Haskell中函子在不改变容器形状的条件下修改了容器的内容,而天然变换把这些内在的内容从新打包到另外一个不一样的容器中。这些操做的顺序并不重要。

咱们已经在极限的定义中见到过用天然变换表示的锥了。天然性确保了每一个锥的边是可交换的。然而,极限使用锥之间的映射定义的。这些映射也必须知足交换性条件(好比,积的定义中的三角形必须交换。)

这些条件也能够被天然性所代替。你可能会想起锥,或者说极限,被定义成一个天然变换,这个天然变换是(逆变)hom函子:

F :: c -> C(c, Lim D)

和把C的对象映为锥的(逆变)函子(固然锥自己就是天然变换):

G :: c -> Nat(Δ_c, D)

之间的。这里,Δ_c是常函子,而D是定义了C中的图表的那个函子。函子FG都在C的态射上定义良好。很是碰巧的是这个FG之间特别的天然变换是一个同构

天然同构

天然同构——每一个份量都是可逆的天然变换——是范畴论里描述"两个东西同样"的方法。这样的一个变换的份量必须是对象间的同构——可逆的态射。若是你把函子的像想成纸张,天然同构就是一个这些纸张间的一一可逆映射。

Hom集

但什么是态射呢?它们比对象具备更多的结构:不像对象那样,态射有两个端。若是你固定住源对象和靶对象,这两个对象间的态射就构成了一个无聊的集合(至少对于局部小的范畴来讲)。咱们能够给这个集合的元素一些像fg这样的名字来区分它们——但到底是什么让它们区别于彼此?

在一个给定的hom集上,态射间的本质区别表如今它们与其余态射(来自相邻的hom集)的复合上。若是有一个态射h,它与f的复合(前复合或后复合)与g不一样,例如:

h ∘ f ≠ h ∘ g

这样咱们就可以直接“观察”fg的不一样。然而就算这个区别不能直接观察,咱们也可使用函子去放大hom集。函子F能够把这两个态射映为不一样的态射:

F f ≠ F g

在更富的范畴里,相邻的hom集会提供更高的分辨率,好比,

h' ∘ F f ≠ h' ∘ F g

其中h'不在F的像里。

Hom集同构

不少范畴论的构造依赖于hom集间的同构。但由于hom集仅仅只是集合,它们之间通常的同构并不会告诉你更多的东西。对于有限集,同构只是说他们有相同多的元素。若是集合是无限的,它们的基数必须是相同的。可是,任意有意义的hom集同构必须考虑复合。而复合涉及了不止一个hom集。咱们须要定义跨在全部hom集的集族上的同构,咱们还须要对涉及复合的操做加以某些兼容性条件。而天然同构精确地知足了这样的要求。

但什么是hom集的天然同构呢?天然性是一个函子间的映射的性质,并非集合间的。因此咱们真正在谈论的是指向hom集的函子间的天然同构。它们在态射上的行为由恰当的hom函子导出。态射标准地被hom函子用前复合或后复合(取决于函子的协变性)的方式映射。

米田嵌入就是这种同构的一个例子。它把C中的hom集映为函子范畴里的hom集;而且它是天然的。米田嵌入中的一个函子是C中的hom函子,另外一个把对象映为hom集间的天然变换的集合。

极限的定义也是hom集间的一个天然同构(第二个hom集,一样,也是函子范畴里的):

C(c, Lim D) ≃ Nat(Δ_c, D)

能够证实咱们的指数对象的构造,或者自由幺半群的构造,也能被重写成hom集上的天然同构。

这并不是巧合——咱们接下来将会看到这些只不过是伴随的不一样的例子,而伴随就是用hom集间的天然同构定义的。

hom集的反对称性

还有一种观察能够帮助咱们理解伴随。hom集,通常来讲,是非对称的。hom集C(a, b)一般与hom集C(b, a)很是地不同。这种非对称性的极端例子就是当作范畴的偏序。在偏序中,从ab的态射存在当且仅当a小于等于b。若是ab不相等,那么另外一个方向,也就是ba就不会有态射。因此若是hom集C(a, b)非空,这就意味着它是个单例集,那么C(b, a)必须是空集,除非a = b。在这个范畴中箭头有一个明确的流向。

而没有反对称性的预序,也是“几乎所有”有向的,除了例外的环形。把任意的范畴当作预序的推广是很是方便的方法。

预序是个薄范畴——全部的hom集或者是单例集或者是空集。咱们能够把通常的范畴当作一个“厚的”预序。

挑战

  1. 考虑某些天然性条件的退化状况并画图。例如,若是函子FG把对象abf :: a -> b的端)映为同一个对象,好比,F a = F bG a = G b?(注意你会获得一个锥或者余锥。)而后考虑F a = G aF b = G b的状况。最后,若是从一个指向本身的环态射——f :: a -> a开始呢?

致谢

感谢Gershom Bazerman检查个人数学和逻辑,以及André van Meulebrouck在整个系列中的编辑上的帮助。

下一篇:伴随

相关文章
相关标签/搜索