2016-07-30 123 views
13

在阅读Bartosz优秀的Category theory for Programmers时,我陷入了第二个练习中,该练习涉及到posets中的产品。给定一个poset,产品和副本产品

b e 
    ↗ ⤭ ↘ 
a → c f → h 
    ↘ ⤭ ↗ 
    d g 

如何定义产品的分类意义?什么是由两个对象的产品分类的?那副产品呢?

回答

15

让我们一起来看看产品的定义,第一:

对象ab的产品配备了态射p :: c -> aq :: c -> b存在,使得对任何其他对象c'(与对象c态射p' :: c' -> aq' :: c' -> b),存在态射m :: c' -> c,使得p' = p . mq' = q . m

请记住,poset中的态射主要描述关系“小于或等于”。

现在产物c对象和b之间的两个a必须小于或等于两个ab的对象。作为一个例子,让我们选择aebg从图表:

b e -- this one is a 
    ↗ ⤭ ↘ 
a → c f → h 
    ↘ ⤭ ↗ 
    d g -- this one is b 

中平凡,想到的是小于或等于任何其他对象总是的第一个对象是最小的对象,在这种情况下,a

现在是a产品eg的有效候选人?让我们来看看产品的定义:

是否有从ae?是的,这存在并且可以写为pₐ = ce . ac(读作:“首先是从a到c的箭头,然后是从c到e的箭头”)。

是否有从ag的morhism?是的,这也存在,可以写成qₐ = cg . ac

到目前为止这么好,唯一的问题就是这是否是“最好的”候选者,因为没有其他对象存在,因此我们可以在a和另一个候选者之间构造一个独特的同构?

看图中,我们可以看到对象c也符合要求的标准,其中p = ceq = cg

所有剩下要做的就是根据上面的定义对这两个对象进行排序。我们看到存在从ac的态射。这意味着c必须是最好的候选人,因为我们现在可以定义态射m = ac,使得pₐ = p . m = ce . acqₐ = q . m = cg . ac

因此,poset中两个对象的乘积实际上是两者都小于两者(也称为最大下界)的最大对象。值得注意的是,在总排序中,这对应于函数min(a, b),因为每个对象都必须与任何其他对象相关联(Wolfram将其称为trichotomy law)。


模数转换器产品定义时,副产物对应于最小对象大于或等于两个ab。在总排序中,这对应于两个对象的最大值。你可以为自己工作。