計算理論・ラムダ計算の問題
原子型として ただ 1 つをもち、定数をもたない単純型付きラムダ計算(チャーチ流)を考える。型は で生成される式とし、括弧の付け方(木としての形)が異なる型は異なる型とみなす。型 が住人をもつとは、型 の閉じた項(自由変数をもたない項)が存在することをいう。
矢印 をちょうど 個含む型(したがって をちょうど 個含む型)のうち、住人をもつものの個数を求めよ。
この問題で使うもの
- 単純型付けと型の数え上げ(説明と入口の問題)
- 型の住人(η 長 β 正規形)の数え上げ(説明と入口の問題)
- カタラン数(説明と入口の問題)
この問題を解けるようになるまで(9 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
型 が住人をもつかどうかが、 と が住人をもつかどうかだけで決まることを示しましょう。原子型 自身は住人をもちません。
ヒント 2
「 が住人をもつ」か「 と がともに住人をもつ」のどちらかが成り立つことを帰納法で示すと、 が住人をもつのは「 が住人をもつ、または が住人をもたない」ときだとわかります。
ヒント 3
矢印 個の型のうち住人をもたないものの個数を 、もつものを とすると、、、(カタラン数)です。 と順に計算します。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
住人をもつための条件. 次の主張を型の構成に関する帰納法で示す。
> 任意の型 について、「 が住人をもつ」か「型 と型 がともに住人をもつ」のどちらか一方がちょうど成り立つ。
まず、両方が同時に成り立つことはない。もし と が閉じた項なら は型 の閉じた項になるが、単純型付きラムダ計算は強正規化性をもつので、その 正規形は型 の閉じた正規形である。閉じた正規形は抽象 の形か、変数を先頭にもつ の形だが、前者の型は矢印型であり、後者は閉じていないので、型 の閉じた正規形は存在しない。よって は住人をもたず、矛盾。
少なくとも一方が成り立つことを帰納法で示す。 のときは が の住人なので後者が成り立つ。 のとき、帰納法の仮定を に使う。
- が住人 をもつ場合: が の住人。
- が住人をもたず、 も住人をもたない場合: 閉じた項 と があるので、 が の住人。
- が住人をもたず、 が住人 をもつ場合: 閉じた項 , を使うと、、 となり後者が成り立つ。
以上より、次がわかる。
つまり、 を「偽」、住人をもつことを「真」と読むと、 は含意の真理値表に従う。
数え上げ. 矢印を 個含む型(葉が 個の二分木)全体の個数はカタラン数 である。そのうち住人をもつもの・もたないものの個数を とする()。 が住人をもたないのは「 が住人をもち、 が住人をもたない」ときに限るので、 の矢印の個数を 、 の矢印の個数を ()として
- : , ,
- : ,
- : ,
- : ,
- : ,
- : ,
したがって求める個数は である。
別解
カリー・ハワード対応により、型が住人をもつことは、その型を含意のみの直観主義命題論理の論理式(命題変数は だけ)とみて証明可能であることと同値である。
命題変数が 1 つ のとき、含意のみの論理式は直観主義論理で か ()のどちらかと同値になる。実際 、、、 より、 の値は
- の値が かつ の値が のとき
- それ以外( が 、または も も )のとき
である。住人をもつ型 値が の型。
矢印をちょうど 個含む型の総数は、カタラン数 ()。値が (住人をもたない)の個数を 、住人をもつ個数を とする。(型 )、 では ( が住人をもち、 が住人をもたない場合)。
- :
- :
- :
- :
- :
- :
検算: で住人をもたない型は のみ( は が住人)で に合う。 では のみが住人をもたない(ここで の が値 なので …)ように見えるが、定義どおり が住人をもち の型 を とした ではなく、、 すなわち が唯一の住人をもたない型で、。
よって求める個数は 。