§E16.28Curry–Howard 対応

最終更新

直観主義命題論理の含意導入は、仮定AAから結論BBを導く証明を作り、その仮定を解除してA→BA\to Bを得る。単純型付きラムダ計算の抽象は、型AAの変数を受け取って型BBの項を返し、型A→BA\to Bをもつ。本記事では、仮定へ変数名を付けた含意断片の自然演繹を用いて、この対応を導出木の単位で証明する。さらに、含意導入の直後に含意除去を行う局所的な迂回が、ベータ簡約に対応することを示す。

1 含意断片と仮定ラベル

命題変数の集合をPPとし、含意断片の論理式を

A,B::=p∣A→B(p∈P)A,B ::= p\mid A\to B \qquad(p\in P)

によって定める。同じ集合PPを単純型付きラムダ計算の基本型記号の集合として用い、論理式AAと単純型AAを同じ帰納的構文で表す。

定義 1.1. 仮定文脈 (assumption context)Γ\Gammaは、変数から含意断片の論理式への有限部分関数である。判断Γ⊢→A\Gamma\vdash_{\to} Aを、次の三規則から生成される有限導出木とする。

Γ(x)=AΓ⊢→A(Hypx)\frac{\Gamma(x)=A}{\Gamma\vdash_{\to} A}(\mathrm{Hyp}_x)Γ,x:A⊢→BΓ⊢→A→B(→Ix)Γ⊢→A→BΓ⊢→AΓ⊢→B(→E).\frac{\Gamma,x:A\vdash_{\to} B} {\Gamma\vdash_{\to} A\to B}(\to I_x) \qquad \frac{\Gamma\vdash_{\to} A\to B\qquad \Gamma\vdash_{\to} A} {\Gamma\vdash_{\to} B}(\to E).

導出木の各仮定出現には、その仮定を表す変数ラベルを付ける。(→Ix)(\to I_x)はラベルxxの仮定出現を解除する。束縛された仮定ラベルの名前だけが異なる導出をアルファ同値とみなす。

通常の含意断片の自然演繹は、同じ論理式を複数回仮定することを許す。仮定ラベルによって出現を区別すれば、どの導入規則がどの仮定を解除するかが明確になる。文脈を有限部分関数としたことは、解除されるラベルを新鮮に選ぶ規約であり、論理式そのものの重複を禁じない。

2 導出から証明項を作る

定義 2.1. 仮定ラベル付き導出π\piの 証明項 (proof term)∣π∣\lvert\pi\rvertを、最後の規則に関して次のように定める。

∣Hypx∣=x,∣πA→B(→Ix)∣=λx.∣π∣,∣πρB(→E)∣=∣π∣ ∣ρ∣.\begin{aligned} \lvert\mathrm{Hyp}_x\rvert&=x,\\ \left\lvert\frac{\pi}{A\to B}(\to I_x)\right\rvert &=\lambda x.\lvert\pi\rvert,\\ \left\lvert\frac{\pi\qquad\rho}{B}(\to E)\right\rvert &=\lvert\pi\rvert\,\lvert\rho\rvert. \end{aligned}

定理 2.2.π\piがΓ⊢→A\Gamma\vdash_{\to} Aの導出ならば

Γ⊢∣π∣:A\Gamma\vdash\lvert\pi\rvert:A

は単純型付きラムダ計算の型付け判断として導出可能である。

証明.π\piの導出木に関して帰納法を用いる。最後が(Hypx)(\mathrm{Hyp}_x)ならばΓ(x)=A\Gamma(x)=Aであり、型付けの変数規則からΓ⊢x:A\Gamma\vdash x:Aである。

最後が(→Ix)(\to I_x)ならば、直前の導出はΓ,x:A⊢→B\Gamma,x:A\vdash_{\to} Bである。帰納法の仮定からΓ,x:A⊢∣π0∣:B\Gamma,x:A\vdash\lvert\pi_0\rvert:Bを得る。型付けの抽象規則により

Γ⊢λx.∣π0∣:A→B\Gamma\vdash\lambda x.\lvert\pi_0\rvert:A\to B

である。

最後が(→E)(\to E)ならば、直前の二導出に対する帰納法の仮定から

Γ⊢∣π1∣:A→B,Γ⊢∣π2∣:A\Gamma\vdash\lvert\pi_1\rvert:A\to B,\qquad \Gamma\vdash\lvert\pi_2\rvert:A

を得る。型付けの適用規則からΓ⊢∣π1∣∣π2∣:B\Gamma\vdash\lvert\pi_1\rvert\lvert\pi_2\rvert:Bである。三規則のすべてについて対応する型付け規則を得た。▨

3 型付けから導出を復元する

型付け規則は、仮定ラベル付き自然演繹の三規則と同じ木構造をもつ。

定理 3.1.D\mathcal Dが単純型付きラムダ計算の型付け導出

