了解构造演算的强规范化证明


9

我很难理解构造演算的强归一化证明。我尝试遵循Herman Geuvers论文中的证明“构造微积分的强规范化的简短而灵活的证明”。

我可以很好地遵循推理的主线。每种类型的Geuvers构造T 解释 [[T]]ξ 基于对类型变量的一些评估 ξ(α)。然后他构造一些术语解释(|M|)ρ 基于对术语变量的一些评估 ρ(x) 并证明对于有效评估,该断言 (|M|)ρ[[T]]ξ 对所有人 ΓM:T 持有。

我的问题:对于简单类型(如系统F类型),类型解释 [[T]]ξ 确实是一组术语,所以断言 (|M|)ρ[[T]]ξ说得通。但是对于更复杂的类型,解释[[T]]ξ不是一组术语,而是一些适当功能空间的一组功能。我认为,我几乎了解函数空间的构造,但是它不能为(|M|)ρ[[T]]ξ 对于更复杂的类型 T

任何人都可以解释或给出一些更易于理解的证明表示的链接吗?

编辑:让我尝试使问题更清楚。上下文Γ 有类型变量的声明 α:A和对象变量。如果适用于所有类型,则类型评估有效(α:A)ΓΓA: 然后 ξ(α)ν(A)已验证。但ν(A) 可以是 (SAT) 不仅 SAT。因此,无法为ρ(α)ρ(α) 必须是一个术语,而不是功能空间的某些功能。

编辑2:无效的示例

让我们进行以下有效推导:

[]:axiom[α:]α:variable introduction[α:]:weaken[](Πα:.):product formation[β:Πα:.]β:(Πα:.)variable introduction

在最后一种情况下,有效的类型评估必须满足 ξ(β)ν(Πα:.)={f|f:SATSAT}。对于这种类型的评估,没有有效的期限评估。


1
一半的人读这篇文章会认为 SAT是SAT。您应该解释一下它是什么。另外,您的推导似乎有些奇怪。第二行不应该提及α 在其结论中,应该阅读类似 [α:]:,不是吗?
安德烈·鲍尔

我使用的是Herman Geuvers的表示法(在该领域中似乎是标准的)。 SAT是所有饱和的lambda表达式集的集合。对于我的推导的第二行:它是纯类型系统变量的引入规则。该规则为ΓT:sΓ,x:Tx:T 哪里 s是某种。
Helmut

我知道您是如何获得第二条线的,但这不是形成第三条线的正确前提,是吗?什么规则给出第三行。
安德烈·鲍尔

PTS产品形成规则说 r(s1,s2,s3;ΓA:s1;Γ,x:AB:s2Γ(Πx:A.B):s3。结构的演算有规律r(,,)。这使我可以使用第一行和第二行来导出第三行。但是我的帖子有错字。我现在添加的第三行中的类型已丢失。
helmut

那第一行不应该读吗 []:?还是混在一起某处?第二行不能是产品形成规则的第二个前提,因为那意味着您正在尝试形成类似α:.α 代替 α:.
安德烈·鲍尔

Answers:


6

不幸的是,我不确定是否有比Geuvers帐户更多的初学者友好资源。您可以尝试克里斯·卡辛格诺(Chris Casinghino)的这篇笔记,笔记详细说明了一些证据。

我不确定我是否理解您的困惑的要点,但我认为需要注意的重要一件事是以下引理(推论5.2.14),在经典的Barendregt文本中得到了证明:

ΓM:T  ΓT: or 

这意味着 [[T]]ξ 可能是一些复杂的功能,如果 ΓM:T 持有,然后 [[T]]ξ 必须有一套术语

这在大纲(第3.1节)中有所说明,其中 (|t|)σ[[T]]ξ 除非 Γt:T:,这符合我们的期望,即对类型的解释必须是一组术语,即 V()P(Term) (确实, V()=SAT!)

在类型理论中,即使我们只 “基础种类” 感兴趣,这也是一种常见情况(此处),我们仍然必须为更高种类的事物定义语义(因此需要引入 SAT)。然后事情就解决了,因为只有类型所居住的那种才是 (和 ,但这并不是很重要)。


1
感谢您的解释。那解决了我不理解Geuver证明中使用的函数的问题。我已经对阅读和重新阅读Geuver的论文有所怀疑,但是您说得很清楚。
Helmut
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.