我想知道是否有人可以给我直觉,为什么归纳数据类型严格的正定性可以保证强大的规范化。
明确地说,我看到负出现是如何导致分歧的,即通过定义:
data X where Intro : (X->X) -> X
我们可以编写一个发散函数。
但我想知道,怎样才能证明严格正归纳类型不容许分歧?也就是说,是否有某种归纳措施可以让我们构造强规范化的证明(使用逻辑关系或类似关系)?此类证据在哪里会针对负面事件进行分解?有没有很好的参考文献显示出归纳类型语言的强大归一化?
我想知道是否有人可以给我直觉,为什么归纳数据类型严格的正定性可以保证强大的规范化。
明确地说,我看到负出现是如何导致分歧的,即通过定义:
data X where Intro : (X->X) -> X
我们可以编写一个发散函数。
但我想知道,怎样才能证明严格正归纳类型不容许分歧?也就是说,是否有某种归纳措施可以让我们构造强规范化的证明(使用逻辑关系或类似关系)?此类证据在哪里会针对负面事件进行分解?有没有很好的参考文献显示出归纳类型语言的强大归一化?
Answers:
听起来您想要具有正数据类型的类型系统的规范化参数概述。我建议纳克斯·门德勒(Nax Mendler)的博士学位论文:http : //www.nuprl.org/documents/Mendler/InductiveDefinition.html。
如日期所示,这是非常经典的作品。基本的直觉是,序数可以与任何正归纳类型的元素相关联,例如对于数据类型
Inductive Ord = Zero : Ord | Suc : Ord -> Ord | Lim : (Nat -> Ord) -> Ord
我们会得到:
其中覆盖正规形式的项。需要说明的是,仅当也具有范式时,才在第三种情况下定义此解释,这需要在定义时加倍小心。
然后可以通过对该序数进行归纳来定义递归函数。
请注意,正如Dybjer 在出色的归纳家庭论文(http://www.cse.chalmers.se/~peterd/papers/Inductive_Families.pdf)中指出的那样,这些数据类型可以在经典集合论中已经定义。但是,由于函数空间很大,所以像这样的类型Ord
需要非常大的序数来解释。
Ord
来建模展现良好基础所需的序数?
超越严格肯定类型的另一个很好的来源是Ralph Matthes的博士学位论文:http : //d-nb.info/956895891
他在第3章中讨论了系统F(具有正类型)的扩展,并在第9章中证明了许多强大的归一化结果。第3章讨论了一些有趣的想法。
只要我们可以提供单调见证人,我们就可以为带有自由变量任何类型添加最小不动点。这个想法已经出现在科迪提到的Mendler的作品中。这样的证人对于任何肯定类型都规范存在,因为它们在语法上是单调的。
当我们从严格的正数类型变为正数类型时,归纳类型不再可以视为树(W型编码)。取而代之的是,它们引入了某种形式的阻抗性,因为正归纳类型的构造已经在类型本身上进行了量化。请注意,这是一种不易混淆的暗示性形式,因为此类类型的语义仍可以根据单调函数的有序迭代来解释。
问题还提供了正感应类型的一些示例。特别有趣的是
Matthes还使用正归纳类型来分析双重否定,例如,在本文中:https : //www.irit.fr/~Ralph.Matthes/papers/MatthesStabilization.pdf。他介绍了Parigot的的扩展,并证明了强归一化。
希望这对您的问题有所帮助。