什么是Lambda可定义性?

时间:2012-07-07 09:43:51

标签: functional-programming lambda-calculus

当我读到lambda演算时,遇到了 Lambda definability 这个词。有人可以解释那是什么,因为我找不到任何好的资源。

由于

2 个答案:

答案 0 :(得分:3)

参见Church-Turing论文,其中lambda-definable函数(来自Church)是那些给我们"effectively computable"函数的函数。图灵表明,在图灵机上实现的程序相当于lambda-definable函数。

答案 1 :(得分:2)

更一般地说,有一系列研究试图在一大类语言中描述“lambda definability”。 “lambda definability”本身通常相对于以集合给出的语言的语义。对于我们语言中的T类型,请将|T|作为集合进行解释。现在,取一个|T|的元素 - 将其称为e。我们想知道我们的语言中是否有一个术语 - 称之为x : T(类型为T的x),这样| x |是e。如果有这样的术语,那么我们说t是lambda-definable。

现在,在我们完美的世界中,当我们将一种语言解释为集合时,我们想说与每种类型相关联的集合恰好包含那种类型的lambda-definable元素,而 lambda-definable elements(完整性)。它也可能很好,或许可以说我们可以提供一个算法来确定一个声明的元素集是否具有相关的lambda术语(可判定性)。

现在,我们通常不只是模型成套,而是进入其他有趣的数学结构。我们不仅仅是从lambda演算中建模,而是从Plotkin的PCF等其他相关系统中建模。但是,正在研究的财产通常仍被称为“lambda-definability”。

经过数十年的研究,在这方面仍存在许多未解决的问题和问题 - 而某些低阶术语已被证明具有可判定的lambda-definability(经典结果涉及到二阶的术语),许多术语不容易屈服。本文(Ralph Loader的“不可定义的lambda-Definability”)给出了一个重要的不可判定的结果,并描述了一些后果:http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.36.6860