困惑为什么幺半群的所有态射与恒等态射不同

sdb*_*sdb 6 haskell functional-programming category-theory monoids

我正忙于阅读 Bartosz Milewski 为程序员编写的范畴论书籍,并且在将幺半群描述为集合和将幺半群描述为类别之间移动时,我正在努力描述非恒等态射。

我知道,当在集合的上下文中查看幺半群(例如字符串)时,我们有兴趣描述利用“附加”特征的各种函数,例如附加“狗”的函数或函数它将“mmm”附加到它收到的任何输入。这些函数将分别将其输入映射到字符串集中的另一个元素。这显然包括不附加任何内容的可能性。

当我们在类别的上下文中查看这个幺半群时,据我所知,我们正在缩小到一个抽象级别,其中这个幺半群对象代表整个“字符串”类型,并且我们不再对元素如何映射感兴趣在这种类型中彼此之间,因为我们将整个类型表示为单个点/对象。

由此看来,我假设在这个抽象级别,“Set”上下文中描述的所有函数看起来都是相同的,因为它们都映射字符串 -> 字符串。在我看来,这意味着在类别的上下文中,恒等函数(不附加任何内容)看起来与前面提到的 AppendDog 或 AppendMmm 函数或任何其他函数相同。

但我的推理显然是不正确的,正如书中的这张图所示,从幺半群对象到其自身的态射被显示为唯一的实体:

幺半群作为范畴和集合

作为结束语/总结:我不明白为什么我们在将幺半群抽象为类别后仍然对描述幺半群集中的函数感兴趣。一旦集合成为类别中的对象,其中该对象代表整个类型,那么该集合中的所有函数是否都看起来像恒等函数,因为从我们新的角度来看,它们似乎都从该类型开始并返回到该类型类型。

我希望我已经澄清了我的困惑。预先感谢您的任何帮助!

Sri*_*aic 5

我相信你正在观察的是这样一个事实:每个幺半群都与平凡幺半群同态。如果你只看任何幺半群的点箭头图,它也是平凡幺半群的有效图,但这个图并不是全貌。

当你“抽象”时,你本质上是抛弃了幺半群上的等价关系,并补充了可能最弱的关系。Append"mm"和 Append"" 是不同的,但图表没有说明这一点。可以想象它们是相等的,并且您将得到一个有效的幺半群,但这会改变等价关系。

即使我们放弃一些细节,也不应该放弃它们不平等(或至少可能不平等)的事实。这对结构很重要。