プログラム意味論スレッド

このエントリーをはてなブックマークに追加
1ラムダくん
λ式のバッカス記法による定義
 x∈U {変数全体}
 E∈Λ {λ式全体}
とするとき、
 E ::= x|(E0 E1)|(λx.E)

関数適用 (MN)
 Mが関数、Nが引数
関数抽象 (λx.M)
 束縛変数xによるMのλ抽象
2ラムダくん:1999/08/30(月) 13:42
定義:部分λ式集合 sub(E)
(1) Eが変数x → {x}
(2) Eが(MN) → sub(M)∪sub(N)∪{E}
(3) Eが(λx.M) → sub(M)∪{E}

部分式 〜 sub(E) の元
xのEにおける出現 〜 部分式であること
束縛された出現 〜 zが(λz.M)の中に出現するとき
自由な出現 〜 束縛されていない出現
閉式 〜 自由な出現をもたないλ式
3ラムダくん:1999/09/01(水) 15:26
Mで自由なxの出現をすべてNでおきかえたものを
Subst[x>N] M、と書く。

定義:α変換
yがQに部分式としても束縛変数としても出現しないとき
E=(λx.Q)で、F=(λy.Subst[x>y] Q)のとき、
EはFにα変換可能であるといい、E{α}>Fと書く。

定義:β変換
Rで自由に出現するどの変数もQで束縛されないとき
E=((λx.Q)R)で、F=Subst[x>R] Qのとき、
EはFにβ変換可能であるといい、E{β}>Fと書く。

α変換は関数の仮引数を形式的に変更すること、
β変換は関数の仮引数に実引数を代入すること
に対応する。

((λx.Q)R)の形のλ式をβ基とよぶ。
4このスレッド:1999/09/01(水) 17:19
つまらないんだけど、いつまで続けるの?
5ラムダくん
理解すれば面白くなりますよん。ではでは。