markdown
無型λ計算の基本md b7d6013
lecture/information/programming-languages/lambda-calculus/lambda-calculus-basics.lecture.n.md
Download PDF

無型むがたλ計算けいさん基本きほん

informationprogramming-languageslambda-calculuslecture

1導入どうにゅう

この講義こうぎでは、無型むがたλ計算けいさん構文こうぶんとβ簡約かんやく説明せつめいする。置換ちかんによる変数捕獲へんすうほかく回避かいひするため、自由変数じゆうへんすうとα同値どうちをβ簡約かんやくよりさき確認かくにんする。ここでは型判断かたはんだん導入どうにゅうしない。

21. 構文こうぶん結合規則けつごうきそく

変数へんすう集合しゅうごう可算無限集合かさんむげんしゅうごうとする。λこう tつぎ文法ぶんぽう帰納的きのうてき定義ていぎする。

t::=xλx.ttt

λx.tx束縛そくばくするλ抽象ちゅうしょうts適用てきようである。適用てきよう左結合ひだりけつごうであり、λ抽象ちゅうしょう本体ほんたい可能かのうかぎみぎ延長えんちょうする。したがって、tuv=(tu)vλx.tu=λx.(tu) である。

32. 自由変数じゆうへんすうとα同値どうち

自由変数集合じゆうへんすうしゅうごう FV(t)つぎ定義ていぎする。

FV(x)={x},FV(λx.t)=FV(t){x},FV(tu)=FV(t)FV(u).

束縛変数そくばくへんすう一貫いっかんした改名かいめいだけがことなるこうをα同値どうちとする。たとえば、λx.x=αλz.z である。ただし、z本体ほんたい自由じゆう出現しゅつげんする場合ばあいxz改名かいめいできない。

43. 捕獲回避置換ほかくかいひちかん

t[x:=s] は、t における x自由出現じゆうしゅつげんs置換ちかんするこうである。xFV(t) なら t[x:=s]=t とする。変数へんすう適用てきようでは構造こうぞう沿って定義ていぎし、λ抽象ちゅうしょうではつぎ条件じょうけんもちいる。

(\lambda y.t)[x:=s]= \begin{cases} \lambda y.t & y=x,\\ \lambda y.(t[x:=s]) & y\ne x\ \text{かつ}\ y\notin\mathrm{FV}(s),\\ \lambda z.((t[y:=z])[x:=s]) & y\ne x\ \text{かつ}\ y\in\mathrm{FV}(s), \end{cases}

最後さいご場合ばあいでは、ts のどこにも出現しゅつげんせず、x ともことなるあたらしい変数へんすう(fresh variable)z選択せんたくする。たとえば、(λy.x)[x:=y] をそのまま λy.y とすると、置換項ちかんこう自由変数じゆうへんすう y捕獲ほかくされる。さきにα改名かいめいして、(λy.x)[x:=y]=α(λz.x)[x:=y]=λz.y とする。

54. β簡約かんやく正規形せいきけい

(λx.t)s という部分項ぶぶんこうをβ簡約基かんやくきといい、捕獲回避置換ほかくかいひちかんによってつぎのように簡約かんやくする。

(λx.t)sβt[x:=s].

こう任意にんい位置いちにあるβ簡約基かんやくき一段いちだん簡約かんやくできる。β簡約基かんやくきふくまないこうをβ正規形せいきけいという。

(λx.λy.x)abβ(λy.a)bβa.

一方いっぽうΩ=(λx.xx)(λx.xx) のβ簡約基かんやくき項全体こうぜんたいだけであり、その簡約かんやくΩβΩもどる。したがって、どの簡約列かんやくれつもβ正規形せいきけい到達とうたつしない。無型むがたλ計算けいさんでは停止性ていしせい一般いっぱん保証ほしょうできない。

65. 評価戦略ひょうかせんりゃく

β簡約かんやく簡約基かんやくき選択順せんたくじゅん規定きていしない。最左外側さいさひだりそとがわ簡約基かんやくき選択せんたくする正規順序せいきじゅんじょと、最左内側さいさひだりうちがわ簡約基かんやくき選択せんたくする適用順序てきようじゅんじょでは、停止挙動ていしきょどうことなりうる。

(λx.a)Ω

正規順序せいきじゅんじょでは外側そとがわさき簡約かんやくして a到達とうたつする。適用順序てきようじゅんじょでは Ω簡約かんやく反復はんぷくするため停止ていししない。これは戦略せんりゃく停止性ていしせいであり、β簡約規則かんやくきそくそのもののではない。β正規形せいきけい存在そんざいするこうについて、正規順序せいきじゅんじょはそれに到達とうたつする。

76. η変換へんかんとの区別くべつ

xFV(f) のとき、λx.fx=ηf とするη変換へんかんは、関数かんすう外延的がいえんてき同一視どういつしあらわす。これは関数適用かんすうてきよう実行じっこうするβ簡約かんやくとはべつ規則きそくである。

8まとめ

無型むがたλ計算けいさん計算けいさんは、α同値どうち考慮こうりょした捕獲回避置換ほかくかいひちかんによるβ簡約かんやくである。正規形せいきけい存在そんざいと、特定とくてい評価戦略ひょうかせんりゃく停止ていしすることは区別くべつする必要ひつようがある。

data/lecture/information/programming-languages/foundation/substitution-and-alpha-equivalence-basics.lecture.n.md
raw .n.md をコピー
loc をコピー (filepath:line ~ line)
copy share link
copy encoded share link
path をコピー
copy share link
copy encoded share link
copy share link
copy encoded share link
タブを全て閉じる