計算理論・ラムダ計算の問題
互いに異なる つの原子型 をもち、定数をもたない単純型付きラムダ計算(チャーチ流)を考える。型は
で生成される式とし、括弧の付け方(木としての形)が異なる型や、原子型の並びが異なる型は異なる型とみなす(たとえば と は異なる型であり、 と も異なる型である)。
記号 をちょうど 個含む型の個数を求めよ。
この問題で使うもの
- 単純型付けと型の数え上げ(説明と入口の問題)
この問題を解けるようになるまで(8 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
技能「単純型付けと型の数え上げ」を使う。型 を、根が の二分木とみなして数えよう。
ヒント 2
が 個の型は、内部節点 個の二分木の形(カタラン数 通り)と、 個の葉への原子型の割り当てで決まる。
ヒント 3
のとき木の形は 通り、葉は 個で、各葉に 通りの原子型を選べる。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
型を二分木とみる. 型 は「根が で、左の子が 、右の子が 」という二分木と同じものである。原子型は葉にあたる。したがって をちょうど 個含む型は、
- 内部節点()が 個の(左右を区別する)二分木の形を つ選び、
- その葉 個のそれぞれに原子型を つずつ割り当てる
ことで、ちょうど 通りずつ得られる。
木の形の数. 内部節点が 個の二分木の形はカタラン数 個ある。 では
実際、右結合で書くと次の つの形である( は原子型の入る場所):
葉への割り当て. 葉は 個あり、それぞれに の 通りを独立に選べるので、重複順列で 通り。
積の法則. 以上より、求める個数は
別解
をちょうど 個含む型は、内部節点 個の二分木(形)に、 個の葉へ原子型 を割り当てたものと一対一に対応する。 のとき、二分木の形の個数はカタラン数 、葉は 個で各 通りなので 通り。よって 。
検算: の個数が の型の個数を とすると , 。, , ではなく と の和で 。