arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2003.12531cs.LOmath.CT
收藏

分配律的不可能性定理

No-Go Theorems for Distributive Laws

Maaike Zwart, Dan Marsden

AI总结:

本文提出三族定理,系统判定两个单子间何时不存在分配律,解决开放问题并证明已知分配律的唯一性。

摘要:

单子(monad)在计算机科学中十分常见,可以通过贝克(Beck)的分配律(distributive law)进行复合。遗憾的是,寻找分配律可能极其困难且容易出错。文献中包含一些构造分配律的一般原则。然而,迄今为止,尚无用于确定何时不存在分配律的技术。我们提出了三族定理,用于说明两个单子之间何时不可能存在分配律。第一族广泛推广了归因于普洛特金(Plotkin)的反例,涵盖了先前已知的针对特定单子对的所有不可能性结果,并包含许多新结果。第二族和第三族完全是新颖的,涵盖了各种新的实际情形。例如,它们否定了列表单子(list monad)是否可分配于自身这一开放问题,揭示了文献中一个先前未被观察到的错误,并证实了贝克在其关于分配律的首篇论文中提出的一个猜想。此外,我们建立了两个单子之间至多可能存在一种分配律的条件,证明了多种已知分配律的唯一性。

英文摘要:

Monads are commonplace in computer science, and can be composed using Beck's distributive laws. Unfortunately, finding distributive laws can be extremely difficult and error-prone. The literature contains some general principles for constructing distributive laws. However, until now there have been no such techniques for establishing when no distributive law exists. We present three families of theorems for showing when there can be no distributive law between two monads. The first widely generalizes a counterexample attributed to Plotkin. It covers all the previous known no-go results for specific pairs of monads, and includes many new results. The second and third families are entirely novel, encompassing various new practical situations. For example, they negatively resolve the open question of whether the list monad distributes over itself, reveal a previously unobserved error in the literature, and confirm a conjecture made by Beck himself in his first paper on distributive laws. In addition, we establish conditions under which there can be at most one possible distributive law between two monads, proving various known distributive laws to be unique.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