首页 > 解决方案 > 在谈论固定点时,“最小”和“最大”指的是什么顺序?

问题描述

在 Haskell 中关于不动点的文本中,经常提到最小和最大不动点。例如在Data.Functor.Fixedpoint文档或这里

最小和最大暗示所涉及类型的顺序(或者仅在固定点上定义它就足够了吗?)无论如何,我从来没有看到这个顺序被明确表示。

在 Haskell 中,一个固定点大于另一个固定点的正式含义是什么?

标签: haskellfixpoint-combinators

解决方案


函子F的最小不动点是F的初始代数,即函子定义的 F -代数范畴中的初始对象。我们可以在代数上定义一个预序,如果从到存在态射。根据初始对象的定义,从初始代数到其他所有代数都有一个态射。这使得初始代数成为定义排序的“最小”元素,在某种意义上,初始代数“先于”比任何其他对象更多的对象,而不是没有任何东西可以先于初始对象。c <= dcd

同样, F的最大不动点是F的终端代数。一个类似的论点使它成为由F -余代数范畴中的态射诱导的排序中的最大元素。


推荐阅读