米澤研究室 全体ミーティング

40
米米米米米 米 米米米米米米 2011/03/02 M2 米米米米 1

Upload: leif

Post on 07-Jan-2016

38 views

Category:

Documents


1 download

DESCRIPTION

米澤研究室 全体ミーティング. 2011/03/02 M2 渡邊裕貴. 今日の内容. Nominal logic Andrew M. Pitts. “Nominal logic: A first order theory of names and binding.” In Information and Computation , Vol. 186, No. 2, pp. 165–193, 2003. (TACS 2001) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 米澤研究室 全体ミーティング

米澤研究室 全体ミーティング

2011/03/02M2 渡邊裕貴

1

Page 2: 米澤研究室 全体ミーティング

今日の内容• Nominal logic– Andrew M. Pitts.

“Nominal logic: A first order theory of names and binding.” In Information and Computation, Vol. 186, No. 2, pp. 165–193, 2003. (TACS 2001)

– Murdoch J. Gabbay and Andrew M. Pitts. “A new approach to abstract syntax with variable binding.” In Formal Aspects of Computing, Vol. 13, No. 3, pp. 341–363, 2002.

2

Page 3: 米澤研究室 全体ミーティング

Alpha Equivalence

• 束縛変数名の選び方の違いを無視する

λx. a x =α λy. a y =α λz. a z

• 型システムなどの証明では alpha-equivalent な項を同一視することがよくある– 構文的には異なる項であるにもかかわらず

3

Page 4: 米澤研究室 全体ミーティング

Alpha Equivalence の必要性• 置換 (substitution)

× (λy. y x)[x λ↦ w. y] = λy. y (λw. y)

○ (λy. y x)[x λ↦ w. y] = (λz. z x)[x λ↦ w. y] = λz. z (λw. y)

where z ≠ y

– Coq などでこれを定義しようとすると複雑になる

4

Page 5: 米澤研究室 全体ミーティング

Locally Nameless Representation

• Alpha-equivalent な項が全て構文的に等しくなるようにする

– ( 著者ら曰く ) 人間にとって分かりにくい

λx. λy. x a y λz. λk. z a k

λ. λ. 1 a 0

5

Page 6: 米澤研究室 全体ミーティング

Nominal Logic

• 一階述語論理の拡張– Atom の互換、 N 量化子、 # 演算子……

– Nominal logic の上で型付きラムダ計算を定義し健全性などを証明することを想定• 変数名を明示的に扱える• Alpha equivalent な項を同一視できる

6

Page 7: 米澤研究室 全体ミーティング

Nominal Logic vs. CIC

• Nominal logic– Alpha equivalent な項を等しいものとして扱え

る• CIC– 帰納的データ型を定義する機能が備わってい

7

Page 8: 米澤研究室 全体ミーティング

Nominal Logic の定義の構成• Signatures and sorts• Terms and formulas• Axioms

8

Page 9: 米澤研究室 全体ミーティング

Signature

• Signature とは以下の集まり– Sort を表す記号の集合• 各記号は以下のどちらかを表す

– A sort of atoms– A sort of data

– 関数を表す記号とその arity の集合• Arity は関数の ( 一つ以上の ) 引数と戻り値の sort

– 関係を表す記号とその arity の集合• Arity は関係の ( 一つ以上の ) 引数の sort

9

Page 10: 米澤研究室 全体ミーティング

Sorts

• Sorts S := A (sort of atoms)

D (sort of data)

[A]S (sort of atom-abstraction)

– A と D は signature で定義された sort を表す記号

10

Page 11: 米澤研究室 全体ミーティング

( 例 ) ラムダ計算の定式化• Sort 記号の集合 := { Var(atoms), Term(data) }• 関数記号の集合 := {

var : Var → Term,app : Term, Term → Term,lam : [Var]Term → Term,

}• 関係記号の集合 := {

Subst <: Term, Var, Term, TermEval <: Term, Term

}

t := x | t t | λx. t

11

Page 12: 米澤研究室 全体ミーティング

Terms

