SlideShare a Scribd company logo
1 of 14
Download to read offline
Types And Programming Languages Ch.6
   Nameless Representation of Terms

                   姜
                  本位田研


             January 24, 2012



  姜 (本位田研)         TAPL6        January 24, 2012   1 / 12
5 章での問題



           変数名が衝突す る と
    暗黙にに変数名を 変更す る 必要がある
                     ↓
     変数名の変更が不要なも のを 作る
                     ↓
     de Bruijn terms を 導入し て みよ う




姜 (本位田研)         TAPL6        January 24, 2012   2 / 12
5 章での問題



           変数名が衝突す る と
    暗黙にに変数名を 変更す る 必要がある
                     ↓
     変数名の変更が不要なも のを 作る
                     ↓
     de Bruijn terms を 導入し て みよ う




姜 (本位田研)         TAPL6        January 24, 2012   2 / 12
5 章での問題



           変数名が衝突す る と
    暗黙にに変数名を 変更す る 必要がある
                     ↓
     変数名の変更が不要なも のを 作る
                     ↓
     de Bruijn terms を 導入し て みよ う




姜 (本位田研)         TAPL6        January 24, 2012   2 / 12
Term



                 de Bruijn terms


    Informal definition
Replacing named variables by natural numbers, where
the number k stands for “the variable bound by the k’th
enclosing λ.”
Example
λx.x は λ.0,
λx.λy. x (y x) は λ.λ. 1 (0 1) と し て 表現でき る



    姜 (本位田研)               TAPL6            January 24, 2012   3 / 12
Term



                              6.1.1


       f ix = λf. (λx. f (λy. (x x) y)) (λx. f (λy. (x x) y))
は
           f ix = λ.(λ. 1 (λ. (1 1) 0)) (λ. 1 (λ. (1 1) 0))
と し て 表現さ れる .
                   f oo = (λx. (λx. x)) (λx. x)
は
                      f oo = (λ. (λ. 0)) (λ. 0)




    姜 (本位田研)                    TAPL6                    January 24, 2012   4 / 12
Term



                      Definition:Terms

各 term がいく つ自由変数を も つか, を 常に追いながら
term を 定義する
Terms
Let T be the smallest family of sets {T0 , T1 , T2 , . . . } st.
   1   k ∈ Tn whenever 0 ≤ k < n;
   2   if t1 ∈ Tn and n > 0, then λ.t1 ∈ Tn−1 ;
   3   if t1 ∈ Tn and t2 ∈ Tn then (t1 t2 ) ∈ Tn
Tn を n-terms と 呼ぶ


       姜 (本位田研)                    TAPL6                   January 24, 2012   5 / 12
Term



                  naming context

                         Γ=x      �→ 4
                           y     �→ 3
                             z    �→ 2
                             a   �→ 1
                             b   �→ 0


こ の Γ が naming context で ,

     x (y z) は 4 (3 2)               Γ = xn , xn−1 . . . x0 と し て
     λw. y w は λ. 4 0                表現でき , こ こ では
     λw.λa.λx は λ.λ.6                Γ = x, y, z, a, b


  姜
    .
である(本位田研)                    TAPL6                    January 24, 2012   6 / 12
Shift



                 シ フ ト と 代入

([k �→ s]t) を 考え る . k が代入によ っ て コ ン テク ス ト から 除去さ
れ, そ の分シ フ ト す る 必要がある .
[1 �→ s](λ.2) であれば , 1 が除去さ れて 2 は 1 に繰り 下げら れる .
し かし , 除去さ れる 番号によ っ て は , 繰り 下げる べき も のと そ う で
ないも のがある だろ う .
シ フ ト 演算子
                      ↑d (k)
                       c


c を 起点に d 分だけ k を 繰り 下げる
k が c よ り 大き け れば d だけ 繰り 下げる



    姜 (本位田研)             TAPL6         January 24, 2012   7 / 12
Shift



                        Shifting


Definition:Shifting

                                  k   (if k < c)
               ↑d
                c   (k) =
                                k + d (if k ≥ c)
                            �


         ↑d (λ.t1 ) = λ. ↑d (t1 )
          c               c+1
        ↑d (t1 t2 ) = ↑d (t1 ) ↑d (t2 )
         c             c        c

ま た , ↑d は ↑d を あら わす
            0




    姜 (本位田研)                    TAPL6         January 24, 2012   8 / 12
