范畴论中的幺半群
2022/05/23
一、幺半群(集合视角)
monoid (幺半群)是一个定义了二元运算的集合
- 有单位元 (mempty)
- 二元运算满足结合律 (mappend:A -> A -> A)
二、幺半群(范畴视角)
假设集合 A 是一个幺半群,我们可以立即得到一个 monoid category C,范畴 C 只有一个对象 A( one object category),那范畴 C 的态射是什么呢?注意到 mappend 的类型签名可以写成 A -> (A -> A),即对任意的 a 属于 A,我们都可以得到一个态射
\[\mathrm{f = mappend \ \ a}\]由于 f 是 A -> A 的,所以 C 的态射 Mor(C) 定义为 {mappend a | a 属于 A} 即可,可以验证是满足范畴的定义的。
所以,即任何一个幺半群集合同时也可以看作范畴。
三、幺半群范畴里也有一个幺半群集合
任何一个 one object category 都自带了一个 Monoid,即 Hom-set C(A,A), Hom-set C(A, A) 是一个集合,里面的每个元素都是 A -> A 的 arrow 。
为什么 C(A,A) 是一个 monoid 呢?因为我们可以定义一个符合结合律的二元运算 comp(函数组合),对任意的f,g属于 C(A,A),f、g 一定可comp(因为domain/codomian兼容),且由于 C 是一个范畴,comp 所得的结果也属于 C(A,A),而且 comp 运算符合结合律。再定义幺元为 id(这样 id comp f = f comp id 满足了 monoid 集合单位元的定义)
所以,monoid set A 看做 monoid category 时,我们不仅得到了一个单元素范畴,这个单元素范畴的态射构成的集合又得到了一个 monoid set