• Term は帰納的に定義– Well-formed な term は一つの sort に属する

1. x : S ただし x は sort S の変数

2. f(t1, …, tn) : S ただし

– f : S1, …, Sn → S

– ti : Si (1 ≤ i ≤ n)

3. (t1 t2)·t3 : S ただし

– t1 : A, t2 : A, t3 : S

4. t1.t2 : [A]S ただし

– t1 : A, t2 : S

12

A は sort of atomsS は sort

Page 13: 米澤研究室 全体ミーティング

( 例 ) ラムダ項x : Var, t : Term とすると

var(x) : Termapp(var(x), t) : Termx.app(var(x), t) : [Var]Termlam(x.app(var(x), t)) : Term

13

x

x t

λx. x t

Page 14: 米澤研究室 全体ミーティング

Formulas

• Formula は帰納的に定義1. R(t1, …, tn) は formula ただし

– R <: S1, …, Sn

– ti : Si (1 ≤ i ≤ n)

2. t1 = t2 は formula ただし

– t1 : S, t2 : S

3. t1 # t2 は formula ただし

– t1 : A, t2 : S14

続く

Page 15: 米澤研究室 全体ミーティング

Formulas

4. φ と Ψ が formula ならば以下も formula– ¬φ– φ ∧ Ψ– φ ∨ Ψ– φ ⇒ Ψ– φ ⇔ Ψ

15

続く

Page 16: 米澤研究室 全体ミーティング

Formulas

5. (∀x : S)φ と (∃x : S)φ は formula ただし– x は sort S の変数– φ は formula

6. (Nx : A)φ は formula ただし– x は sort of atoms A の変数– φ は formula

16

Page 17: 米澤研究室 全体ミーティング

( 例 ) Formulas

x : Var, y : Var, z : Var, t : Term とすると以下は formula

• ¬ t = t• x # y• x # t ∧ y # t ⇒ (x y)·t = t

17

Page 18: 米澤研究室 全体ミーティング

Axioms

• Nominal logic の公理は– 普通の一階述語論理の公理• 例 : φ ∧ Ψ ⇒ φ

– Nominal logic 独自の公理• Swapping に関する公理• Equivariance に関する公理• Freshness に関する公理• ……

18

Page 19: 米澤研究室 全体ミーティング

Swapping

• (t1 t2)·t3 は t3 に含まれる t1 と t2 を全て入れ替えたものを表す– Free か bound かにかかわらず全部入れ替え

る• Swapping に関する axioms– (S1) (∀a : A)(∀x : S) (a a)·x = x– (S2) (∀a, a : ′ A)(∀x : S) (a a )·(′ a a )·′ x = x– (S3) (∀a, a : ′ A) (a a )·′ a = a′

19

A は sort of atomsS は sort

Page 20: 米澤研究室 全体ミーティング

なぜ Swapping を扱うのか• 普通の substitution よりも– 単純– よい性質を持つ

例えばt = t ′ ならば (a b)·t =α (a b)·t′

は成り立つがt = t ′ ならば t{a ↦ b} =α t {′ a ↦ b}

は成り立たない

20

( 自由変数の capture-avoiding でない置換 )

Page 21: 米澤研究室 全体ミーティング

Equivariance

• Equivariance に関する公理– (E1) (∀a, a : ′ A)(∀b, b : ′ A )(′ ∀x : S)

(a a )·(′ b b )·′ x = ((a a )·′ b (a a )·′ b )·(′ a a )·′ x– (E2) (∀a, a : ′ A)(∀b : A)(∀x : S)

b # x ⇒ (a a )·′ b # (a a )·′ x– (E3) (∀a, a : ′ A)(∀x1 : S1)...(∀xn : Sn)

(a a )·′ f(x1, …, xn) = f((a a )·′ x1, …, (a a )·′ xn) ただし f : S1, …, Sn → S

– (E4) (∀a, a : ′ A)(∀x1 : S1)...(∀xn : Sn)R(x1, …, xn) ⇒ R((a a )·′ x1, …, (a a )·′ xn) ただし R <: S1, …, Sn

