Answers:
我可以想到线性逻辑的一些可能答案。
最简单的是仿射Lambda演算:仅考虑每个变量最多出现一次的Lambda项。通过还原可以保留这种条件,并且可以立即看到仿射项的大小在每个还原步骤中都严格减小。因此,未类型的仿射λ演算正在高度规范化。
吉拉德在“轻线性逻辑”(Information and Computation 143,1998)中引入的线性逻辑子系统也产生了所谓的“轻” lambda计算,这是更有趣的例子(在表达上)。作为Lafont的“软线性逻辑”(理论计算机科学318,2004)。文献中有几种这样的计算,也许很好的参考是Terui的“轻仿射Lambda微积分和多项式时间强归一化”(Archive for Mathematical Logic 46,2007)。在该论文中,Terui定义了从轻仿射逻辑派生的lambda演算,并证明了其强大的归一化结果。即使在本文中提到了类型,但在规范化证明中并未使用它们。它们对于轻仿射λ演算的主要属性的简洁表述非常有用,即某种类型的项恰好表示Polytime函数。对于基本计算,使用其他“轻型”拉姆达计算也可获得相似的结果(Terui的论文包含更多参考文献)。
作为附带说明,有趣的是,从证明理论的角度讲,仿射λ演算对应于没有收缩规则的直觉逻辑。Grishin观察到(在引入线性逻辑之前),在没有收缩的情况下,天真集理论(即具有不受限制的理解)是一致的(即,罗素悖论没有给出矛盾)。原因是可以通过简单的减小大小的论点(如我上面给出的那样)来证明不采用紧缩的朴素集理论的消减,而这种论点不依赖于公式的复杂性。通过Curry-Howard对应关系,这恰好是未类型的仿射λ演算的归一化。它是通过将罗素悖论转化为线性逻辑并“扭曲” 指数模态,因此不能得出吉拉德提出轻线性逻辑的矛盾。如上所述,在计算方面,轻线性逻辑给出了多项式时间可计算函数的特征。用证明论的术语来说,可以在轻线性逻辑中定义一致的朴素集理论,使得可证明的总函数恰好是多项式时间可计算函数(特瑞(Terui)对此发表了另一篇论文,“轻仿射集理论:朴素集多项式时间理论”,Studia Logica 77,2004年)。
Church和Rosser的原始论文“转换的某些属性”描述了一些您可能正在寻找的示例。
如果您使用严格的 lambda演算,则每次发生 你有那个 免费出现在 ,则在没有类型系统的情况下,以下属性成立(这是Church和Rosser论文中的定理2):
如果 是...的正常形式 ,然后有一个数字 这样,从 会导致 最多[模α当量] 减少。
因此,即使您可以在(无类型的)严格lambda演算中写出非终止项,但每个具有范式的项都将高度规范化;也就是说,减少的每个顺序都将达到该唯一的正常形式。
这是尼尔·琼斯(Neil Jones)和妮娜·玻尔(Nina Bohr)的有趣影片:
它显示了如何对未类型化应用大小变化分析(一种检测无限循环的控制流分析类型)-条款。这在实践中是相当不错的,但是当然仅限于-没有定义常量的术语(尽管该方法可以扩展为更通用的用法)。
键入的优势当然是低复杂度成本和该方法的模块化:通常,终止分析是非模块化的,但是键入可以“逐段”进行。