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

β 簡約と β 正規形

型なしラムダ項の自由変数・束縛変数を見分け、捕獲を避けた代入 を行い、 をくり返して項の β 正規形を求められる(正規形をもたない も判定できる)

前提

中学までに習ったことだけで始められます。

説明

型なしラムダ計算では、関数の適用 を「本体 の中の を で置き換える」ことで計算します。この一歩を β 簡約といい、これ以上 β 簡約できない項を β 正規形といいます。この技能を身につけると、ラムダ項を機械的に計算して最終的な形(β 正規形)を求めたり、 のように計算がいつまでも終わらない項を見分けたりできます。チャーチ数による算術の計算や、プログラムの意味を調べる場面の基本操作です。

なぜそうしてよいのか

ラムダ項は、変数 、抽象 (「 を受け取って を返す関数」)、適用 (「 に を渡す」)の 3 種類から作られます。 の中の は に束縛されていて(束縛変数)、その名前に意味はありません。 と は同じ関数です(名前の付け替えを α 変換といい、α 変換で移り合う項は同じとみなします)。一方、どの にも束縛されていない変数は自由変数で、外から与えられる値を表します。例えば では が束縛変数、 が自由変数です。

関数 に を渡したら、「 の中の(自由に現れる) を に置き換えたもの」になるはずです。これが です。ただし素朴に文字を置き換えると意味が変わることがあります。 は「何を受け取っても を返す関数」ですが、 に を代入して にすると恒等関数になってしまいます。外から来た自由変数 が、内側の に「捕獲」されたためです。そこで、代入する前に内側の束縛変数を新しい名前に付け替え、 とします。これが捕獲を避けた代入で、こうすれば束縛変数の名前に意味がないという原則と矛盾しません。

項の中に の形の部分(β 基、レデックスという)が残っている限り β 簡約を続けられ、1 つも残らなくなった項が β 正規形です。β 正規形は、どの順序で簡約しても(たどり着けるなら)α 変換を除いて 1 つに決まることが知られています(チャーチ–ロッサーの定理)。ただし、どう簡約してもたどり着けない項もあります。 を 1 回 β 簡約すると、 の 2 つの に を入れて に戻ります。 の中にある β 基はこれ 1 つだけなので、どう簡約しても から抜け出せず、 は β 正規形をもちません。

手順

  1. 項の構造を読む。適用は左結合()、 の本体はできるだけ右まで伸びる()という約束で括弧を補う

  2. 各変数が束縛変数か自由変数かを見分ける。代入で捕獲が起こりそうなら、内側の束縛変数を新しい名前に付け替えておく(α 変換)

  3. の形の部分(β 基)を 1 つ選ぶ。迷ったら最も左外側のものを選ぶ(正規形があれば必ずたどり着ける選び方)

  4. の中の自由な だけを に置き換え、 を に書き換える

  5. β 基がなくなるまで 3・4 をくり返す。β 基がなくなればそれが β 正規形。簡約しても同じ形の項に戻るなど終わらないことがわかれば、正規形をもたないと判定する

例題

自然数 に対し、チャーチ数を と定める(例: 、)。 とするとき、項 の β 正規形はあるチャーチ数 になる。 を求めよ。

例題の解答

(手順 1) で、 と読む。

(手順 2) の中の は 自身の に束縛されていて、外の の とは別物である。混同を避けるため と名前を付け替える。 には自由変数がないので、代入で捕獲は起こらない。

(手順 3・4)いちばん外側の β 基で と代入する:

(手順 5 → 3・4)まだ β 基 が残るので、 と代入する( は内側の に捕獲されない):

さらに β 基 で と代入する:

(手順 5)この項には の形の部分がないので β 正規形である。これは が 3 個並んだ なので、。

答え:

よくある誤り

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

入口の問題

この技能を使う問題

この技能の次に学べること