在阅读 Bartosz 为程序员编写的优秀类别理论时,我陷入了第二个练习,该练习处理的是 posets 中的产品。给定一个poset,
b e
↗ ⤭ ↘
a → c f → h
↘ ⤭ ↗
d g
如何在分类意义上定义产品?什么是按两个对象的乘积分类的?那么副产品呢?
在阅读 Bartosz 为程序员编写的优秀类别理论时,我陷入了第二个练习,该练习处理的是 posets 中的产品。给定一个poset,
b e
↗ ⤭ ↘
a → c f → h
↘ ⤭ ↗
d g
如何在分类意义上定义产品?什么是按两个对象的乘积分类的?那么副产品呢?
我们先来看看产品的定义:
对象的乘积
a和b是c具有态射p :: c -> a和q :: c -> b存在的对象,使得对于任何其他对象c'(具有态射p' :: c' -> a和q' :: c' -> b),存在m :: c' -> c这样的态射p' = p . m和q' = q . m。
请记住,偏序集中的态射基本上描述了“小于或等于”的关系。
现在c两个对象a和之间的乘积b必须是一个小于或等于a和的对象b。例如,让我们从图表中选择aase和bas :g
b e -- this one is a
↗ ⤭ ↘
a → c f → h
↘ ⤭ ↗
d g -- this one is b
平凡地,想到的第一个总是小于或等于任何其他对象的对象是最小的对象,在这种情况下a。
现在是和a的乘积的有效候选者?让我们检查一下产品的定义:eg
a从到有态射e吗?是的,这存在并且可以写成pₐ = ce . ac(读作:“首先是从 a 到 c 的箭头,然后是从 c 到 e 的箭头”)。
a从到有 morhismg吗?是的,这也存在,可以写成qₐ = cg . ac.
到目前为止这么好,剩下的唯一问题是这是否是“最佳”候选者,因为不存在其他对象,因此我们可以在a和另一个候选者之间构建唯一的同构?
查看图表,我们可以看到该对象c也满足所需的条件,其中p = ce和q = cg。
剩下要做的就是根据上述定义对这两个对象进行排名。我们看到存在从a到的态射c。这意味着c必须是最佳候选,因为我们现在可以定义态射和。m = acpₐ = p . m = ce . acqₐ = q . m = cg . ac
因此,一个poset中两个对象的乘积实际上是最大的对象,它都小于两者(也称为最大下界)。值得注意的是,在总排序中,这对应于函数min(a, b),因为每个对象都必须与任何其他对象相关(Wolfram 将此称为三分法)。
类似于乘积定义,联积对应于大于或等于两者的最小对象a和b。在总排序中,这对应于两个对象的最大值。你可以自己解决这个问题。