Shift



                           計算例

      ↑2 (λ.λ. 1 (0 2)))    = (λ. ↑2 λ. 1 (0 2)))
                                   1
                            = (λ.λ. (↑2 (1 (0 2))))
                                      2
                            = (λ.λ. (↑2 1 ↑2 (0 2)))
                                      2     2
                            = (λ.λ. 1 (↑2 0 ↑2 2))
                                        2     2
                            = (λ.λ. 1 (0 4))



 ↑2 (λ. 0 1 (λ. 0 1 2))    =       λ. ↑2 (0 1 (λ. 0 1 2))
                                       1
                           =       λ. (↑2 (0 1) ↑2 (λ. 0 1 2))
                                        1        1
                           =       λ.(↑2 0 ↑2 1) (λ. ↑2 (0 1 2))
                                       1     1         2
                           =       λ.(0 3) (λ.(↑2 (0 1) ↑2 2))
                                                2        2
                           =       λ.(0 3) (λ.(↑2 0 ↑2 1) 4)
                                                2     2
                           =       λ.(0 3) (λ. 0 1 4)
姜 (本位田研)                       TAPL6                    January 24, 2012   9 / 12
Shift



                       代入



Definition: Substitution
                        s (if k = j)
          [j �→ s]k =
                        k (otherwise)
                      �


       [j �→ s](λ.t1 ) = λ.[j + 1 �→↑1 (s)]t1
     [j �→ s](t1 t2 ) = ([j �→ s]t1 [j �→ s]t2 )




   姜 (本位田研)               TAPL6           January 24, 2012   10 / 12
Shift



                代入の計算例
nameless form に変換し て 代入し たも のが, 代入し て
nameless form に変換し たも のと 等し いこ と を 確認せよ
                   Γ = a, b
      [b �→ a](b (λx.λy.b)) = a (λx.λy.a)
[0 �→ 1](0 (λ.λ.2)) =       [0 �→ 1]0 [0 �→ 1](λ.λ.2)
                    =       1 (λ.[1 �→↑1 1](λ. 2))
                    =       1 (λ.[1 �→ 2](λ. 2))
                    =       1 (λ.λ. [2 �→↑1 2]2)
                    =       1 (λ.λ.[2 �→ 3]2)
                    =       1 (λ.λ.3)
   姜 (本位田研)             TAPL6              January 24, 2012   11 / 12
Evaluation



                          Evaluation
P72,5-3 と ほぼ同様で , 違いは E-AppAbs
Definition:E-AppAbs
            (λ.t12 ) v2 →↑−1 ([0 �→↑1 (v2 )]t12 )

Example

     (λ.1 0 2) (λ.0) →    ↑−1 ([0 �→↑1 (λ.0)](1 0 2))
                     →    ↑−1 ([0 �→ (λ. ↑1 0)](1 0 2))
                                          1
                     →    ↑−1 ([0 �→ (λ.0)](1 0 2))
                     →    ↑−1 (1 (λ.0) 2)
                     →    ↑−1 (1 (λ.0)) ↑−1 2
                     →    ↑−1 1 ↑−1 (λ.0) 1
                     →    0 (λ. ↑−1 0) 1
                                 1
                     →    0 (λ.0) 1
     姜 (本位田研)                      TAPL6              January 24, 2012   12 / 12

More Related Content

Viewers also liked

20081120 Acao Artigo 10 Aripuana
20081120 Acao Artigo 10 Aripuana20081120 Acao Artigo 10 Aripuana
20081120 Acao Artigo 10 Aripuanachlima
 
Fotos1 Encontro Ex Dd270210
Fotos1 Encontro Ex Dd270210Fotos1 Encontro Ex Dd270210
Fotos1 Encontro Ex Dd270210Madalena Relvão
 
Krupskaya garcia prueba de computacion ii
Krupskaya garcia prueba de computacion iiKrupskaya garcia prueba de computacion ii
Krupskaya garcia prueba de computacion iiKrupskaya Garcia
 
Wall e el robot limpia ventanas
Wall e el robot limpia ventanasWall e el robot limpia ventanas
Wall e el robot limpia ventanasneidersalazar
 
ゆるべんデッサン大会Vol1
ゆるべんデッサン大会Vol1ゆるべんデッサン大会Vol1
ゆるべんデッサン大会Vol1wooven info
 
