ラムダ計算の話

113 Views

November 03, 18

スライド概要

第3回 関西日曜数学 友の会
https://kansai-sunday-math.connpass.com/event/100007/

ラムダ計算の話 - usami-k 数学日記
https://usami-k.hatenadiary.jp/entry/2019/02/27/220022

profile-image

https://usami-k.github.io/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

ラムダ計算の話 宇佐見公輔 第3回 関西日曜数学 友の会

2.

自己紹介 • 宇佐見公輔(@usamik26) • 大学時代は数学専攻(代数、応用数理) • 現在はプログラマ(フェンリル株式会社、iOS アプリ開発)

3.

ラムダ計算(λ-calculus)とは • 計算機科学で出てくる体系のひとつ • プログラミング言語の型システムとの関連 • 関数型プログラミングを支える理論

4.

ラムダ記法 • 数学で使われる関数の表記法 • ラムダ記法による関数の表記法

5.

ラムダ記号の意味合い • ラムダ記法における は、 や のような意味合いの記号 • そう思って並べてみるとなんとなく似ている気がする

6.

ラムダ記法:関数の適用 • ラムダ記法で関数に値を代入する • 記法の比較:関数 に値を代入する

7.

ラムダ記法:多変数関数 • 多変数関数のラムダ記法 • これは1変数関数の組み合わせと同一視できる(カリー化)

8.

ラムダ記法:高階関数 • に関数 を2回適用する関数の例 • カリー化して書けば

9.

ラムダ式(λ-term)の導入 • ラムダ記法そのものを、より抽象的に取り扱う • そのために、記号列としてのラムダ式を導入する

10.

ラムダ式の定義 • 可算無限濃度の集合 が与えられているとする • 以下で再帰的に定義される記号列の集合 の要素をラムダ式 と呼ぶ(なお、括弧は一定のルールで取り外すことができる) • (1) • (2) • (3) のとき のとき のとき

11.

ラムダ式とラムダ記法 • は変数の集合を意味する • (1) は、変数はラムダ式であることを意味する • (2) は、関数のラムダ記法に対応する • (3) は、関数適用のラムダ記法に対応する

12.

ラムダ計算 • こうして定義されたラムダ式の性質を見ることで、ラムダ記法 で記述された関数のなす世界を研究するのが、ラムダ計算の理 論である • 特に、個々の関数( とか と か)の性質によらず、関数の世界に内在する性質を考察する

13.

ラムダ式についての補足 • 記号列として定義されたラムダ式が、常にラムダ記法に対応し て意味を持つとは限らない(ラムダ記法としてありえない式が できてしまう) • しかし、まずはそれを許容して議論する方が見通しが良くなる • その後、型(関数の定義域や値域に相当する概念)を導入する ことで、ラムダ記法との対応の議論ができる

14.

ベータ変換 • 以下で再帰的に定義されるラムダ式の変換をベータ変換と呼ぶ • (1) • (2) • ここで 式 ならば は、ラムダ式 および の中の変数 に置き換えたラムダ式のことである(代入) をラムダ

15.

代入についての補足 • ラムダ式 の中の変数 があるとき • 代入 について、 という部分式 を束縛変数、そうでないとき自由変数と呼ぶ を考えるとき、 の自由変数は の束縛 変数ではないものとする • また の束縛変数は 以外の変数に置き換えて考える(一 般に、ラムダ式の束縛変数をその式に現れない別の変数に置き 換えた式を、元の式と同一視する)

16.

ベータ変換の例 各ラムダ式の自由変数は他の式の束縛変数ではないものとする

17.

Church-Rosser の定理 • ベータ変換のしかたは一通りではない • Church-Rosser の定理:ひとつのラムダ式からベータ変換で 得られたふたつのラムダ式は、何度かベータ変換を行うこと で、同じラムダ式にできる

18.

正規形 • Church-Rosser の定理により、ラムダ式 のステップで止まる(式中に から始めて有限 がなくなる)ベータ変換列があ るとき、最終結果は一致する • この最終結果を の正規形と呼ぶ • 与えられた関数(ラムダ記法)を機械的に処理して正規形を得 るのが、関数型プログラミング言語における計算である(計算 機科学の用語では評価と呼ぶ)

19.

さらなる話題・・・ • ここまでのラムダ計算は、型なしラムダ計算と呼ばれる • 型を導入した、型つきラムダ計算という体系がある • 型つきラムダ計算は、ラムダ記法との対応ができる • 型つきラムダ計算は、型を対象、ラムダ式を射として、圏をな す • これにより、圏論の議論が応用できる