– (E5) (∀b, b : ′ A)(∀a : A)(∀x : S) (b b )·(′ a.x) = ((b b )·′ a).((b b )·′ x)

21

Page 22: 米澤研究室 全体ミーティング

Equivariance に関する定理• n 個の自由変数 x1, …, xn を持つ term

t(x1, …, xn) について(∀a, a : ′ A)(∀x1 : S1)...(∀xn : Sn)(a a )·′ t(x1, …, xn) = t((a a )·′ x1, …, (a a )·′ xn)

• n 個の自由変数 x1, …, xn を持つ formula φ(x1, …, xn) について

(∀a, a : ′ A)(∀x1 : S1)...(∀xn : Sn)φ(x1, …, xn) ⇔ φ((a a )·′ x1, …, (a a )·′ xn)

22

自由変数の名前を自由に変えられる

Page 23: 米澤研究室 全体ミーティング

Freshness

• t1 # t2 は t1 が t2 の自由変数でないことを表す

• Freshness に関する axioms– (F1) (∀a, a : ′ A)(∀x : S) a # x ∧ a # ′ x ⇒ (a a )·′ x = x– (F2) (∀a, a : ′ A) a # a ′⇔ ¬ a = a′– (F3) (∀a : A)(∀a : ′ A )′ a # a ′ ただし A ≠ A′

– (F4) (∀x1 : S1)...(∀xn : Sn)(∃a : A) a # x1 ∧ ... ∧ a # xn

23

Page 24: 米澤研究室 全体ミーティング

Freshness に関する定理• n+1 個の自由変数 a, x1, …, xn を持つ任意

の formula φ(a, x1, …, xn) について

(∃a : A) a # x1 ∧ ... ∧ a # xn ∧ φ(a, x1, …, xn) ⇔(∀a : A) a # x1 ∧ ... ∧ a # xn ⇒ φ(a, x1, …, xn)

24

Locally nameless representation を使った型システムの定義でも同様の性質が成り立つ

Page 25: 米澤研究室 全体ミーティング

N 量化子• N 量化子に関する axiom– (Q) (Na : A) φ(a, x1, …, xn) ⇔

(∃a : A) a # x1 ∧ … ∧ a # xn ∧ φ(a, x1, …, xn)

–「 (∃a : A) a # x1 ∧ ... ∧ a # xn ∧ …」と「 (∀a : A) a # x1 ∧ ... ∧ a # xn ⇒ …」が等しいことがわかっているのでこれを「 (Na : A) …」で表す

25

Page 26: 米澤研究室 全体ミーティング

Atom Abstraction

• Term t1 : A, t2 : S に対しt1.t2 は t2 の中で t1 を束縛することを表す– Cf. スライド 12

• Atom abstraction に関する公理– (E5) 再掲 (∀b, b : ′ A)(∀a : A)(∀x : S)

(b b )·(′ a.x) = ((b b )·′ a).((b b )·′ x) – (A1) (∀a, a : ′ A)(∀x, x : ′ S)

a.x = a .′ x ′⇔ a = a ′∧ x = x′ ∨ a # ′ x ∧ x′ = (a a )·′ x

– (A2) (∀y : [A]S)(∃a : A)(∃x : S) y = a.x

26

Page 27: 米澤研究室 全体ミーティング

Atom Abstraction に関する定理• (∀a, a : ′ A)(∀x : S) a # ′ a.x ⇔ a = ′ a ∨ a # ′ x • (∀a : A)(∀a : ′ A )(′ ∀x : S) a # ′ a.x ⇔ a # ′ x

• (∀a, a : ′ A)(∀x, x : ′ S) a.x = a .′ x ′⇔ (Na″ : A) (a a″)·x = (a ′ a″)·x′

27

Page 28: 米澤研究室 全体ミーティング

Atom Abstraction に関する例• 以下の formula は nominal logic で証明可

能– (∀x, y : Var)(∀t : Term) x # t ∧ y # t ⇒

lam(x.app(var(x), t)) = lam(y.app(var(y), t))