Gonzalo 6º
Gonzalo 6ºGonzalo 6º
Gonzalo 6ºLiliana
 
RelatóRio De Atividade 2009
RelatóRio De Atividade 2009RelatóRio De Atividade 2009
RelatóRio De Atividade 2009chlima
 
Chapel Valley Estate
Chapel Valley EstateChapel Valley Estate
Chapel Valley Estateddangelo1
 
Breakingg heart
Breakingg heartBreakingg heart
Breakingg heartBreeBree15
 
Erica gutierrez math pwer point
Erica gutierrez math pwer pointErica gutierrez math pwer point
Erica gutierrez math pwer pointerica14
 
งานนำเสนอ2
งานนำเสนอ2งานนำเสนอ2
งานนำเสนอ215112090
 
Benvinguts a cinquè
Benvinguts a cinquèBenvinguts a cinquè
Benvinguts a cinquèANTSEB
 

Viewers also liked (20)

20081120 Acao Artigo 10 Aripuana
20081120 Acao Artigo 10 Aripuana20081120 Acao Artigo 10 Aripuana
20081120 Acao Artigo 10 Aripuana
 
Fotos1 Encontro Ex Dd270210
Fotos1 Encontro Ex Dd270210Fotos1 Encontro Ex Dd270210
Fotos1 Encontro Ex Dd270210
 
Europa
EuropaEuropa
Europa
 
Krupskaya garcia prueba de computacion ii
Krupskaya garcia prueba de computacion iiKrupskaya garcia prueba de computacion ii
Krupskaya garcia prueba de computacion ii
 
Wall e el robot limpia ventanas
Wall e el robot limpia ventanasWall e el robot limpia ventanas
Wall e el robot limpia ventanas
 
Comunicado 4 julho 2012
Comunicado 4 julho 2012Comunicado 4 julho 2012
Comunicado 4 julho 2012
 
ゆるべんデッサン大会Vol1
ゆるべんデッサン大会Vol1ゆるべんデッサン大会Vol1
ゆるべんデッサン大会Vol1
 
Gonzalo 6º
Gonzalo 6ºGonzalo 6º
Gonzalo 6º
 
RelatóRio De Atividade 2009
RelatóRio De Atividade 2009RelatóRio De Atividade 2009
RelatóRio De Atividade 2009
 
Chapel Valley Estate
Chapel Valley EstateChapel Valley Estate
Chapel Valley Estate
 
Dia Da Internet Segura
Dia Da Internet SeguraDia Da Internet Segura
Dia Da Internet Segura
 
Breakingg heart
Breakingg heartBreakingg heart
Breakingg heart
 
Tutorial animoto 1
Tutorial animoto 1Tutorial animoto 1
Tutorial animoto 1
 
Actividad de clase
Actividad de claseActividad de clase
Actividad de clase
 
Erica gutierrez math pwer point
Erica gutierrez math pwer pointErica gutierrez math pwer point
Erica gutierrez math pwer point
 
Dia de la pau
Dia de la pauDia de la pau
Dia de la pau
 
งานนำเสนอ2
งานนำเสนอ2งานนำเสนอ2
งานนำเสนอ2
 
Pontalgar 2012
Pontalgar 2012Pontalgar 2012
Pontalgar 2012
 
Flipbook
FlipbookFlipbook
Flipbook
 
Benvinguts a cinquè
Benvinguts a cinquèBenvinguts a cinquè
Benvinguts a cinquè
 

Similar to Tapl6

Icml yomikai 07_16
Icml yomikai 07_16Icml yomikai 07_16
Icml yomikai 07_16Yo Ehara
 
Jokyonokai
JokyonokaiJokyonokai
Jokyonokainwpmq516
 
OWLで何が言えるか
OWLで何が言えるかOWLで何が言えるか
OWLで何が言えるかKazuro Fukuhara
 
2022年度秋学期 応用数学(解析) 第7回 2階線形微分方程式(1) (2022. 11. 10)
2022年度秋学期 応用数学(解析) 第7回 2階線形微分方程式(1) (2022. 11. 10) 2022年度秋学期 応用数学(解析) 第7回 2階線形微分方程式(1) (2022. 11. 10)
2022年度秋学期 応用数学(解析) 第7回 2階線形微分方程式(1) (2022. 11. 10) Akira Asano
 
