計算理論・ラムダ計算の問題
原子型を ただ 1 つだけもつ単純型付きラムダ計算(チャーチ流、定数なし)を考える。矢印型は右結合()とし、 同値な項は同一視する。型
の閉じた項で、 正規形かつ 長形(-normal -long form)であるものは、ある項 を用いて の形に書ける。このような項のうち、 の中に変数 と が合わせてちょうど 回出現するもの( の出現回数と の出現回数の和が )の個数を求めよ。
この問題で使うもの
- 型の住人(η 長 β 正規形)の数え上げ(説明と入口の問題)
この問題を解けるようになるまで(9 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
正規 長形の本体 は型 の項で、「型 の変数」「」「」のどれかの形になることを確かめ、文脈にある型 の変数の個数を追跡しよう。
ヒント 2
型 の変数が 個ある文脈で の出現回数の和が の項の個数を とすると、、。求めるのは 。
ヒント 3
、、、 となる。次に を求め、 を計算する。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
項の形の決定. 正規形かつ 長形の項では、型 の部分項は「頭変数に、その変数の型が要求する個数の引数をすべて与えたもの」であり、矢印型の引数は 抽象の形で現れる。本体 の文脈にある変数は 、 と、 の引数の で束縛された型 の変数たちである。したがって、型 の項 は次のどれかである。
- 文脈にある型 の変数
- ( は型 の項)
- ( は を文脈に加えた型 の項)
同値で同一視するので、各 で新しい(互いに異なる)変数が束縛されると考えてよく、変数の選び方は「文脈にある型 の変数の個数」だけある。
漸化式. 型 の変数が 個ある文脈で、 の出現回数の和がちょうど である型 の項の個数を とする。上の分類から
が成り立つ(第 1 項が 、第 2 項が の場合)。求める個数は である。
計算.
より
。
より
、
、
。
。
。
(確認: に対応する項は 、、 の 3 つである。)
よって求める個数は である。
別解
, のもとで、型 の 正規 長形の項 は次のいずれかである。
- 文脈中の型 の変数 ( の引数の で束縛されたもの)。重み 0。
- ( は型 の項)。重み 。
- ( は型 の項で、文脈に が 1 つ増える)。重み 。
ここで重みは の出現回数とする。文脈にある型 の変数が 個のとき、重み の項の個数を とおく。生成関数 は
を満たす。これを係数比較して順に計算する。
に必要な値は次のとおり。
- ,
- , ,
-
よって
検算: ( のみ)、(, , )は直接数え上げと一致した。
答え: 82