Γ⊢M:A\Gamma\vdash M:A

ならば、Γ⊢→A\Gamma\vdash_{\to}Aの仮定ラベル付き自然演繹πD\pi_{\mathcal D}が存在して

∣πD∣≡αM\lvert\pi_{\mathcal D}\rvert\equiv_\alpha M

となる。

証明.D\mathcal Dの最後の型付け規則に関して帰納法を用いる。

変数規則の場合、M=xM=xかつΓ(x)=A\Gamma(x)=Aである。自然演繹の(Hypx)(\mathrm{Hyp}_x)を用いると、証明項はxxになる。

抽象規則の場合、M=λx.NM=\lambda x.N、A=B→CA=B\to Cであり、直前の導出はΓ,x:B⊢N:C\Gamma,x:B\vdash N:Cである。帰納法の仮定からΓ,x:B⊢→C\Gamma,x:B\vdash_{\to}Cの導出π\piを得る。(→Ix)(\to I_x)を適用するとΓ⊢→B→C\Gamma\vdash_{\to}B\to Cを得て、その証明項はλx.∣π∣≡αλx.N\lambda x.\lvert\pi\rvert\equiv_\alpha\lambda x.Nである。

適用規則の場合、M=PQM=PQであり、ある型BBが存在して

Γ⊢P:B→A,Γ⊢Q:B\Gamma\vdash P:B\to A,\qquad \Gamma\vdash Q:B

である。二つの直前の導出へ帰納法の仮定を適用し、得られた自然演繹へ(→E)(\to E)を適用する。証明項は、アルファ同値を除いてPQPQである。三つの型付け規則を尽くしたため結論を得る。▨

系 3.2 (含意断片の Curry–Howard 対応). 仮定ラベル付き自然演繹の導出木と、単純型付きラムダ計算の型付け導出木は、アルファ同値を除いて相互に変換することができる。対応は次の表で与えられる。

論理 ラムダ計算
仮定x:Ax:A 変数x:Ax:A
含意導入 ラムダ抽象
含意除去 関数適用
命題AA 型AA
AAの導出 型AAの項

証明.定理 2.2と定理 3.1の構成を比較する。各構成は、変数規則を仮定規則へ、抽象規則を含意導入へ、適用規則を含意除去へ写す。従って、一方の導出木へ二つの構成を順に適用すると、各節点で元と同じ規則が復元される。束縛変数と解除仮定のラベルは新鮮な名前へ変更される場合があるため、同一性はアルファ同値を除いて成り立つ。▨

例 3.3 (恒等命題の証明項). 仮定x:Ax:AからAAを得て、xxを解除すると⊢→A→A\vdash_{\to}A\to Aとなる。対応する証明項は

λx.x:A→A\lambda x.x:A\to A

である。

例 3.4 (含意の合成).f:B→Cf:B\to C、g:A→Bg:A\to B、x:Ax:Aを仮定する。含意除去を二回用いるとgx:Bgx:Bとf(gx):Cf(gx):Cを得る。三つの仮定を解除すると

⊢→(B→C)→(A→B)→A→C\vdash_{\to}(B\to C)\to(A\to B)\to A\to C

を得る。対応する項はλf.λg.λx.f(gx)\lambda f.\lambda g.\lambda x.f(gx)である。

4 証明の代入

含意導入で解除する仮定を、別の導出によって置き換える操作を定義する。ラムダ項側では捕獲回避代入が同じ役割を担う。

補題 4.1.π\piがΓ,x:A⊢→B\Gamma,x:A\vdash_{\to}Bの導出であり、ρ\rhoがΓ⊢→A\Gamma\vdash_{\to}Aの導出であるとする。π\piに現れるラベルxxの未解除仮定をρ\rhoで置き換えると、Γ⊢→B\Gamma\vdash_{\to}Bの導出π[x:=ρ]\pi[x:=\rho]が存在し、

∣π[x:=ρ]∣≡α∣π∣[x:=∣ρ∣]\lvert\pi[x:=\rho]\rvert \equiv_\alpha \lvert\pi\rvert[x:=\lvert\rho\rvert]

である。

証明.π\piの最後の規則に関して帰納法を用いる。最後が仮定規則でラベルがxxならば、導出全体をρ\rhoで置き換える。証明項の両辺は∣ρ∣\lvert\rho\rvertである。別の仮定ラベルならば導出を変更せず、証明項の代入も当該変数を変更しない。

最後が含意除去ならば、二つの直前の導出へ帰納法の仮定を適用し、得られた二導出へ再び含意除去を適用する。証明項の等式は、適用に対する代入の再帰式から従う。

最後が(→Iy)(\to I_y)ならば、yyを∣ρ∣\lvert\rho\rvertの自由変数、Γ\Gammaの定義域およびxxの外へ改名する。この代表元ではy≠xy\ne xであるため、直前の導出へ帰納法の仮定を適用し、再び(→Iy)(\to I_y)を用いる。証明項側でも、捕獲回避代入は抽象の本体へ入る。従って、すべての規則で導出の置換と証明項の捕獲回避代入が一致する。▨

