【发布时间】:2019-05-18 15:41:43
【问题描述】:
我试图从范畴论的角度来理解 Monoid 是什么,但我对用来描述它的符号有点困惑。这是维基百科:
在范畴论中,一个幺半群(或幺半群对象)(M, μ, η)在一个幺半群(C, ⊗, I)中是一个对象 M 加上两个态射
μ: M ⊗ M → M 称为乘法,
η:I→M称为单位
我的困惑是关于态射符号。为什么二元运算⊗ 是态射符号的一部分?我对态射的理解是,它是一种可以从一种类型映射到另一种类型(域到共域)的函数,例如M → M。为什么操作⊗ 是定义中域的一部分?第二个困惑是关于I。为什么I 是一个域? Monoid 中根本没有 I 对象。它只是对象M 的一个中性元素。
我知道Monoid 是一个类别,其中包含一个对象、一个恒等态射和一个在该对象上定义的二元运算,但是这种表示法让我觉得我不明白。
M ⊗ M 是否与笛卡尔积有某种关联,所以态射的域被定义为M x M?
编辑:我在Mathematics Stack Exchange 上的问题得到了非常有用的答案。
【问题讨论】:
-
你从集合论的角度了解什么是幺半群吗?定义只是是——除了“因为我们观察到有很多我们想要统一谈论的事情是这样的”之外,几乎没有可以给出“为什么是这样的定义”的答案”。所以我真的无法想象明智地回答这个问题。但我可以想象合理地回答“这个定义如何与集合论定义的各个部分相对应?”。
-
好的。由于您(现已删除)的评论说您了解集合论的定义,所以当我吃完午饭回来时,如果还没有答案,我会写下两个定义的部分如何对应的描述;以及与由定义引起的一个对象的类别的连接。
-
@daniel-wanger 是的,我理解集合论中的幺半群(至少是主要思想)。我什至对范畴论中的内容有一些“不稳定”的理解。我现在的主要问题(至少我认为这是主要问题)是我不明白如何阅读符号。是否有一种规则说在左侧(域)只能有对象?因为像
I -> M这样的定义对我来说看起来很奇怪。就像从对象I(不是对象)到M的态射。或者M ⊗ M是一种域名。但我真的很感激任何答案。 -
警告!工作中有不同但相关的概念!具有一个对象的类别对应于幺半群的传统概念(例如,您可以通过原地跳跃从您所在的位置到达您所在的位置的方式)。 monoidal category 的概念是另外一回事:它们可以拥有更有趣的对象集合,其中 (X) 和 I 诱导出类幺半群结构(Haskell 类型上的 (,) 方式是关联的并吸收() 直到同构)。
-
“monoidal category”这个词是必不可少的,这就是您要询问的这些运算符的来源。你似乎忽略了他们。
标签: haskell category-theory monoids