Types 在研究简单类型的Lambda演算时发现了哪些奇怪的方程

Types 在研究简单类型的Lambda演算时发现了哪些奇怪的方程,types,functional-programming,lambda-calculus,typed-lambda-calculus,Types,Functional Programming,Lambda Calculus,Typed Lambda Calculus,我在学习简单类型的Lambda微积分,但我对这些方程感到困惑 我想知道他们叫什么,他们是如何工作的 谢谢你的帮助 从拍摄的图像它们通常被称为演绎规则,或者,一般来说,推理规则。由于Gentzen在自然演绎中的使用,带有推理条的符号是一种错误的符号 确切的解释取决于你所描述的系统,但总体思路是顶部的东西暗示/允许底部的东西。在这个特定的例子中,它看起来并没有那么正式,但是如果你以前看过这种东西,就已经足够好了。有关人们通常编写的类型理论的更正式的语义,请参见 在您的具体案例中,我将规则翻译为: 当

我在学习简单类型的Lambda微积分,但我对这些方程感到困惑

我想知道他们叫什么,他们是如何工作的

谢谢你的帮助


拍摄的图像它们通常被称为演绎规则,或者,一般来说,推理规则。由于Gentzen在自然演绎中的使用,带有推理条的符号是一种错误的符号

确切的解释取决于你所描述的系统,但总体思路是顶部的东西暗示/允许底部的东西。在这个特定的例子中,它看起来并没有那么正式,但是如果你以前看过这种东西,就已经足够好了。有关人们通常编写的类型理论的更正式的语义,请参见

在您的具体案例中,我将规则翻译为:

当v2是一个值时,则lambda应用程序\x:T2。t1 v2减少到t1,t1中的x被v2取代。这就是Beta减少 当t1减小到t1'时,应用程序t1 t2减小到t1't2。 当v1是一个值,t2减小到t2'时,应用程序v1 t2减小到v1 t2'。
因此,在本例中,它们实际上不是键入规则,而是用于计算缩减工作原理的规则。

它们通常被称为演绎规则,或者通常称为推理规则。由于Gentzen在自然演绎中的使用,带有推理条的符号是一种错误的符号

确切的解释取决于你所描述的系统,但总体思路是顶部的东西暗示/允许底部的东西。在这个特定的例子中,它看起来并没有那么正式,但是如果你以前看过这种东西,就已经足够好了。有关人们通常编写的类型理论的更正式的语义,请参见

在您的具体案例中,我将规则翻译为:

当v2是一个值时,则lambda应用程序\x:T2。t1 v2减少到t1,t1中的x被v2取代。这就是Beta减少 当t1减小到t1'时,应用程序t1 t2减小到t1't2。 当v1是一个值,t2减小到t2'时,应用程序v1 t2减小到v1 t2'。
因此,在这种情况下,它们实际上不是键入规则,而是计算简化工作的规则。

它们描述了一种简化算法:在AB中,如果a是lambda项,B是不可简化的,即a值,则执行替换;否则,尝试减少A->A',结果为A'B;否则,当A不可约时,即A值尝试减少B->B',结果为AB'。继续应用这些规则,直到不再适用为止,然后您就得到了最终结果。这样,为了执行应用程序AB,尽可能简化A,然后尽可能简化B,然后假设你得到一个Lambda项作为新的A',执行替换。它们描述了一种简化算法:在AB中,如果A是Lambda项,B是不可约的,即A值,则执行替换;否则,尝试减少A->A',结果为A'B;否则,当A不可约时,即A值尝试减少B->B',结果为AB'。继续应用这些规则,直到不再适用为止,然后您就得到了最终结果。要执行应用程序AB,请尽可能地简化A,然后尽可能地简化B,然后假设您得到一个Lambda术语作为新的A',执行替换。