• 検索結果がありません。

1 型なしラムダ計算

N/A
N/A
Protected

Academic year: 2022

シェア "1 型なしラムダ計算"

Copied!
29
0
0

読み込み中.... (全文を見る)

全文

(1)

集中講義ハンドアウトおよびレポート課題 

( 2015 12 15 – 12 18 日、東北大学)

京都大学数理解析研究所 照井一成 terui@kurims.kyoto-u.ac.jp

最終更新:2015年12月23日

更新履歴

「優」確定に必要な⋆の数を8つから7つに変更。

1 型なしラムダ計算

1.1 定義

ラムダ項. 変数の可算集合Varが与えられているとする。ラムダ項を次の文法で定義する。

M, N ::= x |(λx.M) |(M N).

ただしx∈Var. (λx.M)をラムダ抽象といい、(M N)を適用という。ラムダ項全体の集合 をTermと書く。

かっこは適宜省略する。また、

λx1· · ·xn.M ≡ (λx1.· · ·(λxn−1.(λxn.M))· · ·) M N1· · ·Nn ≡ (· · ·((M N1)N2)· · ·Nn)

とする。

ラムダ項λx.Mにおいて、λxはMの中に現れるxを束縛する。どのようなλxにも束 縛されない変数を自由変数という。Mに含まれる自由変数の集合をfv(M)と書く。自由 変数を含まないラムダ項を閉項という。

項の代入. ラムダ項M の中に現れる自由変数xに注目するときには、M[x]のように書 く。そしてM[x]の中に現れる自由変数xの出現全てにNを代入して得られるラムダ項を M[N]またはM[N/x]と書く。

α規約. 束縛変数の名前は、束縛関係を変えない限り自由に付け替えてよい。それゆえ λx.M[x]とλy.M[y]は同じラムダ項を表す。

(2)

変数規約. ラムダ項をラムダ項に代入するときには、新たな束縛関係が生じないよう、

束縛変数の名前を付け替えてから代入する。ゆえにM[y] ≡ (λx.xy)のときM[(xz)]は

(λx.x(xz))ではない。そうではなく、束縛変数xをwと名前変えし、M[y]≡(λw.wy)と

した上で、M[(xz)]≡(λw.w(xz))とする。

β簡約 2項関係→β⊆Term2を次のように定義する。

(λx.M[x])N →β M[N]

M →β N λx.M →β λx.N M →β N

KM →β KN

M →β N M K→β N K

(λx.M[x])N の形のラムダ項をβ基という。

例.

(λx.x(xy))(λz.wz) →β (λz.wz)((λz.wz)y) →β (λz.wz)(wy) →β w(wy).

関係→βを含む最小の前順序(反射的推移的関係)を→βとかく。また、関係βを含 む最小の同値関係を=βとかく。それ以上β簡約できないラムダ項(つまり(→β)−1極小 元)を正規形という。とくにM →β N でNがそれ以上β簡約できないとき、N のこと をMの正規形という。与えられたラムダ項の正規形を求めることを正規化という。

上の例により、(λx.x(xy))(λz.wz) →β w(wy)であり、またw((λz.wz)y) =β (λz.wz)(wy) である。w(wy)は正規形である。

1.2 ラムダ項を用いた関数表現

恒等関数・関数合成.

id:=λz.z, M1◦M2:=λz.M1(M2z), M1◦ · · · ◦Mn:=λz.M1(M2· · ·(Mnz)· · ·) ただしzM1, . . . , Mnの中には現れない新しい変数とする。次が成り立つ。

idM →β M (M1◦M2)N →β M1(M2N) (M1◦M2)◦M3β M1◦M2◦M3 M1◦(M2◦M3) →β M1◦M2◦M3 ブール値・ブール関数.

true := λxy.x false := λxy.y

neg := λbxy.byx conj := λb1b2xy.b1(b2xy)y 次のことに注意する。

neg≡λb.λx.λy.(by)x, true≡λx.λy.x すると

neg true→β λx.λy.((λx.λy.x)y)x→β λx.λy.(λy.y)x→β λx.λy.y≡false.

同様にしてneg false→β trueも言える。

(3)

順序対・条件文.

hM1, M2i:=λz.zM1M2, proj1M :=Mtrue, proj2M :=Mfalse.

ただしz6∈fv(M1)∪fv(M2). このようにすれば

proj1hM1, M2i →β M1, proj2hM1, M2i →β M2 となる。また、

ifN thenM1 elseM2 := N M1M2

と定義すれば、

if true thenM1 elseM2β M1, if false thenM1 elseM2β M2 が成り立つ。

チャーチ数項と繰り返し.

0 := λf.id 1 := λf z.f z n := λf. f◦ · · · ◦f

| {z }

n

(n >1) iter := λf gm. mf g

次が成り立つ。

iterM N n →β nM N →β (M◦ · · · ◦M

| {z }

n

)N →β M(M· · ·(M

| {z }

n

N)· · ·).

後続関数・足し算・掛け算・べき乗

suc := λmf. f ◦(mf) add := λnmf.(nf)◦(mf) mult := λnm. n◦m exp := λnm. mn.

例えば足し算について見てみると

add 3 2→β λf.(3f)◦(2f)→β λf.(f◦f ◦f)◦(f ◦f)→β λf.f◦f◦f◦f ◦f ≡5.

原始再帰法

rec:=λf gn.proj2(iter(λhm, hi.hsucm, f mhi)h0, gin) ここでλhm, hi.M(m, h)と書いたのはλx.M(proj1x,proj2x)の省略である。

命題1.1

M, N をラムダ項とするとき、次のことが成り立つ。

recM N0 =β N,

recM Nn+1 =β Mn(recM Nn).

(4)

ラッセルのパラドックスから不動点定理へ. ラムダ抽象λx.M[x]は集合{x:M[x]}の一 般化であり、適用M N は所属関係N ∈M の一般化だと思うことができる。つまりラム ダ計算は素朴集合論の一般化である。そこでラッセルのパラドックス

R∈R, R:={x:neg(x∈x)}

をラムダ項で表してnegを任意のラムダ項Mに置き換えると fixM := (λx.M(xx))(λx.M(xx)).

となる。このとき

fixM →β M(fixM) fix(λF.M[F]) →β M[fix(λF.M[F])]

が成り立つ。fixを不動点演算子という。

最小化. ラムダ項Pが与えられたとき、

