在阿格达(Agda)邮件列表上的最新帖子中,出现了法律的问题,彼得汉考克(Peter Hancock)在其中发人深省。
我的理解是法则带有否定类型,即。引入规则是可逆的连接词。要禁用功能,Hank建议使用定制消除器funsplit,而不是通常的应用程序规则。我想了解汉克关于两极的说法。
例如,有两个演示类型。有传统的马丁- LOF 分裂消除,以积极的风格:
还有否定版本:
后一种表示形式很容易获得对,即。对任意对(其中==表示定义相等)。就可证明性而言,这种区别并不重要:从直觉上讲,您可以拆分或以其他方式实现投影。
现在,类型通常是负面的(我相信,毫无争议):
这为函数提供:。
但是,汉克在那封邮件中回忆起了分叉消除符(《机器语言类型理论编程》,[http://www.cse.chalmers.se/research/group/logic/book/],第56页)。在逻辑框架中通过以下方式对其进行描述:
有趣的是,Nordstrom等。通过说“ [此]非规范形式基于结构归纳原理”来激发这一定义。这种说法带有强烈的积极意义:函数将由其构造函数 '定义' 。
但是,我不能完全以自然推论(或什至更好的是顺序演算)来确定该规则的令人满意的表述。在这里,逻辑框架的(滥用)引入至关重要。
那么,funsplit是类型的肯定表示吗?在(非相关的)后续演算中,我们也有类似的东西吗?它会是什么样子?
对于该领域的证明理论家来说,这有多普遍/好奇?