第 4 章断言,二阶命题逻辑中的每个证明都可以变成一个被内核接受的项(定理 4.1)。本附录把这一陈述精确化,并给出完整证明。一旦必要的簿记就位,证明并不长:它是对逻辑判断的推导做归纳,每种情形正好对应第 4 章表格中的一行,从左读到右。
思路
逻辑中的一棵推导是规则应用构成的树,而第 4 章的翻译把每条逻辑规则与一条类型规则配对,于是自然的计划是:从叶子向上遍历推导,在每个节点上构造配对的类型规则所给出的类型推导。假设变成变量查找,蕴涵引入变成 λ,蕴涵消去变成应用,两条量词规则则变成在 Sort0 上的 λ 和对类型的应用。
有两处细节需要留意,都和上下文有关。
- 逻辑规则不说明哪些命题变量在作用域内,而类型这一侧需要知道,因为命题变量 P 只有在假设 P:Sort0 进入上下文之后才能使用。因此精确陈述带有一个显式的命题变量列表 Θ。
- 类型规则向右扩展上下文,而第 4 章的翻译 Δ∗ 把所有命题变量放在所有假设之前。若允许任意交错,证明会更容易,所以我们对每个表示该逻辑判断的上下文证明定理,“表示”的含义见下文定义。
精确陈述
定理 4.1 没有明说哪些命题变量在作用域内;为了证明,我们把它们显式写出,记
Θ;Δ⊢φ,
其中 Θ 是互不相同的命题变量的列表,并且在 Δ 或 φ 中自由出现的每个命题变量都属于 Θ。带上这套簿记,第 4 章的规则读作如下。
Θ;Δ⊢φφ∈Δ;(Hyp)Θ;Δ⊢φ→ψΘ;Δ,φ⊢ψ;(→-intro)Θ;Δ⊢ψΘ;Δ⊢φ→ψΘ;Δ⊢φ;(→-elim)
Θ;Δ⊢∀P.φΘ,P;Δ⊢φP∈/Θ;(∀-intro)Θ;Δ⊢φ[P↦ψ]Θ;Δ⊢∀P.φFV(ψ)⊆Θ;(∀-elim)
第 4 章的附加条件 P∈/FV(Δ) 现在由 P∈/Θ 蕴涵:在 Δ 中自由出现的每个命题变量都在 Θ 中,而 P 不在。公式在 α 等价意义下看待,所以约束的 P 总可以改名以满足附加条件。与第 4 章一样,φ∗→ψ∗ 表示 Π(x:φ∗).ψ∗,其中 x 是新鲜的。
第 4 章的上下文 Δ∗ 先列出命题变量,再列出假设,但证明需要向右扩展上下文,所以允许任意顺序更为方便。
定义 A.1(表示). 称上下文 Γ 表示 (Θ;Δ),如果 ⊢Γ;ok,且 Γ 由以下假设按某种顺序组成:对每个 P∈Θ 有一个假设 P:Sort0,对每个 χ∈Δ 有一个假设 h:χ∗。
定理 A.2(定理 4.1 的精确形式). 若 Θ;Δ⊢φ 且 Γ 表示 (Θ;Δ),则存在项 t 使得 Γ⊢t:φ∗。
定理 4.1 是 Γ=Δ∗ 的特例。当 Θ 列出全部自由命题变量时,上下文 Δ∗ 恰好包含所需的假设;由下面的引理 A.3 加上规则 C-Ext,它是良构的,因为一旦命题变量在作用域内,每个假设类型 χ∗ 都是命题。
关于翻译的事实
翻译 φ↦φ∗ 与替换可交换:
(φ[P↦ψ])∗=φ∗[P↦ψ∗].
这是对 φ 的例行归纳:两边都把 P 的自由出现换成 ψ∗,而翻译对命题变量什么也不做,只保留它的名字。主证明的 ∀-elim 情形依赖这个等式。
下一条引理是第 13 章的宇宙结构唯一介入的地方,它说每个翻译后的公式都是命题,也就是类型为 Sort0。没有它,类型规则 T-Lam 就不能应用于假设,∀-elim 情形也不能用任意公式实例化量词。
引理 A.3(公式是命题). 若 ⊢Γ;ok,且对每个 P∈FV(φ) 都有 (P:Sort0)∈Γ,则 Γ⊢φ∗:Sort0。
对 φ 归纳。
对命题变量 P,假设给出 (P:Sort0)∈Γ,于是由 T-Var 得 Γ⊢P:Sort0。
对 φ→ψ,归纳假设给出 Γ⊢φ∗:Sort0,于是对新鲜的 x,由 C-Ext 知 Γ,x:φ∗ 良构。在这个扩展后的上下文中对 ψ 用归纳假设,得 Γ,x:φ∗⊢ψ∗:Sort0,再由 T-Pi 得 Γ⊢Π(x:φ∗).ψ∗:Sortimax(0,0)=Sort0。
对 ∀Q.χ,把 Q 改名使 Q∈/dom(Γ)。T-Sort 给出 Γ⊢Sort0:Sort1,于是由 C-Ext 知 Γ,Q:Sort0 良构。在该上下文中对 χ 用归纳假设,得 Γ,Q:Sort0⊢χ∗:Sort0,再由 T-Pi 得 Γ⊢Π(Q:Sort0).χ∗:Sortimax(1,0)=Sort0。
证明
我们对 Θ;Δ⊢φ 的推导做归纳来证明定理 A.2,同时对所有表示它的上下文 Γ 一并证明。每种情形构造的,都是第 4 章表格右栏所示的类型推导。
假设. 该规则由 φ∈Δ 得出 Θ;Δ⊢φ。由于 Γ 表示 (Θ;Δ),它包含一个假设 h:φ∗,于是由 T-Var 得 Γ⊢h:φ∗。
→-intro. 前提是 Θ;Δ,φ⊢ψ,结论是 Θ;Δ⊢φ→ψ。由引理 A.3,Γ⊢φ∗:Sort0。因此对新鲜的 h,上下文 Γ,h:φ∗ 由 C-Ext 良构,并且它表示 (Θ;Δ,φ)。把归纳假设用于该前提和这个上下文,得到对某个 t 有 Γ,h:φ∗⊢t:ψ∗,再由 T-Lam 得
Γ⊢λ(h:φ∗).t:Π(h:φ∗).ψ∗.
这个类型就是 φ∗→ψ∗:ψ∗ 的自由变量都是命题变量,h 不在其中,所以 h 不出现在 ψ∗ 里,这个 Π 是非依赖的。
→-elim. 前提是 Θ;Δ⊢φ→ψ 和 Θ;Δ⊢φ。两个归纳假设给出 Γ⊢f:Π(x:φ∗).ψ∗,其中 x∈/FV(ψ∗),以及 Γ⊢a:φ∗。T-App 给出 Γ⊢fa:ψ∗[x↦a];由于 x 不出现在 ψ∗ 中,替换什么也不做:ψ∗[x↦a]=ψ∗。
∀-intro. 前提是 Θ,P;Δ⊢φ,其中 P∈/Θ;结论是 Θ;Δ⊢∀P.φ。必要时把 P 改名,设 P∈/dom(Γ);一个例行归纳表明,把 Θ 中的变量改成新鲜变量保持推导不变。由 T-Sort 和 C-Ext,Γ,P:Sort0 良构,并且它表示 (Θ,P;Δ)。归纳假设给出 Γ,P:Sort0⊢t:φ∗,再由 T-Lam 得
Γ⊢λ(P:Sort0).t:Π(P:Sort0).φ∗,
这正是 ∀P.φ 的翻译。
∀-elim. 前提是 Θ;Δ⊢∀P.φ,其中 FV(ψ)⊆Θ;结论是 Θ;Δ⊢φ[P↦ψ]。归纳假设给出 Γ⊢f:Π(P:Sort0).φ∗。由于 ψ 的每个命题变量都在 Θ 中,从而在 Γ 中有假设 Q:Sort0,引理 A.3 给出 Γ⊢ψ∗:Sort0。T-App 给出
Γ⊢fψ∗:φ∗[P↦ψ∗]=(φ[P↦ψ])∗,
其中最后一步是上一节的替换等式。
逻辑的每条规则都已覆盖,所以定理对每棵推导成立。
证明从未用到 T-Conv:它构造的每棵类型推导都只在语法上比较类型,至多相差约束变量的名字;只有当逻辑扩展了计算,比如加入第二部分的归纳类型,转换才成为必需。
要点回顾
- 定理的精确形式带有一个显式的命题变量列表 Θ,并对每个表示 (Θ;Δ) 的上下文(顺序任意)证明结论。
- 每个翻译后的公式都位于 Sort0 中(引理 A.3)。这在 ∀ 情形用到非谓词性,也正是它让 ∀-elim 能用任意公式实例化量词。
- 证明是对推导的归纳;每条逻辑规则恰好对应一条类型规则:Hyp 对应 T-Var,两条引入规则对应 T-Lam,两条消去规则对应 T-App。
- 从未用到 T-Conv,因为这个逻辑没有计算。