5 局所的な迂回とベータ簡約

含意を導入した直後に同じ含意を除去すると、導入で一時的に置いた仮定を、除去に用いた証明で直接置き換えることができる。

定義 5.1. 次の形の導出を考える。

πΓ,x:A⊢→B (→Ix)ρΓ⊢→AΓ⊢→B(→E).\frac{ \dfrac{\pi}{\Gamma,x:A\vdash_{\to}B} \ (\to I_x) \quad \dfrac{\rho}{\Gamma\vdash_{\to}A} }{\Gamma\vdash_{\to}B}(\to E).

この導出を、補題 4.1が与えるπ[x:=ρ]\pi[x:=\rho]へ置き換える操作を、含意の局所的な迂回除去 (local detour reduction) という。導出木の任意の部分木で同じ置換を許す。

定理 5.2. 含意の局所的な迂回除去を一回行う前後の導出をD,D′\mathcal D,\mathcal D'とする。このとき

∣D∣→β∣D′∣\lvert\mathcal D\rvert\to_\beta\lvert\mathcal D'\rvert

である。逆に、型付け導出の証明項に現れるβ基は、対応する自然演繹導出における含意導入の直後の含意除去を表し、そのβ基の縮約は局所的な迂回除去に対応する。

証明. 根にある局所的迂回の証明項は、証明項抽出の定義から

(λx.∣π∣)∣ρ∣(\lambda x.\lvert\pi\rvert)\lvert\rho\rvert

である。ベータ簡約の基本規則と補題 4.1により

(λx.∣π∣)∣ρ∣→β∣π∣[x:=∣ρ∣]≡α∣π[x:=ρ]∣(\lambda x.\lvert\pi\rvert)\lvert\rho\rvert \to_\beta \lvert\pi\rvert[x:=\lvert\rho\rvert] \equiv_\alpha \lvert\pi[x:=\rho]\rvert

となる。

迂回が導出木の内部にある場合、証明項では対応するβ基が抽象の本体、適用の左項、または適用の右項の内部にある。ベータ簡約は全項文脈について閉じているため、同じ一段簡約を項全体へ持ち上げることができる。

逆向きを示す。型付け可能なβ基(λx.M)N(\lambda x.M)Nの型付け導出を反転すると、左項の最後の規則は抽象規則であり、項全体の最後の規則は適用規則である。対応する自然演繹では、前者が(→Ix)(\to I_x)、後者が(→E)(\to E)なので、含意導入の直後に同じ含意を除去している。縮約後のM[x:=N]M[x:=N]は導出の代入が与える証明項である。従って両方向の局所対応が成り立つ。▨

注意 5.3 (局所対応から正規化は従わない).定理 5.2は、一つの局所的な迂回と一段のベータ簡約の対応を述べる。任意の導出が有限回の迂回除去で正規形へ到達することや、任意の簡約列が停止することは主張していない。自然演繹の正規化と単純型付きラムダ計算の強正規化には、別の証明が必要である。

6 演習

問題 6.1. 次の問いに答えよ。

  1. x:A,y:A→B⊢→Bx:A,y:A\to B\vdash_{\to}Bの自然演繹と対応する証明項を書け。
  2. (λx.x)N→βN(\lambda x.x)N\to_\beta Nに対応する局所的な迂回を、仮定導出、含意導入、含意除去の順に記述せよ。
  3. 定理 5.2だけでは強正規化を結論することができない理由を述べよ。
解答 (確認問題の解答).

1では、仮定y:A→By:A\to Bとx:Ax:Aへ含意除去を適用し、証明項yx:Byx:Bを得る。2では、仮定x:Ax:AからAAを得てxxを解除しA→AA\to Aを導き、N:AN:Aの導出へ適用した後、仮定xxの出現をNNの導出で置換する。3では、定理が各β基の一段対応だけを示し、すべての簡約列の有限性や正規形の存在を証明していないことを述べる。▨

7 境界と次の段階

本記事の対応は含意断片だけに限定される。連言と積型、選言と和型、偽と空型の対応は扱っていない。また、局所的な迂回除去を定義して一段対応を証明したが、自然演繹の正規化、ラムダ項の正規化、および強正規化は扱っていない。これらの結果は証明論で別に証明される。

参考文献

  1. Morten Heine Sørensen and Pawel Urzyczyn, Lectures on the Curry–Howard Isomorphism, Studies in Logic and the Foundations of Mathematics 149, Elsevier, Amsterdam, 2006.
  2. Jean-Yves Girard, Yves Lafont, and Paul Taylor, Proofs and Types, Cambridge Tracts in Theoretical Computer Science 7, Cambridge University Press, 1989.

前提記事