产品和副本产品
在阅读Bartosz优秀的Category theory for Programmers时,我陷入了第二个练习中,该练习涉及到posets中的产品。给定一个poset,产品和副本产品
b e
↗ ⤭ ↘
a → c f → h
↘ ⤭ ↗
d g
如何定义产品的分类意义?什么是由两个对象的产品分类的?那副产品呢?
让我们一起来看看产品的定义,第一:
对象
a
和b
的产品配备了态射p :: c -> a
和q :: c -> b
存在,使得对任何其他对象c'
(与对象c
态射p' :: c' -> a
和q' :: c' -> b
),存在态射m :: c' -> c
,使得p' = p . m
和q' = q . m
。
请记住,poset中的态射主要描述关系“小于或等于”。
现在产物c
对象和b
之间的两个a
必须小于或等于两个a
和b
的对象。作为一个例子,让我们选择a
为e
和b
为g
从图表:
b e -- this one is a
↗ ⤭ ↘
a → c f → h
↘ ⤭ ↗
d g -- this one is b
中平凡,想到的是小于或等于任何其他对象总是的第一个对象是最小的对象,在这种情况下,a
。
现在是a
产品e
和g
的有效候选人?让我们来看看产品的定义:
是否有从a
到e
?是的,这存在并且可以写为pₐ = ce . ac
(读作:“首先是从a到c的箭头,然后是从c到e的箭头”)。
是否有从a
到g
的morhism?是的,这也存在,可以写成qₐ = cg . ac
。
到目前为止这么好,唯一的问题就是这是否是“最好的”候选者,因为没有其他对象存在,因此我们可以在a
和另一个候选者之间构造一个独特的同构?
看图中,我们可以看到对象c
也符合要求的标准,其中p = ce
和q = cg
。
所有剩下要做的就是根据上面的定义对这两个对象进行排序。我们看到存在从a
到c
的态射。这意味着c
必须是最好的候选人,因为我们现在可以定义态射m = ac
,使得pₐ = p . m = ce . ac
和qₐ = q . m = cg . ac
。
因此,poset中两个对象的乘积实际上是两者都小于两者(也称为最大下界)的最大对象。值得注意的是,在总排序中,这对应于函数min(a, b)
,因为每个对象都必须与任何其他对象相关联(Wolfram将其称为trichotomy law)。
模数转换器产品定义时,副产物对应于最小对象大于或等于两个a
和b
。在总排序中,这对应于两个对象的最大值。你可以为自己工作。