是否存在图灵完整的打字lambda calculi?如果是这样,有几个例子?

有帮助吗?

解决方案

是的,当然。许多打字的lambda calculi仅接受 强烈正常化 术语,按设计,因此他们无法表达任意计算。但是类型系统可以是您喜欢的任何东西。使其足够宽,您可以表达所有确定性计算。

涵盖lambda微积分的图灵完全片段的微不足道类型的系统是接受每个学期的片段(使用 顶级类型)。 $$ dfrac {} { gamma vdash m: top} $$

更实际,静态键入功能编程语言在其核心上具有键入的lambda cyculus,允许 FIXPOINT组合器 像良好的一样。例如,从 简单地输入lambda演算 (或ML类型系统或 系统f 或您选择的任何其他类型系统),并添加一个规则,该规则使某些FixPoint组合器如$ Mathbf {y} = lambda f。 ( lambdax。f(x ,x))( lambdax。f(x ,x))$。 $ dfrac { gamma vdash f:t rightarrow t} { gamma vdash vdash vdash mathbf {y} gamma vdash( lambdax。f(x ,x))( lambdax。f(x ,x)):t} $$上述规则相当笨拙,因为它们制作了$ Mathbf {y} ,即使其成分不符合良好的成分,也没有完全构图。一个简单的修复是添加FixPoint Comminator作为语言常数,并为其提供Delta规则。然后,拥有类型系统和降低语义是一个简单的事情 类型保存. 。您确实从纯lambda演算中逃脱了带有常数的lambda微积分领域。 $$ begin {chater*} dfrac {} { gamma vdash textbf {fix} :( fix} ,f) end {chater*} $$

坚持使用纯lambda微积分,一个有趣的类型系统是带有相交类型的Lambda演算。

$ dfrac { gamma vdash m:t_1 quad gamma vdash m:t_2} { gamma vdash m:t_1 wedge t_2}( wedge i) vdash m: top}( top i)$$

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

  • 可以在不使用$ top i $规则的情况下键入lambda-term,如果它非常正常化。
  • lambda-Term接纳不包含$ top $ IFF的类型,其具有正常表格。

具有联合类型的lambda-terms的表征 对于为什么交叉类型具有如此出色的范围的见解。

因此,您拥有一个定义图灵完整语言的类型系统(因为每个学期都是良好的),并且可以简单地表征终止计算。当然,由于这种类型的系统表征了归一化,因此无法确定。

关于规则名称$( top i)$和$( wedge I)$的评论:它们没有形式的含义,但是故意选择的。 $ i $代表“简介”,因为这些是简介规则 - 它们将符号($ wedge $或$ top $)引入该行以下类型。双重,当符号出现在行之上而不下方时,您会发现淘汰规则。例如,在简单类型的lambda微积分中打字的lambda表达式的规则是$ rightarrow $的简介规则,而typecheck apphip的规则是$ rightarrow $的删除规则。

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top