1 含意断片と仮定ラベル
命題変数の集合をPとし、含意断片の論理式を
A,B::=p∣A→B(p∈P)
によって定める。同じ集合Pを単純型付きラムダ計算の基本型記号の集合として用い、論理式Aと単純型Aを同じ帰納的構文で表す。
定義 1.1. 仮定文脈 (assumption context)Γは、変数から含意断片の論理式への有限部分関数である。判断Γ⊢→Aを、次の三規則から生成される有限導出木とする。
Γ⊢→AΓ(x)=A(Hypx)Γ⊢→A→BΓ,x:A⊢→B(→Ix)Γ⊢→BΓ⊢→A→BΓ⊢→A(→E).導出木の各仮定出現には、その仮定を表す変数ラベルを付ける。(→Ix)はラベルxの仮定出現を解除する。束縛された仮定ラベルの名前だけが異なる導出をアルファ同値とみなす。
通常の含意断片の自然演繹では、同じ論理式を複数回仮定してよい。仮定の出現を仮定ラベルによって区別すれば、どの導入規則がどの仮定を解除するかが明確になる。文脈を有限部分関数としたことは、解除されるラベルを新鮮に選ぶという規約に当たる。この規約のもとでも、同じ論理式を複数の変数に割り当ててよい。
2 証明項の抽出
3 導出と型付け導出の相互変換
型付け規則は、仮定ラベル付き自然演繹の三規則と同じ木構造をもつ。
定理 3.1 (含意断片の Curry–Howard 対応). 次が成り立つ。
- πがΓ⊢→Aの導出ならば
Γ⊢∣π∣:A
は単純型付きラムダ計算の型付け判断として導出可能である。
- Dが単純型付きラムダ計算の型付け導出
Γ⊢M:A
ならば、Γ⊢→Aの仮定ラベル付き自然演繹πDが存在して
∣πD∣≡αM
となる。
- 仮定ラベル付き自然演繹の導出木と、単純型付きラムダ計算の型付け導出木は、アルファ同値を除いて相互に変換することができる。
対応は次の表で与えられる。
| 論理 |
ラムダ計算 |
| 仮定x:A |
変数x:A |
| 含意導入 |
ラムダ抽象 |
| 含意除去 |
関数適用 |
| 命題A |
型A |
| Aの導出 |
型Aの項 |
証明.主張 (1)を示す。πの導出木に関して帰納法を用いる。最後が(Hypx)ならばΓ(x)=Aであり、型付けの変数規則からΓ⊢x:Aである。
最後が(→Ix)ならば、直前の導出はΓ,x:A⊢→Bである。帰納法の仮定からΓ,x:A⊢∣π0∣:Bを得る。型付けの抽象規則により
Γ⊢λx.∣π0∣:A→Bである。
最後が(→E)ならば、直前の二導出に対する帰納法の仮定から
Γ⊢∣π1∣:A→B,Γ⊢∣π2∣:Aを得る。型付けの適用規則からΓ⊢∣π1∣∣π2∣:Bである。三規則のすべてについて対応する型付け規則を得た。
主張 (2)を示す。Dの最後の型付け規則に関して帰納法を用いる。
変数規則の場合、M=xかつΓ(x)=Aである。自然演繹の(Hypx)を用いると、証明項はxになる。
抽象規則の場合、M=λx.N、A=B→Cであり、直前の導出はΓ,x:B⊢N:Cである。帰納法の仮定からΓ,x:B⊢→Cの導出πを得る。(→Ix)を適用するとΓ⊢→B→Cを得て、その証明項はλx.∣π∣≡αλx.Nである。
適用規則の場合、M=PQであり、ある型Bが存在して
Γ⊢P:B→A,Γ⊢Q:Bである。二つの直前の導出へ帰納法の仮定を適用し、得られた自然演繹へ(→E)を適用する。証明項は、アルファ同値を除いてPQである。三つの型付け規則を尽くしたため結論を得る。
主張 (3)を示す。主張 (1)と主張 (2)の構成を比較する。各構成は、変数規則を仮定規則へ、抽象規則を含意導入へ、適用規則を含意除去へ写す。従って、一方の導出木へ二つの構成を順に適用すると、各節点で元と同じ規則が復元される。束縛変数と解除仮定のラベルは新鮮な名前へ変更される場合があるため、同一性はアルファ同値を除いて成り立つ。▨
例 3.2. 仮定x:AからAを得て、xを解除すると⊢→A→Aとなる。対応する証明項は
λx.x:A→Aである。
例 3.3.f:B→C、g:A→B、x:Aを仮定する。含意除去を二回用いるとgx:Bとf(gx):Cを得る。三つの仮定を解除すると
⊢→(B→C)→(A→B)→A→Cを得る。対応する項はλf.λg.λx.f(gx)である。
4 証明の代入
含意導入で解除する仮定を、別の導出によって置き換える操作を定義する。ラムダ項の側でこの操作に対応するのは、捕獲回避代入である。
補題 4.1.πがΓ,x:A⊢→Bの導出であり、ρがΓ⊢→Aの導出であるとする。πに現れるラベルxの未解除仮定をρで置き換えると、Γ⊢→Bの導出π[x:=ρ]が存在し、
∣π[x:=ρ]∣≡α∣π∣[x:=∣ρ∣]である。
証明.πの最後の規則に関して帰納法を用いる。最後が仮定規則でラベルがxならば、導出全体をρで置き換える。証明項の両辺は∣ρ∣である。別の仮定ラベルならば導出を変更せず、証明項の代入も当該変数を変更しない。
最後が含意除去ならば、二つの直前の導出へ帰納法の仮定を適用し、得られた二導出へ再び含意除去を適用する。証明項の等式は、適用に対する代入の再帰式から従う。
最後が(→Iy)ならば、yを∣ρ∣の自由変数、Γの定義域およびxの外へ改名する。この代表元ではy=xであるため、直前の導出へ帰納法の仮定を適用し、再び(→Iy)を用いる。証明項側でも、捕獲回避代入は抽象の本体へ入る。従って、すべての規則で導出の置換と証明項の捕獲回避代入が一致する。▨
5 局所的な迂回とベータ簡約
含意を導入した直後に同じ含意を除去すると、導入で一時的に置いた仮定を、除去に用いた証明で直接置き換えることができる。
定義 5.1. 次の形の導出を考える。
Γ⊢→BΓ,x:A⊢→Bπ (→Ix)Γ⊢→Aρ(→E).この導出を、補題 4.1により得られるπ[x:=ρ]へ置き換える操作を、含意の局所的な迂回除去 (local detour reduction) という。導出木の任意の部分木で同じ置換を許す。
定理 5.2. 含意の局所的な迂回除去を一回行う前後の導出をD,D′とする。このとき
∣D∣→β∣D′∣である。逆に、型付け導出の証明項に現れるβ基は、対応する自然演繹導出における含意導入の直後の含意除去を表し、そのβ基の縮約は局所的な迂回除去に対応する。
証明. 根にある局所的迂回の証明項は、証明項抽出の定義から
(λx.∣π∣)∣ρ∣である。ベータ簡約の基本規則と補題 4.1により
(λx.∣π∣)∣ρ∣→β∣π∣[x:=∣ρ∣]≡α∣π[x:=ρ]∣となる。
迂回が導出木の内部にある場合、証明項では対応するβ基が抽象の本体、適用の左項、または適用の右項の内部にある。ベータ簡約は全項文脈について閉じているため、同じ一段簡約を項全体へ持ち上げることができる。
逆向きを示す。型付け可能なβ基(λx.M)Nの型付け導出を反転すると、左項の最後の規則は抽象規則であり、項全体の最後の規則は適用規則である。対応する自然演繹では、前者が(→Ix)、後者が(→E)なので、含意導入の直後に同じ含意を除去している。縮約後のM[x:=N]は導出の代入が与える証明項である。従って両方向の局所対応が成り立つ。▨
6 演習
問題 6.1. 次の問いに答えよ。
- x:A,y:A→B⊢→Bの自然演繹と対応する証明項を書け。
- (λx.x)N→βNに対応する局所的な迂回を、仮定導出、含意導入、含意除去の順に記述せよ。
- β 基を部分項として含まない項を β 正規形という。β 正規形の項は、あるn,k≥0、変数x1,…,xn,y、および β 正規形の項N1,…,Nkを用いてλx1.⋯λxn.yN1⋯Nkと書くことができることを示せ。これを用いて、p∈Pについて∅⊢M:p→pを満たす β 正規形の項Mはλx.xとアルファ同値であることを示し、⊢→p→pの導出で局所的な迂回を含まないものの証明項がすべてλx.xであることを結論せよ。
解答 (確認問題の解答).
-
仮定y:A→Bとx:Aへ含意除去を適用し、証明項yx:Bを得る。
-
仮定x:AからAを得てxを解除しA→Aを導き、N:Aの導出とともに含意除去を適用する。この迂回を除去すると、仮定xの出現がNの導出で置換され、N:Aの導出そのものが残る。
-
前半を項の構造帰納法で示す。変数yはn=k=0の場合である。λx.M0が β 正規形ならばM0も β 正規形であり、帰納法の仮定によりM0は表示した形をもつので、先頭にλxを加えればよい。PQが β 正規形ならばPとQも β 正規形である。Pが抽象ならばPQ自身が β 基となるので、Pは抽象でない。帰納法の仮定によりP=yN1⋯Nk(n=0)であり、PQ=yN1⋯NkQは表示した形をもつ。
∅⊢M:p→pとし、Mを β 正規形とする。M=λx1.⋯λxn.yN1⋯Nkと書く。n=0ならば、§E19.27 補題 2.3によりy∈FV(M)⊆dom(∅)となり矛盾するので、n≥1である。§E19.27 補題 4.1 (1)によりp→p=A→B、すなわちA=B=pであり、x1:p⊢λx2.⋯λxn.yN1⋯Nk:pである。n≥2ならば同じ反転によりpが→の形の型となり矛盾するので、n=1である。§E19.27 補題 2.3によりy∈{x1}、すなわちy=x1であり、x1の型はpである。k≥1ならば、§E19.27 補題 4.1 (2)をk回用いるとx1が→の形の型をもつことになり、変数規則と矛盾する。よってk=0であり、M=λx1.x1≡αλx.xである。
πを⊢→p→pの導出で局所的な迂回を含まないものとする。定理 5.2の逆向きの主張により、∣π∣に β 基があればπに含意導入の直後の含意除去が現れるので、∣π∣は β 正規形である。定理 3.1 (1)により∅⊢∣π∣:p→pであるから、前段により∣π∣≡αλx.xである。
▨