技能一覧 › 大学院数学 計算理論・ラムダ計算

型の住人(η 長 β 正規形)の数え上げ

型 の η 長 β 正規形の閉じた項を、仮定 のうち結論が のものを頭に選び引数を再帰的に埋める形で場合分けし、 のような型の住人の個数を求められる

前提

この技能までの道筋(8 技能)
算数中学高校大学大学院

読み込み中…

右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。

一覧で見る(前提が先)
  1. β 簡約と β 正規形 (大学院数学 計算理論・ラムダ計算)
  2. 樹形図で数え上げる (算数 場合の数)
  3. 積の法則と和の法則 (算数 場合の数)
  4. 和の法則・積の法則と樹形図 (数学A 場合の数と確率)
  5. 順列・円順列・重複順列 (数学A 場合の数と確率)
  6. 組合せ (数学A 場合の数と確率)
  7. カタラン数 (大学数学 離散数学・組合せ論)
  8. 単純型付けと型の数え上げ (大学院数学 計算理論・ラムダ計算)

説明

単純型付きラムダ計算で、与えられた型をもつ閉じた項(型の住人)が「本質的に何通りあるか」を数えます。項を η 長 β 正規形という決まった形にそろえると、項は「どの仮定を頭に使うか」と「その引数をどう埋めるか」の選択の列で表され、樹形図と積・和の法則で数えられます。型を命題とみたときの証明の数え上げに当たり、型の構造の理解や、型から項が 1 つに決まるか(プログラムの一意性)の判定に使います。

なぜそうしてよいのか

β 正規形の項を考えます。項が 抽象なら中身を見ます。 抽象でないなら、それは適用 を左から展開した形で、頭 は 抽象ではありえません( 抽象に引数を適用すると β 基になってしまうため)。頭は適用でもないので、頭は変数です。したがって β 正規形はいつも ( は変数、各 も β 正規形)の形をしています。

さらに η 長(η-long)とは、「矢印型の項は必ず で包み、変数の適用は原子型になるまで引数を全部与える」という約束です。たとえば をそのまま引数に渡さず と書きます。この約束のもとでは、型 ( は原子型)の項は必ず となり、頭 はそのとき使える変数のうち型が (結論がちょうど )のもの、 は型 の η 長 β 正規形です。どの閉じた項も βη 変換でちょうど 1 つの η 長 β 正規形(束縛変数の名前の付け替えを除く)に移ることが知られているので、この形の項を数えればよく、形が違えば別の住人です。

この形は「ゴール(いま作るべき型)」と「文脈(使える変数)」の組で再帰的に決まります。ゴールが矢印型なら引数を文脈に足して結論の原子型をゴールにし、原子型 なら結論が の変数を頭に選んで、その引数の型を新しいゴールにします。選び方は頭ごとに和、引数ごとに積で数えます。頭の候補がなければその分岐は 通りです。無限個になるかどうかには注意が要ります。ある(文脈, ゴール) から分岐をたどって、同じゴールで文脈の型が少なくとも元と同じだけそろった組に戻ってくる(循環する)とします。この循環をいくらでも重ねられるのは、(i) 循環の途中で埋めるほかの引数がすべて住人をもち、(ii) 自身に住人が少なくとも 1 つある(循環を止める「基底」がある)ときに限ります。このとき循環を 回重ねた項がすべて別の住人になって無限個です。基底がなければ循環は永久に終わらず、項は 1 つも完成しません。たとえば では、ゴール の頭の候補は だけで、その引数のゴールがまた になります。 は有限の項にならないので、住人は 個です。

手順

  1. 型を右結合で ( は原子型)と読み、仮定 を文脈に入れる。ゴールは原子型

  2. 文脈の変数のうち、結論(矢印の一番右)がゴールの原子型と一致するものを頭の候補としてすべて挙げる。候補がなければ 通り

  3. 各候補 について、引数 のゴールを とする。 が矢印型なら、その仮定を新しい変数として文脈に足してから( で包んで)同じ手順を再帰的に行う

  4. 頭の選び方ごとの個数は引数の個数の積、全体は頭の候補にわたる和:

  5. 同じゴール(文脈の型は元以上)に戻る循環があるときは、循環の途中のほかの引数がすべて住人をもち、かつそのゴールに循環を使わない住人が少なくとも 1 つあるときに限り無限個と判定する。基底がなければその分岐は 個(例: は 個)

例題

原子型 について、型 をもつ閉じた η 長 β 正規形の項の個数を求めよ。

例題の解答

【手順 1】右結合で読むと、仮定は , , , で、ゴールは 。

【手順 2】結論が の変数は だけ。よって項は の形。

【手順 3】 のゴールは で矢印型なので、新しい変数 を文脈に足して , とする。文脈は 。
- (ゴール )の頭の候補(手順 2): 結論が の変数は と の 2 つ。
- どちらも引数は型 を 1 つとる。ゴール の頭の候補は と の 2 つで、どちらも引数なし( は原子型)。

【手順 4】 の個数は、頭 の場合 、頭 の場合 で、和は 。 の引数は の 1 つなので、全体は 。

【手順 5】たどった分岐のゴールは と進むだけで、同じゴールに戻る循環はないので有限。住人は
, , , の 個。

答え:

答え:

よくある誤り

この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。

入口の問題

この技能を使う問題