是否存在图灵完全类型的lambda演算?


Answers:


37

是的,当然。根据设计,许多类型的Lambda演算仅接受强归一化项,因此它们无法表达任意计算。但是类型系统可以是任何您喜欢的类型。使其足够广泛,您就可以表达所有确定性计算。

包含lambda演算的图灵完备片段的琐碎类型系统是接受每个类型都正确的术语(具有top类型)的系统。

Γ中号

实际上,静态类型函数编程语言的核心是类型化lambda演算,它可以使固定点组合器也具有良好的类型。例如,先从简单类型λ演算(或ML类型系统或系统; F。或者你选择的任何其他类型的系统),增加一条规则,使得一些不动点组合子像类型良好。 Γ ˚F Ť Ťÿ=λFλXFXXλXFXX 上面介绍的规则相当笨拙,因为它们像Y

ΓFŤŤΓÿFŤΓFŤŤΓλXFXXλXFXXŤ
即使他们的组成部分类型不正确,它们也类型齐全-它们的组成不完全。一个简单的解决方法是添加一个定点组合器作为语言常数,并为其提供增量规则。那么具有类型系统和具有类型保留的约简语义是一个简单的问题。您确实会从纯Lambda微积分进入带常数的Lambda微积分领域。 ÿF
Γ固定ŤŤŤ固定FF固定F

坚持纯lambda演算,一个有趣的类型系统是具有交集类型的lambda演算。

Γ中号Ť1个Γ中号Ť2Γ中号Ť1个Ť2一世Γ中号一世

交叉点类型在归一化方面具有有趣的属性:

  • 一世

有关为何交集类型具有如此显着范围的见解,请参阅具有并集类型的lambda项的表征

因此,您有一个定义图灵完备语言的类型系统(因为每个术语的类型都很好),并且具有终止计算的简单特征。当然,由于这种类型的系统具有归一化的特征,因此这是不确定的。

一世一世一世

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.