Grcosmo 44 slide
Grcosmo 44 slideGrcosmo 44 slide
Grcosmo 44 slideKENTAROHARA
 
TaPL_chap11
TaPL_chap11TaPL_chap11
TaPL_chap11a-hisame
 
mathemaical_notation
mathemaical_notationmathemaical_notation
mathemaical_notationKenta Oono
 

Similar to Tapl6 (8)

Icml yomikai 07_16
Icml yomikai 07_16Icml yomikai 07_16
Icml yomikai 07_16
 
linhyp.pdf
linhyp.pdflinhyp.pdf
linhyp.pdf
 
Jokyonokai
JokyonokaiJokyonokai
Jokyonokai
 
OWLで何が言えるか
OWLで何が言えるかOWLで何が言えるか
OWLで何が言えるか
 
2022年度秋学期 応用数学(解析) 第7回 2階線形微分方程式(1) (2022. 11. 10)
2022年度秋学期 応用数学(解析) 第7回 2階線形微分方程式(1) (2022. 11. 10) 2022年度秋学期 応用数学(解析) 第7回 2階線形微分方程式(1) (2022. 11. 10)
2022年度秋学期 応用数学(解析) 第7回 2階線形微分方程式(1) (2022. 11. 10)
 
Grcosmo 44 slide
Grcosmo 44 slideGrcosmo 44 slide
Grcosmo 44 slide
 
TaPL_chap11
TaPL_chap11TaPL_chap11
TaPL_chap11
 
mathemaical_notation
mathemaical_notationmathemaical_notation
mathemaical_notation
 

Recently uploaded

UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptyuitoakatsukijp
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfTEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfyukisuga3
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 

Recently uploaded (6)

UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfTEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdf
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 

