型なしラムダ計算を考える。適用は左結合()、抽象は右に最大限のびるものとし、 同値な項は同一視する。簡約は 簡約のみを考える。 以上の整数 に対してチャーチ数を
と定め、対と射影を
と定める。さらに
とおき、項
を考える。 の 正規形はあるチャーチ数 である。 を求めよ。
チャーチ数と対による計算
チャーチ数 について 、 などを使い、対 と射影を組み合わせた項の反復を数列の漸化式に直して、正規形のチャーチ数 の を求められる
前提
- β 簡約と β 正規形 (大学院数学 計算理論・ラムダ計算)
説明
チャーチ数 (, )は「受け取った関数を 回くり返し適用する」項です。この技能では、 や ()を使って、チャーチ数で反復を回す項の値を計算します。とくに、対 に 2 つのチャーチ数を入れて 1 ステップずつ更新する項を、数列の連立漸化式に読みかえ、最終的な β 正規形 の を求められるようになります。
なぜそうしてよいのか
まず を β 簡約すると です( に が自由に現れるときは、束縛変数 を名前替えしてから代入します)。つまり は「 を 回適用する反復子」で、 は内側から順に が効いていきます。同じ計算で、和 と後者 について 、 がわかります。
次に です。 なので、 は関数 を「 を 回合成した関数」に変えます。 は「 に を 回施す」項で、 に を入れると と 回で になります。 のとき実際に簡約を進めると正規形 に到達し、 です(指数は「後ろの数の、前の数乗」)。
対は で、射影 , を使うと 、 と取り出せます。そこで更新 が を満たせば、帰納法で (, )となり、項の計算が漸化式の計算に置きかわります。β 同値な項の β 正規形はあれば 1 つに決まる(チャーチ・ロッサーの定理)ので、こうして得た がもとの項の正規形です。
手順
項の中のチャーチ数どうしの適用を先に整理する。()、、 を使い、反復回数を 1 つのチャーチ数 にまとめる
により、「初期値 に更新 を 回適用したもの」と読みかえる
対の更新 を 1 回だけ に適用し、, を使って の形にし、漸化式 , を読み取る
初期値 から漸化式を解き、 を求める
最後に外側の射影などを施して、β 正規形 の を答える
例題
、、、、、 とし、 とおく。項 の β 正規形は の形になる。 を求めよ。
例題の解答
【手順 1】反復回数をまとめる。 なので 。
【手順 2】 より、。
【手順 3】1 回の更新を調べる。
ここで 、 だから、、 より
よって漸化式は , 。
【手順 4】初期値 , から 、。帰納法で なので、。
【手順 5】。 は β 正規形で、正規形は 1 つに決まるから 。
答え:
よくある誤り
を としてしまう誤り。前の が「 を 回くり返す」ので、正しくは (例: であって ではない)。
としてしまう誤り。 で、これはすでに β 正規形であり とは異なる。 は のときだけ使える。
反復回数を 1 つずらしてしまう誤り。 で は 回適用され、初期値 が第 0 項にあたる。 が表すのは であって や ではない。
射影の向きを取り違える誤り。 に を渡すと 1 番目の が出るので、正しくは , 。更新式の第 1 成分・第 2 成分の漸化式を逆に読まないこと。
この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。
入口の問題
この技能を使う問題
型なしラムダ計算を考える。適用は左結合()、抽象は右に最大限のびるものとし、 同値な項は同一視する。簡約は 簡約のみを考える( 簡約は考えない)。 以上の整数 に対してチャーチ数を と定め()、項 を と定める。項 は 正規形をもち、それはあるチャーチ数 に一致する。 を求めよ。
型なしラムダ計算を考える。適用は左結合()、抽象は右に最大限のびるものとし、 同値な項は同一視する。簡約は 簡約のみを考える。 以上の整数 に対してチャーチ数を
と定め、右辺の本体を と書く()。項
は 正規形をもち、その正規形は、ある 以上の整数 に対して と 同値になる。この を求めよ。型なしラムダ計算を考え、項は 同値なものを同一視する。適用 は を関数、 を引数とする適用を表し、適用は左結合とする()。代入 は変数の捕獲を起こさない代入(必要なら束縛変数を付け替える)とする。 を 1 ステップの 簡約(任意の部分項で行ってよい)、 をその反射推移閉包とする。 基( の形の部分項)を含まない項を 正規形といい、 となる 正規形 を の 正規形という。
項 と 以上の整数 に対して , と定め、 以上の整数 のチャーチ数を
とする(, は異なる変数)。さらに、互いに異なる変数 を用いて
と定める。チャーチ・ロッサーの定理(したがって、ある項が 正規形をもつならそれは一意であること)は用いてよい。
を 以上の整数とするとき、項 の 正規形が であることを証明せよ。
型なしラムダ計算を考える。適用は左結合()、抽象は右に最大限のびるものとし、 同値な項は同一視する。簡約は 簡約のみを考える( 簡約は考えない)。 以上の整数 に対してチャーチ数を
で定める。正規順序戦略とは、各ステップで、項に含まれる 基( の形の部分項)のうち最も左外側にあるもの(項を文字列として書いたときに、その 基の先頭が最も左にあるもの)を 1 回だけ縮約する戦略である。
項 から出発して正規順序戦略で 簡約を繰り返すと、有限回で 正規形に到達する。正規形に到達するまでに行われる 簡約の回数(ステップ数)を求めよ。
型なしラムダ計算を考える。適用は左結合()、抽象は右に最大限のびるものとし、 同値な項は同一視する。簡約は 簡約のみを考える( 簡約は考えない)。 以上の整数 に対してチャーチ数を
と定める()。さらに次の項を定める。
このとき項
は 正規形をもち、それはあるチャーチ数 に一致する。整数 を求めよ。型なしラムダ計算を考える。適用は左結合()とし、 同値な項は同一視する。 以上の整数 に対してチャーチ数を
で定める。さらに
とおき、
とする。 は 正規形をもち、それはあるチャーチ数 に一致する。 を求めよ。