28

Alpha equivalent な term を等しいものとして扱える

Page 29: 米澤研究室 全体ミーティング

論理体系の解釈• 論理体系に現れる記号に意味を与えること

• 命題論理での例– 解釈関数 [[·]] を以下のように定める

• [[P]] = ⊥• [[Q]] = ⊤• [[⊤⇒ ]] = , [[⊤ ⊤ ⊤⇒⊥]] = ⊥, [[⊥⇒ ]] = , [[⊤ ⊤ ⊥⇒⊥]] = ⊤

– すると論理式 P ⇒ Q はこの解釈により充足される• [[P ⇒ Q]] = ⊤

29

Page 30: 米澤研究室 全体ミーティング

Nominal Logic の解釈• Atoms, swapping, freshness を “ nominal set”

によって解釈する

• Nominal set とは– その要素に対して atom の swapping が

適切に定義されている– Finite support property を持つ– 射が定義される

30

Page 31: 米澤研究室 全体ミーティング

Nominal Set においてSwapping が満たすべき条件

• Nominal set X の要素 x ∈ X と 同種の atom a, a ′ についてswapping (a a )·′ X x が常に定義される

• (a a)·X x = x

• (a a )·′ X(a a )·′ X x = x

• (a a )·′ X(b b )·′ X x = ((a a )′ b (a a )′ b )·′ X(a a )·′ X x– ただし (a a ) ′ は a と a ′ との互換

31

実は公理 (S1), (S2), (E1) そのもの

Page 32: 米澤研究室 全体ミーティング

Finite Support Property

• Nominal set X の任意の要素 x ∈ X に含ま れる atom は有限である。すなわち– 任意の x ∈ X に対し

atom の有限集合 w が存在し 任意の a, a ′∉ w に対し (a a )·′ X x = x

– このような最小の w は各 x に対し一意に求 まるのでそれを x の support と呼ぶ (= supp(x))

32

Page 33: 米澤研究室 全体ミーティング

Nominal Set の射• Nominal set X, Y に対し X から Y への関数

f : X → Y が射であるとは

任意の x ∈ X と atom a, a ′ に対しf((a a )·′ X x) = (a a )·′ Y f(x)

–定理 : Nominal set は圏をなす33

Page 34: 米澤研究室 全体ミーティング

Signature の解釈• Nominal set の圏をあてはめる– [[S]] = ( 対応する適当な 圏論的意味での object)– [[f : S1, …, Sn → S]] = ( 対応する適当な射 )

: [[S1]]×…×[[Sn]] → [[S]]

– [[R <: S1, …, Sn]] = [[S1]]×…×[[Sn]] の subobject

34

Page 35: 米澤研究室 全体ミーティング

Atom の解釈• [[A]] = ( 対応する適当な 圏論的意味での object)• ただし– Atom の互換が定義されていること– 異なる sorts of atoms は互いに素であること

35

Page 36: 米澤研究室 全体ミーティング

Swapping の解釈• Term x : S に対し

[[(a a )·′ x]] = ([[a]] [[a ]])·′ [[S]] [[x]]

36

Page 37: 米澤研究室 全体ミーティング

Freshness の解釈• [[a # x]] = (a supp(∉ x))

37

Page 38: 米澤研究室 全体ミーティング

Nominal Logic の健全性• 定理 : nominal sets による解釈は nominal

logic の axioms を全て充足する

38

Page 39: 米澤研究室 全体ミーティング

まとめ• Nominal logic という一階述語論理の拡張

を定義した– Alpha equivalent な項を同一視して扱える

• ポイント :– Substitution より swapping の方がよい性質を

持つ– 特に equivariant な formula と親和性が高い

39

Page 40: 米澤研究室 全体ミーティング

関連研究• Nominal Isabelle– Isabelle/HOL の nominal logic による拡張– http://isabelle.in.tum.de/nominal/

• B. Aydemir et al. “Nominal Reasoning Techniques in Coq” LFMTP 2006.– Coq 上に locally nameless representation を

使って nominal logic を実装

40