µP := fix(λF x.if P xthenxelseF(sucx)) と置くと、

µP n →β ifPn then n elseµP(n+1).

1.3 型なしラムダ計算の性質 定理1.2(チューリング完全性)

部分関数f :N⇀Nについて、次の二つは同値である。

1. f は部分再帰的関数である。

2. ラムダ項Fが存在して

f(m) =n ⇐⇒ F m→β n が任意のm, n∈Nについて成り立つ。

M, N が共通のラムダ項Kに簡約できるとき(つまりM →β K, N →β K)、M ↓N と書く。

補題1.3(局所合流性)

M →β N1, M →β N2 =⇒ N1 ↓N2.

実際には以下の強い性質が成り立つが、ここでは証明しない。

定理1.4(合流性, Church and Rosser)

M →β N1, M →β N2 =⇒ N1 ↓N2.

(5)

系1.5

1. 各ラムダ項は高々1つしか正規形を持たない。

2. M =β N ⇐⇒ M ↓N. 3. N が正規形のとき、

M =β N ⇐⇒ M →β N.

系1.6

1. 2項M, N が与えられたとき、M =β N かどうかは決定不能である。

2. ∅ 6=X (Termとする。もしX=β について閉じているなら、Xは再帰的集 合ではない。

定理1.7

正規化可能なMが与えられたとする。このとき、常にもっとも左側にあるβ基を選 んでβ簡約を続ければ、必ず正規形に到達することができる。

補題1.8

正規形のラムダ項は次の文法により生成される。

M ::=xM1· · ·Mn |λx.M ただしn≥0.

2 単純型つきラムダ計算 λ

2.1 定義

単純型. 基本型の集合PrmTypeが与えられているものとする。型を以下で定義する。

σ, τ ::= o|(σ →τ).

ただしo∈PrmType. 型全体の集合をType(λ)と書く。

σ →(τ →ρ)をσ →τ →ρと略記する。

単純型つきラムダ項. 次の関数により各変数には型が割り当てられているものとする。

type:Var−→Type(λ) ただし各型σについてVarσ :=type−1(σ)は可算無限。

(6)

「ラムダ項Mが型σを持つ」ことをM :σまたはMσと書き、以下のように定義する。

x∈Varσ

x:σ (var) M :τ x∈Varσ

λx.M :σ→τ (abs) M :σ→τ N :σ M N :τ (app) また、

Termσ :={M ∈Term | M :σ}, Term(λ) := [

σ∈Type(λ)

Termσ

と定める。Term(λ)(Termである。以下では、型つきのラムダ項M ∈Term(λ)のみを考 える。

命題2.1

型σを持つ閉項M :σがある ⇐⇒ 論理式σは直観主義命題論理で証明可能.

それゆえ型つきラムダ項M :σは論理式σの証明と同一視できる。

定理2.2(主部簡約定理)

M[xτ] :σ, N :τ =⇒ M[N] :σ M :σ, M →β N =⇒ N :σ.

階数

rank(o) := 0

rank(σ→τ) := max{rank(σ) + 1,rank(τ)}

rank(M) := max{rank(type(N)) :N はM の部分項}.

とくにM :σが正規形の閉項のときには、rank(M) =rank(σ)である。

2.2 型つきラムダ項を用いた関数表現

基本型o∈PrmTypeを1つ固定する。

Bσ := σ→σ →σ B := Bo

Nσ := (σ →σ)→(σ→σ) N := No

命題2.3

Mを正規形の閉項とする。

1. M :Bならば、M ≡true 又は false.

2. M :Nならば、あるn∈NについてM ≡n (またはλf(σ→σ).f)。

以下の項の階数は2である。

neg : B→B conj : B→B→B

(7)

また以下の項の階数は3である。

∀: (B→B)→B ただし∀ ≡λF.conj(Ftrue)(Ffalse).

一方でrec,fix6∈Term(λ)である。

2.3 単純型つきラムダ計算の性質

各自然数rについて次の決定問題を考える。

• Bool(r): 階数rの閉項M, N :Bが与えられたとき、M =β N かどうか?

定理2.4(T. 2012)

1. r = 2n+ 2のとき、Bool(r)はn-EXPTIME完全である。

2. r = 2n+ 3のとき、Bool(r)n-EXPSPACE完全である。

とくにBool(2)はP完全であり、Bool(3)はPSPACE完全である。

系2.5(Statman)

同じ型の項M, N が与えられたときM =β Nかどうかを決定する問題は、決定可能 であるが初等的ではない。

定理2.6(強正規化可能性)

2項関係(→β)−1はTerm(λ)上で整礎である。つまり無限β簡約列 M0β M1β M2β · · ·

はTerm(λ)の中に存在しない。

一般に、M ∈Termを起点とする無限β簡約列が存在しないとき、Mは強正規化可能で あるという。他方で、Mから正規形へと至る有限のβ簡約列が存在するとき、Mは弱正 規化可能であるという。

系2.7(弱正規化可能性, Turing(?))

どんな型つきラムダ項も正規形を持つ。

弱正規化可能性がΠ02文なのに対し、強正規化可能性はΠ11文であることに注意。

補題2.8(Newmanの補題)

クラスX上の(集合状の)整礎関係Rが局所合流性を満たすならば、Rは合流性を

満たす。

(8)

このことと補題1.3から、少なくとも型付きラムダ項については合流性(定理1.4)が 成り立つことがわかる。

系2.9(等式理論の無矛盾性)

true,false:Bについてtrue=β falseは成り立たない。

2.4 外延性について η簡約.

λx.M x →η M (x6∈fv(M)).

βと→ηを含む最小の合同関係(ラムダ抽象、適用について閉じた同値関係)を=βη と書く。これは以下のように定義できる。

(λx.M[x])N =βη M[N]

x6∈fv(M) λx.M x=βη M

M =βη M

M =βη N N =βηM

M =βη N N =βη K M =βη K M =βη N

λx.M =βη λx.N

M =βη N K=βη L M K =βη N L 命題2.10

=βηは外延性を満たす。つまりM, N :σ →τのとき、

M K=βηN K (すべてのK:σについて) =⇒ M =βη N.

2.5 単純型つきラムダ計算の標準モデル

簡単のため、基本型はただ1oしかないものとする。

型の解釈 何らかの集合Xを固定する。

[[o]] :=X, [[σ →τ]] := [[τ]][[σ]].

ラムダ項の解釈 関数vは、各変数x∈Varσにv(x) ∈[[σ]]を割与えるものとする(これ を付値という)。このとき、各M :σに対して[[M]]v ∈[[σ]]を次のように定める。

[[x]]v := v(x)

[[λxσ.M]]v := {(a,[[M]]v[x7→a]) :a∈[[σ]]}

[[M N]]v := [[M]]v([[N]]v).

M が閉項のとき、[[M]] := [[M]]vとする(vは任意)。

(9)

定理2.11(Friedman, Plotkin)

M, N が同じ型を持つ閉項のとき、

M =βη N =⇒ [[M]] = [[N]].

さらにXが無限集合のときには逆も成り立つ。

2.6 論理的関係

π を集合X 上の置換とすると、π は任意の[[σ]] 上の置換πσ へと自然に拡張できる:

f ∈[[σ→τ]]に対して

πσ→τ(f) :=πτ◦f◦πσ−1. このとき、任意の閉ラムダ項M :σπσ-不変である:

πσ([[M]]) = [[M]].

これを一般化して次の定義を得る。

論理的関係. R⊆X2が与えられたとき、Ro:=Rとし、

(f, g)∈Rσ→τ ⇐⇒ ∀(a, b)∈Rσ.(f(a), g(b))∈Rτ. と定める。

補題2.12(基本補題)

R⊆X2とする。任意のラムダ項M[xσ11, . . . , xσnn] :τ と付値v, wについて (v(xi), w(xi))∈Rσi (1≤i≤n) =⇒ ([[M]]v,[[M]]w)∈Rτ. とくにMが閉項のときは([[M]],[[M]])∈Rτ.

定理2.13(Plotkin 1970)

Xは無限集合であるとし、rank(σ) ≤2とする。このとき、任意のa∈[[σ]]について 次の2つは同値である。

1. ある閉項M :σについてa= [[M]]

2. すべてのR⊆X2について(a, a)∈Rσ.

未解決問題. 上の定理は任意の型σに拡張できるか?

(10)

2.7 強正規化定理の証明

SN集合. 集合SN⊆Termを次のように定める。

M1∈SN · · · Mn∈SN n≥0 xM1· · ·Mn∈SN

M ∈SN λx.M ∈SN

M[N]K~ ∈SN N ∈SN (λx.M[x])N ~K ∈SN 補題2.14

M ∈SNならMは強正規化可能である。

補題2.15

M, N を型つきラムダ項とする。

1. M[xσ], Nσ ∈SNならM[N]∈SN.

2. Mσ→τ, Nσ ∈SNならM N ∈SN.

補題2.16

Mが型つきラムダ項ならM ∈SN.

補題2.14, 2.16から定理2.6が従う。

(11)

2.8 HOL Lightの基礎

ここでは証明支援系HOL Lightの背後にある論理HOLをやや簡略化して説明する。

大雑把にいってHOLはチャーチの単純型理論に選択公理と無限公理を加えたものに相当 する。

構文論. HOLの型は単純型である1。ただし基本型はind,boolの2つのみとする。HOL の項は単純型つきラムダ項である。ただしラムダ項の中で定数

=σ:σ→σ →bool, εσ : (σ →bool)→σ (σ∈Type(λ)) を用いてよいものとする。

bool型のラムダ項を表すのにϕ, ψ等の記号を用いる。=σ M NをM =N と書く。さ らにσ =boolのときにはM ⇔Nとも書く。

Γ∪ {ϕ}bool型のラムダ項の有限集合のとき、

Γ⊢ϕ を推件という。

推論規則. HOLの推論規則は以下の通り。最後の3つ以外はラムダ計算のメタ関係=β を対象化することにより得られることに注意。

⊢M =M REFL Γ⊢M =N Γ⊢N =K

Γ∪∆⊢M =K TRANS Γ⊢M =N ∆⊢K =L

Γ∪∆⊢M K=N L MK COMB Γ⊢M =N

Γ⊢(λx.M) = (λx.N) ABS

⊢(λx.M[x])N =M[N] BETA

ϕ⊢ϕ ASSUME Γ⊢ϕ⇔ψ ∆⊢ϕ

Γ∪∆⊢ψ EQ MP Γ⊢ϕ ∆⊢ψ

(Γ\{ψ})∪(∆\{ϕ})⊢ϕ⇔ψ DEDUCT ANTISYM ただしABS規則においてΓxを自由変数として含まないものとする。

論理記号は省略表現として導入する。

⊤ := id=id :bool

∧ := λpq.hp, qi=h⊤,⊤i :bool→bool→bool

⇒ := λpq.p∧q⇔p :bool→bool→bool

σ := λP.P =λx.⊤ : (σ →bool)→bool

σ := λP.∀q.(∀x.P[x]⇒q)⇒q : (σ →bool)→bool

∨ := λpq.∀r.(p⇒r)⇒(q⇒r)⇒r :bool→bool→bool

⊥ := ∀p.p :bool

¬ := λp.p⇒ ⊥ :bool→bool

(12)

σ(λxσ.ϕ[x])のことを∀x.ϕ[x]と書く。についても同様。

その他にHOL Lightの論理は3つの公理を含む。

⊢(λx.M x) =M ETA AX

⊢M x⇒M(εM) SELECT AX

⊢ ∃findind.ONE ONEf ∧ ¬ONTOf INFINITY AX ただしM はxを自由変数として含まないものとする。また

ONE ONEf := ∀x1.∀x2.f x1 =f x2 ⇒x1 =x2

ONTOf := ∀y.∃x. y=f x.

以上の推論規則により、通常の高階古典論理の定理に加え、選択公理と無限公理が導出 できる。

HOLの標準モデル [[ind]] :=ω, [[bool]] := {⊤,⊥}とすれば、前と同様にして全ての型 を解釈できる。また、

a=b ⇐⇒ [[=σ]](a, b) =⊤ f−1(⊤)6=∅ =⇒ [[εσ]](f)∈f−1(⊤)

となるように[[=σ]] : [[σ]]2 −→[[bool]], [[εσ]] : [[σ →bool]]−→[[σ]] を定める。

以上によりHOLの全ての項を解釈できる。最後に Γ|=ϕ を、すべての付値vについて

[[ψ]]v =⊤ (ψ∈Γ) =⇒ [[ϕ]]v

が成り立つことと定義する。

定理2.17(健全性)

Γ⊢ϕ =⇒ Γ|=ϕ.

ゆえにHOLは無矛盾である。しかも(選択公理を仮定すれば)Vω+ωの中でモデルを 構成できる。

(13)

3 多相ラムダ計算 λ2

3.1 定義

多相型. 型変数の集合TypeVarが与えられているものとする。λ2の型を以下で定義する。

σ, τ ::= α |(σ→τ) |(∀α.σ).

ただしα ∈ TypeVar. 型全体の集合をType(λ2)と書く。単純型の場合と異なり、型のレ

ベルでも束縛表現が出てくることに注意。型σに含まれる自由型変数の集合をftv(σ)と 書く。

λ2のラムダ項. 以前と同様、変数には型が割り当てられているものとする。

type2 :Var −→Type(λ2).

Varσ :=type2−1(σ)とする。

多相ラムダ計算では、変数、ラムダ抽象、適用に加え、型抽象Λα.M、型適用M σの2 つが新たに組み込まれている。λ2のラムダ項は次の規則により得られる。

x∈Varσ

x:σ (var) M :τ x∈Varσ

λx.M :σ→τ (abs) M :σ →τ N :σ M N :τ (app) M :σ

Λα.M :∀α.σ (Abs) M :∀α.σ[α]

M τ :σ[τ] (App)

ただし(Abs)規則を適用するときには、

α6∈ {ftv(type(x)) :x∈fv(M)}

が満たされていなければならない(固有変数条件)。ここでfv(M)Mに含まれる自由 変数の集合。

型つきラムダ項全体の集合をTerm(λ2)と書く。

命題3.1

型σを持つ閉項M :σがある ⇐⇒ 論理式σは直観主義二階命題論理で証明可能.

系3.2

型σが与えられたとき、閉項M :σがあるかどうかは決定不能である。

β簡約. 簡約規則として、新たに

(Λα.M[α])τ →β M[τ]

が加わる。厳密にいえば、これはMに含まれる束縛変数xσ[α]を一斉に別の変数yσ[τ]

(14)

(型なしラムダ項としての)構造が変わることはない。また固有変数条件により、自由変 数の置き換えが生じることはない。

2項関係→βの正確な定義は次の通り。

(λx.M[x])N →β M[N] (Λα.M[α])τ →β M[τ]

M →β N λx.M →β λx.N M →β N

KM →β KN

M →β N M K→β N K

M →β N M τ →β N τ

主部簡約定理(定理2.2)も以前と同様に成り立つ。つまりラムダ項の型はβ簡約して も変わらない。ただしβ基内部の型は動的に変わっていくため、多少の注意が必要である。

定理3.3(主部簡約定理)

M[xτ] :σ, N :τ =⇒ M[N] :σ M[α] :σ[α] =⇒ M[τ] :σ[τ] M :σ, M →β N =⇒ N :σ.

3.2 多相型ラムダ項を用いた関数表現

基本的なデータ型と関数. 多相型を用いて、改めてデータ型を定義し直す。

B := ∀α. α→α→α

true := Λα.λxα.λyα.x :B false := Λα.λxα.λyα.y :B

N := ∀α.(α →α)→(α→α) n := Λα.λfα→α. f ◦ · · · ◦f

| {z }

n

:N

ただし0:= Λα.λfα→α.λzα.z,1:= Λα.λfα→α.λzα.f z.

こうすれば、前出の関数型ラムダ項も再定義できる。たとえば neg := λbB.Λα.λxαyα.bαyx :B→B

suc := λmN.Λα.λfα→α. f ◦(mαf) :N→N

exp := λnNmN.Λα.m(α →α)(nα) :N→N→N  iter := λfNNgNmN.mNf g : (N→N)→N→N recも同様にλ2のラムダ項に直すことができて、その型は

rec: (N→N→N)→N→N.

となる。それでもfixやµは型を持たない。

(15)

リスト型と多相関数. 型σのリスト型は次のように定義できる。

L(σ) := ∀α.(σ →α→α)→α→α.

たとえばa, b, c:σとすると、リスト[a; b; c]は

Λα.λfσ→α→α.f a◦f b◦f c:L(σ)

と表せる。関数型プログラミング言語でよく用いられるmap関数は、関数F とリストl が与えられたらlの各要素にF を適用する関数である。

map(F,[a; b; c]) = [F(a); F(b); F(c)].

これはリストの型に依存しない多相関数の代表例である。このような関数がλ2の中でう まく表現できる。

map := Λβ.Λγ.λFβ→γ.λlL(β).Λα.λfγ→α→α. lα(λxβ.f(F x)) : ∀βγ.(β →γ)→L(β)→L(γ).

論理結合子の定義

⊤ := ∀α. α→α

⊥ := ∀α. α

σ∧τ := ∀α.(σ →τ →α)→α.

σ∨τ := ∀α.(σ →α)→(τ →α)→α

∃β.σ[β] := ∀α.(∀β.σ[β]→α)→α.

ただしαはσ, τ に自由変数として含まれない新しい型変数とする。

3.3 多相ラムダ計算の性質 定理3.4

部分関数f :N⇀Nについて、次の二つは同値である。

1. f のグラフはΣ01集合であり、全域性が二階算術PA2で証明できる。

2. 多相型ラムダ項F :N→Nが存在して

f(m) =n ⇐⇒ F m→β n が任意のm, n∈Nについて成り立つ。

上の定理の⇐方向には次の定理が関わっている。具体的には、閉項M :N→σが与え られたとき、「すべての自然数nについてM nは強正規化可能である」ことをPA2が証 明できることから帰結する。

(16)

定理3.5(強正規化可能性)

任意の型σについて、型σを持つ閉項M :σは強正規化可能である。

λ2は局所合流性を満たす。それゆえ再びNewmanの補題(補題2.8)が使える。

定理3.6

βはTerm(λ2)上で合流性を満たす。

それゆえ系1.5の諸性質が成り立つ。

系3.7

1. 各ラムダ項はちょうど1つ正規形を持つ。

2. 同じ型の2M, Nが与えられたとき、M =β N かどうかは決定可能である。

3.4 標準モデルの多相版?

次のような集合族Uを考える。

1. X ∈ UならばX 6=∅.

2. X, Y ∈ UならばYX ∈ U.

3. 任意の関数F :U −→ U についてQ

X∈UF(X)∈ U.

このようなU があれば、2.5節の解釈を多相型に自然に拡張することができる。

型付値V :TypeVar−→ Uが与えられたとき[[σ]]V ∈ Uを以下で定める。

[[α]]V := V(α) [[σ →τ]]V := [[τ]][[σ]]V V

[[∀α.σ]] := Q

X∈U[[σ]]V[α7→X]

このように型の解釈を定めれば、ラムダ項の解釈も自然にできて M :σ =⇒ [[M]]∈[[σ]]

M =βη N =⇒ [[M]] = [[N]]

となるようにできる(M, Nは同じ型)。ただし型抽象に関するη規則は次の通り。

Λα.M α →η M (α6∈ftv(M)).

定理3.8

U が上の性質を満たすならば、U の全ての要素は一点集合である。

(17)

3.5 領域理論の考え方

部分関数f :N⇀Nとそのグラフ{(m, n)∈N×N:f(m) =n}を同一視する。

PF:={f :f はNからNへの部分関数}.

とし、全域関数F :PF−→PFについて考える。

Fˆ(f, n) :=F(f)(n)

と定義すれば、Fは部分関数Fˆ :PF×N⇀Nと同一視できる。

有向集合族. 集合族X ⊆PFを考える。任意の2元f, g∈ X に対してf ∪g⊆hを満た すh∈ X があるとき、X は有向であるという。有向集合族の和S

Xを有向和といいS

X と書く。

有限呼び出し性. G:PF×N⇀ Nが第一引数について単調であり(つまりG(f, m) =n かつf ⊆gならばG(g, m) =n)、なおかつ次の性質を持つとき、Gは有限呼び出し性を 持つという。

• 任意のf ∈ PF, m∈Nについて、G(f, m) =nならばある有限部分関数f0f in f が存在してG(f0, m) =n.

連続性. F :PF−→PFが任意の有向和を保存するとき、つまり次が成り立つときF 連続であるという。

F(S

X) =S

f∈X F(f).

命題3.9

F :PF−→PFが連続であることと、Fˆ:PF×N⇀Nが有限呼び出し性を持つこと は一致する。

確定呼び出し性. G:PF×N⇀Nが第一引数について単調であり、なおかつ次の性質を 持つときGは確定呼び出し性を持つという。

任意のf ∈PF, m∈Nについて、G(f, m) = nならばG(f0, m) = n,f0f in fを 満たす最小のf0が(ただ1つ)存在する。

安定性. 連続写像F :PF−→PFが次の性質を満たすとき、安定であるという。任意の f, g ∈PFについて

f ∪g∈PF =⇒ F(f∩g) =F(f)∩F(g).

命題3.10

F :PF−→PFが安定であることと、Fˆが確定呼び出し性を持つことは一致する。

(18)

単一呼び出し性. G:PF×N⇀Nが第一引数について単調であり、なおかつ次の性質を持 つとき、Gは単一呼び出し性を持つという。任意のf ∈PF, m∈Nについて、G(f, m) =n ならばG({(k, l)}, m) =nとなる要素(k, l)∈fがただ一つ存在する。

線形性. F :PF−→PFが任意の互いに素な集合族の和を保存するとき、Fは線形であ るという。

F(P

X) =P

f∈X F(f).

命題3.11

F :PF−→PFが線形写像であることと、Fˆが単一呼び出し性を持つことは一致する。

3.6 整合空間意味論

整合空間. 集合|X||X|上の反射的関係 ⌢⌣Xの対X = (|X|, ⌢⌣X)を整合空間という。

|X|の要素をトークンといい、⌢⌣Xを整合関係という。

x ⌢X y ⇐⇒ x ⌢⌣X y∧x6=y

とすれば非反射的関係が得られる。逆に非反射的関係 ⌢X が与えられれば ⌢⌣X を復元 することもできる。互いに整合なトークンの集合a ⊆ |X|をクリークという(∀x, y ∈ a. x ⌢⌣X y)。Xのクリーク全体の集合をClq(X)、有限クリーク全体の集合をFClq(X)と 書く。

例.

N := (N,=)

PF := (N2, ⌢⌣PF) (m1, n1)⌢PF (m2, n2) ⇔ m1 6=m2

R := (D, ⌢⌣R) x ⌢R y ⇔ den(x)6=den(y)∧ |x−y| ≤2−den(x)+ 2−den(y). ただしD:=Z×N,den(m, n) :=n. (m, n)∈Dは有理数m/2nを表す。

クリーク空間. (Clq(X),⊆)を半順序集合として見る。

完備性 Clq(X)の有向集合D⊆Clq(X) は常に上極限を持つ(つまりSD∈Clq(X))。

代数性 どんなa ∈ Clq(X)も有限要素からなる有向集合の上極限として表せる(つまり

a=S

{a0 ∈FClq(X) :a0f in a})。

有界完備性 任意の二元a, b∈Clq(X)について、a⊆c,b⊆cなるc∈Clq(X)が存在する ときにはa∪b∈Clq(X)である。

以上の3性質を持つので、(Clq(X),⊆)はスコット領域である。またdI領域にもなって いる。

(19)

各a∈FClq(X)について

hai:={b∈Clq(X) :a⊆b}

とし、{hai:a∈FClq(X)}を開基としてClq(X)に位相を入れる(スコット位相)。

補題3.12

U ⊆Clq(X)は開集合 ⇐⇒U は上方向に閉じており(a∈U,a⊆bならb∈U)、有 向集合によって到達不能である(任意の有向集合D ⊆Clq(X)について、S

D∈U ならd∈D∩U が存在する)。

補題3.13

X, Y を整合空間とする。F :Clq(X)−→ Clq(Y)は連続写像⇐⇒F は有向和を保存 する。

安定写像. 整合空間XからY への安定写像F :X−→stY を次のように定義する。Fは Clq(X)からClq(Y)への連続写像であり、

a∪b∈Clq(X) =⇒ F(a∩b) =F(a)∩F(b) を満たす。XからY への安定写像全体の集合をCoh(X, Y)を書く。

補題3.14

F :X −→Y は安定写像 ⇐⇒ Fは単調で、F(a)∋yならばF(a0)∋y, a0f in a 満たす最小のa0が存在する。

そのような(a0, y)をFの最小対という。

tr(F) :={(a0, y)∈FClq(X)× |Y|: (a0, y)F の最小対} と定め、F の跡(あるいは骨組み)と呼ぶ。

整合空間の直積. X1 = (|X1|, ⌢⌣1), X2 = (|X2|, ⌢⌣2)が整合空間のとき、X1×X2 :=

({1} × |X1| ∪ {2} × |X2|, ⌢⌣12),

(i, x)⌢⌣12(j, y) ⇐⇒ x ⌢⌣i y (i=j)

⇐⇒ 常に成り立つ (i6=j) とし、また⊤:= (∅,∅)と定める。すると

X1× ⊤ ∼=X1, Clq(X1×X2)∼=Clq(X1)×Clq(X2) が成り立つ。

(20)

関数整合空間. X, Y が整合空間のとき、X ⇒Y := (FClq(X)× |Y|, ⌢⌣0), (a, y)⌢0(b, z) ⇐⇒ a ⌢⌣X b ならばy ⌢Y z

と定める。ただしa, b∈Clq(X)についてa ⌢⌣X ba∪b∈Clq(X)のことである。|X|,|Y| が無限集合ならば濃度が保たれることに注意。

命題3.15

任意の整合空間X, Y について

tr:Coh(X, Y)−→Clq(X⇒Y) は全単射である。

定理3.16

任意の整合空間X, Y, Zについて

Coh(Z,⊤) ∼= {∗}

Coh(Z, X×Y) ∼= Coh(Z, X)×Coh(Z, Y) Coh(Z, X ⇒Y) ∼= Coh(Z×X, Y)

が“自然に”成り立つ。すなわち整合空間と安定写像がなす圏Cohはカルテシアン閉 圏である。

単純型の解釈. 単純型付きラムダ計算を考える。各基本型oに整合空間[[o]]を割り当て、

[[σ→τ]] := [[σ]]⇒[[τ]] とする。すると各閉ラムダ項M :σに対して[[M]]∈Clq([[σ]])が自 然に定められる。

定理3.17

同じ型を持つ任意の閉項M, N について

M =βη N =⇒ [[M]] = [[N]].

基本型oにうまく整合空間を割り当てれば、逆も成り立つ。

ラムダ計算の逐次性. X, Y, Z を整合空間とし、関数F : Clq(X)×Clq(Y) −→ Clq(Z) が次の性質を満たすとする。空でないクリークa∈ Clq(X), b ∈ Clq(Y), c ∈Clq(Z)が存 在し、

F(a,∅) = c F(∅, b) = c F(∅,∅) = ∅

するとFは安定写像ではありえない。このことからラムダ項で表される関数(より一般的 に副作用のない関数型プログラム)の計算は(弱い意味で)逐次的であることがわかる。

整合空間意味論をはじめとする表示的意味論は、このように計算の性質を調べるのに有用 である。

(21)

3.7 線形論理の誕生

線形写像. X, Y を整合空間とする。関数F :Clq(X)−→Clq(Y)が F(P

D) =P

d∈DF(d)

を満たすとき、Fは線形写像であるといい、F :X−→linY と書く。ここで記法P

Dは、

D⊆Clq(X)の各要素が互いに交わらず、P

D=S

Dとなることを表す。XからY への 線形写像全体をLin(X, Y)と書く。

補題3.18

F :X−→Y は線形写像⇐⇒ F(a)∋yならばF({x})∋yを満たすx∈aがただ1 存在する。

線形関数空間. 以下で2つの整合空間を定める。X⊗Y := (|X| × |Y|, ⌢⌣X × ⌢⌣Y), X−◦Y := (|X| × |Y|, ⌢⌣0),

(x, y)⌢0(w, z) ⇐⇒ x ⌢⌣X wならば y ⌢Y z.

また1 := ({∗},{(∗,∗)})とする。

定理3.19

任意の整合空間X, Y, Zについて

1⊗X∼=X, X⊗(Y ⊗Z)∼= (X⊗Y)⊗Z, X⊗Y ∼=Y ⊗X および

Lin(Z, X−◦Y)∼=Lin(Z⊗X, Y)

が“自然に”成り立つ。すなわち整合空間と線形写像がなす圏Cohはモノイダル閉 圏である。

安定写像の線形分解. !X := (FClq(X), ⌢⌣X)とすると、

!X−◦Y = X ⇒Y である。また

!(X×Y)∼= !X⊗!Y, !⊤ ∼=1 が成り立つ。

さらにX:= (|X|, ⌢⌣0),

x ⌢0y ⇐⇒ ¬(x ⌢⌣X y) とすると

X⊥⊥=X, Lin(X, Y)∼=Lin(Y, X)

が成り立つ。かくして“二重否定律”を満たしながら直観主義論理を解釈できる奇妙な圏

(22)

実関数の表現. 整合空間Rを考える。任意の極大なクリークa∈Clq(R)はコーシー列を 表す。そこでρ(a) := limaと定めると、全射部分関数ρ:Clq(R)⇀Rが得られる。

関数f :R−→Rと安定写像F :R−→stRが、すべてのa∈dom(ρ)ついてf(ρ(a)) = ρ(f(a))を満たすとき、Fはf を実現するという。

定理3.20(Matsumoto and T. 2015)

関数f :R−→Rについて

1. f が連続関数であることとf を実現する安定写像が存在することは一致する。

2. f が一様連続関数であることとfを実現する線形写像があることは一致する。

3.8 多相型の解釈

次の性質を満たす集合U 6=∅を考える。

x, y∈ U =⇒ (x, y)∈ U a⊆f in U =⇒ a∈ U

以後|X| ⊆ Uを満たす整合空間X = (|X|, ⌢⌣X)のみを考える。そのような整合空間全体 の集合をCohU と書く。明らかにX, Y ∈CohUならばX⇒Y ∈CohUである。

安定写像. 2つの整合空間X, Y について、|X| ⊆ |Y|かつ ⌢⌣X ⌢⌣Y |X|への制限 になっているとき、X⊆Y と書く。次の性質を満たす関数Φ :CohU −→stCohUを安定 写像という。

• X ⊆Y ならΦ(X)⊆Φ(Y).

• |Φ(X)| ∋xなら|Φ(X0)| ∋x,X0f in Xを満たす最小のX0が存在する。

そのような(X0, x)をΦの最小対といい、Φの最小対全体の集合をTR(Φ)と書く。

安定族. Φを安定写像とするとき、次の性質を満たすクリークの族a={a(X)}X∈CohU, a(X)∈Clq(Φ(X))をΦに関する安定族という。

• X ⊆Y ならa(X)⊆a(Y).

• a(X)∋xならX0f in X, (X0, x)∈TR(Φ)を満たすX0が存在するが、そのX0が a(X0)∋x,X0f inXを満たす最小の整合空間となっている。

そのような(X0, x)をaの最小対といい、aの最小対全体の集合をTr(a)と書く。Φに関す る安定族全体の集合をQst

X∈CohUClq(Φ(X))と書く。

(23)

多相整合空間. Φを安定写像とするとき、∀X.Φ(X) := (TR(Φ), ⌢⌣0), (X, x)⌢0(Y, y) ⇐⇒ X∪Y ∈CohU ならば x ⌢X∪Y y と定める。

命題3.21

任意の安定写像Φ :CohU −→stCohUについて∀X.Φ(X) ∈CohU である。また Tr:Qst

X∈CohU Clq(Φ(X))−→Clq(∀X.Φ(X)) は全単射である。

このようにすれば、各閉型σに整合空間[[σ]]∈CohUを割り当て、各閉ラムダ項Mに クリーク[[M]]∈Clq([[σ]])を割り当てることができる。さらにM, Nが同じ型のときには

M =βη N =⇒ [[M]] = [[N]]

が成り立つ(逆は不明)。

3.9 強正規化定理の証明

Term(λ2)∪Type(λ2)の要素をT1, T2, . . . で表す。またType(λ2)∪{∗}の要素はδ1, δ2, . . . で表す。

SN集合. SN(∗) :=Type(λ2)とする。またσ∈Type(λ2)について型σを持つラムダ項の

集合SN(σ)を次のように定義する。

T1∈SN(δ1) . . . Tn∈SN(δn) x ~T :σ

x ~T ∈SN(σ) (var)

M ∈SN(τ) x:σ

λx.M ∈SN(σ→τ) (abs) M[Nσ]T~ ∈SN(ρ) N ∈SN(σ) (λxσ.M)N ~T ∈SN(ρ) (app) M ∈SN(σ)

Λα.M ∈SN(∀α.τ) (Abs) M[τ]T~ ∈SN(ρ)

(Λα.M[α])τ ~T ∈SN(ρ) (App) 補題3.22

M ∈SN(σ)ならばMは強正規化可能である。

補題3.23

1. (λxσ.M)x∈SN(τ)ならばλx.M ∈SN(σ→τ).

2. (Λα.M)α∈SN(τ)ならばΛα.M ∈SN(∀α.τ).

(24)

簡約可能性候補. 以前と同様に、すべての閉項M :σについてM ∈SN(σ) となること を示したいのだが、SN集合を直接扱うと循環論に陥る。そこでSNと似た性質を持ちな がら循環論を避けられる集合の族を考える。

次の性質を満たす(ρ, X)全部の集合をRCと書く(ここでXは型ρを持つラムダ項の 集合)。

M ∈X

M ∈SN(ρ) (sn) T1 ∈SN(σ1) . . . Tn∈SN(σn) x ~T :τ

x ~T ∈X (var) M[Nσ]T~ ∈X N ∈SN

(λxσ.M)N ~T ∈X (app) M[τ]T~ ∈X

(Λα.M[α])τ ~T ∈X (App) 補題3.24

1. (ρ,SN(ρ))∈ RC

2. ある(ρ, X)∈ RCについてM ∈Xならば、M は強正規化可能である。

補題3.25

(σ, X),(τ, Y)∈ RCならば(σ→τ, X ⇒Y)∈ RC. ただし X⇒Y :={Mσ→τ :∀N ∈X, M N ∈Y}.

X⇒Y の構成は論理的関係の1項版(論理的述語と呼ばれる)になっている。

補題3.26

関数Φ : RC −→ RCは次の性質を満たすとする。ある型σ が存在して、すべての (τ, X)∈ RCについてΦ(τ, X)は(σ[τ], Y)の形。このとき(∀α.σ,∀X.Φ(X))∈ RC 成り立つ。 ただし

∀X.Φ(X) :={M∀α.σ :∀(τ, X)∈ RC. M τ ∈Φ(τ, X)}.

型付値. 関数V :TypeVar−→ RCを型付値という。型σに対してσの中の自由変数αを V(α)1(V(α)の第一要素)で置き換えた結果をσV と書く。また、集合[[σ]]V を次のよう に定める。

[[α]]V := V(α)2 [[σ→τ]]V := [[σ]]V ⇒[[σ]]V

[[∀α.σ]]V := ∀X.(fun(τ, X)∈ RC 7→ [[σ]]V[α7→(τ,X)]) 補題3.25、補題3.26より(σV,[[σ]]V)∈ RCが成り立つ。

補題3.27

[[σ[α]]]V[α7→[[τ]]V]= [[σ[τ]]]V.

(25)

付値. 関数V :Var−→Term(λ2)を付値という。ただしx:σならばv(x) :σとなるよう にする。ラムダ項M が与えられたとき、自由変数xをv(N)で置き換え、自由型変数α をV(α)1で置き換えた結果をMv,V と書く。

補題3.28(基本補題)

M[xσ11, . . . , xσnn] :τを型つきラムダ項とする。このとき任意の型付値V と付値vにつ いて

(xi)v,V ∈[[σi]]V (1≤i≤n) =⇒ Mv,V ∈[[τ]]

が成り立つ。とくにM が閉項ならばM ∈[[τ]].

(τ,[[τ]])∈ RCに注意すれば、補題3.24(2)と補題3.28から強正規化定理が従う。

4 ラムダ・キューブ

省略(もっと自分の言葉で書き直してから公開します)。

(26)

5 レポート課題

締切:115日(金)

• 講義では説明不足な点も多々あったので、文献やweb上の解説記事を参考にするこ と。参照した文献・記事は明記すること。

• 人に相談しても構わないが、相談した場合その旨明記すること。また出来る限り自 分で考えて書くこと。

• 問題について不明な点がある場合には1月10日までにメールで問い合わせること。

• ハンドアウトおよびレポート問題は随時改訂される可能性がある。改訂前の版に基 づいてレポートを書いても全く問題ないが、提出前に最新版を確認することが望ま しい。

• 各問には、難しさに応じて⋆がついている。完答すれば⋆がその分得られる(不十 分な場合には減点)。

• 全部答えなくてもよい。目安としては⋆を7つ集めたら「優」確定と考えてほしい。

もっとも7つ未満でも「優」になる可能性は大いにある。

問1–2では型なしラムダ計算(第1章)について考える。

1. 相異なる2つの閉項M, N で

M →β N, N →β M となるものを求めよ。

2. 次の性質を満たす正規形の閉項predを求めよ。各自然数nについて pred n →β 0 (n= 0)

β n−1 (n6= 0)

問3–6では単純型つきラムダ計算(第2章)について考える。ただし基本型はただ1o しかないものとし、また

N:= (o→o)→(o→o), B:=o→o→o とする。

(27)

3. 次の性質を満たす閉項zero?で型N→Bを持つものを1つ与えよ。各自然数nにつ いて

zero?n →β true (n= 0)

β false (n6= 0)

4⋆⋆⋆.Xが無限集合のとき、定理2.11の逆方向が成り立つことを示せ。ヒント:Termσ

=βηによる同値類全体の集合をYσとする。2項関係Ro⊆X×Yoが与えられたら、論理 的関係と同様にしてRσ ⊆[[σ]]×Yσ (σは任意の型)へと拡張できて、基本補題が成り立 つ。

問5–6ではXは少なくとも2元を含むものとし、各型σに対して集合[[σ]]を2.5節の通 りに定める。またX上の2項関係R⊆X2が与えられたとき、Rσを2.6節の通りに定め る。すると[[true]],[[false]]∈[[B]]はそれぞれ

[[true]](x)(y) =x, [[false]](x)(y) =y (x, y∈X) を満たす関数になる。

5⋆⋆.

(a) ([[true]],[[false]])6∈RBとなるようなR⊆X2を1つ与えよ。

(b) 次の性質を満たす関数univ ∈[[(o→B)→B]]を考える。f ∈[[o→B]]に対して univ(f) := [[true]] (すべてのx∈Xについてf(x) = [[true]]のとき)

:= [[false]] (それ以外のとき)

このとき、[[M]] =univとなるような閉項M :o→Bは存在しないことを示せ(基 本補題を使ってよい)。

6⋆⋆. 関数f ∈ [[B]]が全ての2項関係R ⊆X2について(f, f) ∈ RBを満たすとき、f [[true]][[false]]のどちらかに限られることを示せ。

7⋆⋆⋆. 古典一階述語論理について考える。ただし関数記号は含まず、関係記号としては等 号=のみを含むものとする。文ϕが古典一階述語論理で証明可能ならば、2.8節で挙げた 推論規則により⊢ϕが導出できることを示せ(注:排中律をどうするか?)。

第3章では、ブール値の型B、自然数の型N、型σのリスト型L(σ)を定義した。特に 自然数のリストの型は

L(N)≡ ∀α.(N→α→α)→(α→α)

(28)

8. 自然数のリストが与えられたとき各要素の総和を返す関数を、型L(N) → Nの閉項 で表せ。

9. 自然数でラベル付けされた有限二分木の型Tree(N)はどのように定義すればよいか?

4つ以上の節点を持つ二分木の例を1つ考え、それを型Tree(N)の閉項で表せ(3.2節で 説明したリスト型の場合を参考にせよ)。

10. 命題3.9, 命題3.10を厳密に証明せよ。

11. 補題3.12, 補題3.13を厳密に証明せよ。

12. 補題2.8の可算版、すなわち次のことを厳密に証明せよ。Xを可算集合とし、X上 の2項関係→⊆X2が与えられているものとする。a, b∈Xについてa=bまたは

a=a0→a1→a2 → · · · →an=b

となるa0,· · · , an∈Xが存在するときa→ bと書く。さらにa→ cかつb→cを満た すc∈Xが存在するときa↓bと書く。

今、任意のa, b, c∈Xについて

a→b, a→c =⇒ b↓c

(局所合流性)が成り立つとする。また

a=a0 →a1 →a2 → · · ·

なる無限列は存在しないものとする(強正規化性)。このとき、任意のa, b, c∈Xについて a→b, a→ c =⇒ b↓c

(合流性)が成り立つことを証明せよ。

13⋆⋆. 本稿に数学的な間違いがあれば、指摘せよ(簡単なタイプミスを指摘してくれても 構わないが、⋆2つ分には相当しない)。

(29)

6 参考文献

高橋正子. 計算論 計算可能性とラムダ計算. 近代科学社, 1991.

• H. Barendregt. Lambda calculus with types. Handbook of Logic in Computer Science, vol 2, 1992.

• J.-Y. Girard, Y. Lafont and P. Taylor. Proofs and Types, Cambridge University Press, 1989.

• J.-Y. Girard. Linear Logic: Its Syntax and Semantics. Advances in Linear Logic (edited by J.-Y. Girard, Y. Lafont and L. Regnier). Cambridge University Press, 1995.

• T. C. Hales. Developments in Formal Proofs. S´eminaire BOURBAKI, No. 1086, 2014.

• J. Harrison. HOL Light: An Overview. Theorem Proving in Higher Order Logics.

LNCS 5674, pp. 60–66, 2009.

• J. R. Hindley and J. P. Seldin. Lambda-Calculus and Combinators, Cambridge University Press, 2008.

• P. Urzyczyn. Lectures on the Curry-Howard Isomorphism. Elsevier, 2006.

参照

関連したドキュメント

They obtained some results on characterization and existence of farthest points in normed linear spaces in terms of bounded linear functionals.. Section 2 gives some

The main difference between classical and intuitionistic (propositional) systems is the implication right rule, where the intuitionistic restriction is that the right-hand side

I have done recent calculations (to be written up soon) which show that there is no Z/2Z-valued invariant of string links corresponding to this tor- sion element. So for string

Ulrich : Cycloaddition Reactions of Heterocumulenes 1967 Academic Press, New York, 84 J.L.. Prossel,

This paper is concerned with the existence, the uniqueness, convergence and divergence of formal power series solutions of singular first order quasi-linear partial

The commutative case is treated in chapter I, where we recall the notions of a privileged exponent of a polynomial or a power series with respect to a convenient ordering,

[10] J. Buchmann & H.C. Williams – A key exchange system based on real quadratic fields, in Advances in Cryptology – Crypto ’89, Lect. Cantor – Computing in the Jacobian of

Algebraic curvature tensor satisfying the condition of type (1.2) If ∇J ̸= 0, the anti-K¨ ahler condition (1.2) does not hold.. Yet, for any almost anti-Hermitian manifold there