Tapl6

  • 1. Types And Programming Languages Ch.6 Nameless Representation of Terms 姜 本位田研 January 24, 2012 姜 (本位田研) TAPL6 January 24, 2012 1 / 12
  • 2. 5 章での問題 変数名が衝突す る と 暗黙にに変数名を 変更す る 必要がある ↓ 変数名の変更が不要なも のを 作る ↓ de Bruijn terms を 導入し て みよ う 姜 (本位田研) TAPL6 January 24, 2012 2 / 12
  • 3. 5 章での問題 変数名が衝突す る と 暗黙にに変数名を 変更す る 必要がある ↓ 変数名の変更が不要なも のを 作る ↓ de Bruijn terms を 導入し て みよ う 姜 (本位田研) TAPL6 January 24, 2012 2 / 12
  • 4. 5 章での問題 変数名が衝突す る と 暗黙にに変数名を 変更す る 必要がある ↓ 変数名の変更が不要なも のを 作る ↓ de Bruijn terms を 導入し て みよ う 姜 (本位田研) TAPL6 January 24, 2012 2 / 12
  • 5. Term de Bruijn terms Informal definition Replacing named variables by natural numbers, where the number k stands for “the variable bound by the k’th enclosing λ.” Example λx.x は λ.0, λx.λy. x (y x) は λ.λ. 1 (0 1) と し て 表現でき る 姜 (本位田研) TAPL6 January 24, 2012 3 / 12
  • 6. Term 6.1.1 f ix = λf. (λx. f (λy. (x x) y)) (λx. f (λy. (x x) y)) は f ix = λ.(λ. 1 (λ. (1 1) 0)) (λ. 1 (λ. (1 1) 0)) と し て 表現さ れる . f oo = (λx. (λx. x)) (λx. x) は f oo = (λ. (λ. 0)) (λ. 0) 姜 (本位田研) TAPL6 January 24, 2012 4 / 12
  • 7. Term Definition:Terms 各 term がいく つ自由変数を も つか, を 常に追いながら term を 定義する Terms Let T be the smallest family of sets {T0 , T1 , T2 , . . . } st. 1 k ∈ Tn whenever 0 ≤ k < n; 2 if t1 ∈ Tn and n > 0, then λ.t1 ∈ Tn−1 ; 3 if t1 ∈ Tn and t2 ∈ Tn then (t1 t2 ) ∈ Tn Tn を n-terms と 呼ぶ 姜 (本位田研) TAPL6 January 24, 2012 5 / 12
  • 8. Term naming context Γ=x �→ 4 y �→ 3 z �→ 2 a �→ 1 b �→ 0 こ の Γ が naming context で , x (y z) は 4 (3 2) Γ = xn , xn−1 . . . x0 と し て λw. y w は λ. 4 0 表現でき , こ こ では λw.λa.λx は λ.λ.6 Γ = x, y, z, a, b 姜 . である(本位田研) TAPL6 January 24, 2012 6 / 12
  • 9. Shift シ フ ト と 代入 ([k �→ s]t) を 考え る . k が代入によ っ て コ ン テク ス ト から 除去さ れ, そ の分シ フ ト す る 必要がある . [1 �→ s](λ.2) であれば , 1 が除去さ れて 2 は 1 に繰り 下げら れる . し かし , 除去さ れる 番号によ っ て は , 繰り 下げる べき も のと そ う で ないも のがある だろ う . シ フ ト 演算子 ↑d (k) c c を 起点に d 分だけ k を 繰り 下げる k が c よ り 大き け れば d だけ 繰り 下げる 姜 (本位田研) TAPL6 January 24, 2012 7 / 12
  • 10. Shift Shifting Definition:Shifting k (if k < c) ↑d c (k) = k + d (if k ≥ c) � ↑d (λ.t1 ) = λ. ↑d (t1 ) c c+1 ↑d (t1 t2 ) = ↑d (t1 ) ↑d (t2 ) c c c ま た , ↑d は ↑d を あら わす 0 姜 (本位田研) TAPL6 January 24, 2012 8 / 12
  • 11. Shift 計算例 ↑2 (λ.λ. 1 (0 2))) = (λ. ↑2 λ. 1 (0 2))) 1 = (λ.λ. (↑2 (1 (0 2)))) 2 = (λ.λ. (↑2 1 ↑2 (0 2))) 2 2 = (λ.λ. 1 (↑2 0 ↑2 2)) 2 2 = (λ.λ. 1 (0 4)) ↑2 (λ. 0 1 (λ. 0 1 2)) = λ. ↑2 (0 1 (λ. 0 1 2)) 1 = λ. (↑2 (0 1) ↑2 (λ. 0 1 2)) 1 1 = λ.(↑2 0 ↑2 1) (λ. ↑2 (0 1 2)) 1 1 2 = λ.(0 3) (λ.(↑2 (0 1) ↑2 2)) 2 2 = λ.(0 3) (λ.(↑2 0 ↑2 1) 4) 2 2 = λ.(0 3) (λ. 0 1 4) 姜 (本位田研) TAPL6 January 24, 2012 9 / 12
  • 12. Shift 代入 Definition: Substitution s (if k = j) [j �→ s]k = k (otherwise) � [j �→ s](λ.t1 ) = λ.[j + 1 �→↑1 (s)]t1 [j �→ s](t1 t2 ) = ([j �→ s]t1 [j �→ s]t2 ) 姜 (本位田研) TAPL6 January 24, 2012 10 / 12
  • 13. Shift 代入の計算例 nameless form に変換し て 代入し たも のが, 代入し て nameless form に変換し たも のと 等し いこ と を 確認せよ Γ = a, b [b �→ a](b (λx.λy.b)) = a (λx.λy.a) [0 �→ 1](0 (λ.λ.2)) = [0 �→ 1]0 [0 �→ 1](λ.λ.2) = 1 (λ.[1 �→↑1 1](λ. 2)) = 1 (λ.[1 �→ 2](λ. 2)) = 1 (λ.λ. [2 �→↑1 2]2) = 1 (λ.λ.[2 �→ 3]2) = 1 (λ.λ.3) 姜 (本位田研) TAPL6 January 24, 2012 11 / 12
  • 14. Evaluation Evaluation P72,5-3 と ほぼ同様で , 違いは E-AppAbs Definition:E-AppAbs (λ.t12 ) v2 →↑−1 ([0 �→↑1 (v2 )]t12 ) Example (λ.1 0 2) (λ.0) → ↑−1 ([0 �→↑1 (λ.0)](1 0 2)) → ↑−1 ([0 �→ (λ. ↑1 0)](1 0 2)) 1 → ↑−1 ([0 �→ (λ.0)](1 0 2)) → ↑−1 (1 (λ.0) 2) → ↑−1 (1 (λ.0)) ↑−1 2 → ↑−1 1 ↑−1 (λ.0) 1 → 0 (λ. ↑−1 0) 1 1 → 0 (λ.0) 1 姜 (本位田研) TAPL6 January 24, 2012 12 / 12