計算理論・ラムダ計算の問題
型なしラムダ計算を考え、項は 同値なものを同一視する。適用 は を関数、 を引数とする適用を表し、適用は左結合とする()。代入 は変数の捕獲を起こさない代入(必要なら束縛変数を付け替える)とする。 を 1 ステップの 簡約(任意の部分項で行ってよい)、 をその反射推移閉包とする。 基( の形の部分項)を含まない項を 正規形といい、 となる 正規形 を の 正規形という。
項 と 以上の整数 に対して , と定め、 以上の整数 のチャーチ数を
とする(, は異なる変数)。さらに、互いに異なる変数 を用いて
と定める。
チャーチ・ロッサーの定理(したがって、ある項が 正規形をもつならそれは一意であること)は用いてよい。
を 以上の整数とするとき、項 の 正規形が であることを証明せよ。
この問題で使うもの
- β 簡約と β 正規形(説明と入口の問題)
- チャーチ数と対による計算(説明と入口の問題)
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
を示し、チャーチ数が 正規形であることと正規形の一意性で結論します。まず がチャーチ数に対してどんな数を返すかを調べましょう。
ヒント 2
鍵になるのは、任意の項 について となることと、 となることです。 も使います。
ヒント 3
の内側を、内側の から順に簡約すると が何回並ぶかを数えます。そのあと とし、 を に関する帰納法で調べます。
採点の観点と模範解答
自分で証明を書いてから、採点の観点で見比べてください。
採点の観点を見る
任意の項 について を、束縛変数の付け替えで変数の捕獲を避けて示している(2 点)
から、内側の項を文脈の中で順に簡約し 、 を得て を導いている(3 点)
を、 を使って に関する帰納法で示している(2 点)
と合わせて を得ている(1 点)
チャーチ数が 基を含まない(適用の関数部分がすべて変数 )ことを示し、チャーチ・ロッサーの定理による正規形の一意性から結論している(2 点)
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
模範解答を読む
示すことは 2 つある: (A) 、(B) が 正規形であること。この 2 つが示されれば、 は の 正規形の 1 つであり、正規形の一意性(チャーチ・ロッサーの定理から従う)により、それが の 正規形である。
以下、 簡約が任意の部分項で行えること(文脈について閉じていること)を使う。すなわち ならば , , である(1 ステップごとに文脈の中で同じ簡約をすればよい)。また と は自由変数をもたない閉項である。
補題 0. 項 と に対し (構文的に等しい)。
証明. に関する帰納法。 では両辺とも 。 で成り立てば 。
補題 1. 任意の と任意の項 に対し 。
証明. 項は 同値なものを同一視するので、 と書いてよい。ここで は に自由に現れない変数で、 と異なるものにとる。 簡約の定義より
である( は に自由に現れないので、束縛変数 による捕獲は起こらない。また の中で を に置き換えると になることは に関する帰納法で直ちにわかる)。文脈閉包により 。さらに
である。ここで 2 つ目の等号は、代入が適用の各部分に分配されること( に関する帰納法)により、3 つ目の等号は が に自由に現れないので となることによる。合わせて ( のときは で、同じ議論に含まれる)。
補題 2. 任意の に対し 。
証明. は閉項なので、代入 で変数の捕獲は起こらず
内側の部分項について、補題 1(, )と補題 0 より
これを引数の位置で使うと であり、再び補題 1(, )と補題 0 より
の内側で簡約できるので
補題 3. 任意の に対し 。
証明. に関する帰納法。 では (反射性)。 を仮定すると、文脈閉包と補題 2()より
(A) の証明. 補題 1(, , )より であり、補題 3()より 。推移性より 。
(B) の証明. の部分項は、 自身、、()、および変数 である。このうち適用の形をしているのは ()だけで、その関数部分は変数 であり 抽象ではない。よって は 基を含まず、 正規形である。特に は 正規形である。
結論. (A) より 、(B) より は 正規形である。チャーチ・ロッサーの定理より 正規形は一意なので、任意の に対して の 正規形は である。