lambda 演算中的量词

Quantifiers in lambda calculus

我正在学习 lambda 演算,但是我对 lambda 演算中的量词感到很困惑。据我所知,诸如“∃”之类的量词是一阶逻辑(FOL)的概念,lambda演算不需要。此外,我在阅读的任何教程中都没有找到有关量词的任何内容。

但是,我发现 this paper(Lambda 基于依赖关系的组合语义 ), 在第一页中作者使用了 lambda 演算中的量词。那么,lambda 演算中使用量词吗?如果是这样,它们是什么意思?和 FOL 一样吗?

您引用的论文在某种程度上非正式地使用了量词,就像它使用谓词一样。如果您已经有了 lambda 演算,您至少可以在纸面上使用您想要的任何形式符号集来扩展它,包括来自 FOL 的量词。在那种情况下,量词是添加到微积分中的东西,而不是微积分的一部分。

但是,量词可以在 typed lambda 演算中定义。在简单类型设置中,您有基本的函数类型,但这些可以概括为通用量词和 dependent function/Pi types。在这种情况下,lambda 表达式表示蕴涵和通用量化的证明,这意味着它们是建立在您可以赋予 lambda 表达式的语义解释中的。存在量词可以定义为;

∃ a : t 。 P a := ∀ Q . (∀ a : t . P a → Q) → Q

与普通产品类型数据相同