takuro.onishi@gmail.com II 2009 6 11
[A] D B A B A B A B
DVD
y = 2x + 5 x = 3 y = 11 x = 5 y = 15.
Google Web
(2 + 3) 5 25 2 3 5 25
Windows Media Player Media Player
(typed lambda calculus)
(computer science)
f(x) = (x + 3) 5 (x + 3) 5
(2 + 3) 5 2 3 5 +! (2+3)!5
(x + 3) 5 3 5 +! ( +3)!5
(x + 3) 5 x 3 5 +! (x+3)!5
(x + 3) 5
(x + 3) 5 x 3 5 +! (x+3)!5
x 3 5 +! (x+3)!5
λx.((x + 3) 5)
λx.((x + 3) 5) x 3 5 +! (x+3)!5
λx.((x + 3) 5) x (x + 3) 5
x 3 5 +! (x+3)!5
(x + 3) 5 x
(x + 3) 5 x x
(x + 3) 5 x (x + 3) 5 (x + 3) 5 x
x x : int x x int integer int
(x + 3) 5 x (x + 3) 5 : int x : int
λx.((x + 3) 5) x 3 5 +! (x+3)!5
λx.((x + 3) 5) x (x + 3) 5 λx.((x + 3) 5) : int int
λx.((x + 3) 5) : int int A B A B
x (x + 3) 5 x : int (x + 3) 5 : int λx.((x + 3) 5) : int int
[x : int]. (x + 3) 5 : int λx.((x + 3) 5) : int int λx.((x + 3) 5)
[x : A] D M : B λx.m : A B (abs) x A B M λx.m
[x : A] D M : B λx.m : A B (abs) λx.m A B A B x : A
[x : A] D M : B λx.m : A B (abs) (λ-abstraction)
λx.((x + 3) 5) : int int 2 (λx.((x + 3) 5)) 2 λx.((x + 3) 5) 2
2 (λx.((x + 3) 5)) 2 λx.((x + 3) 5) (λx.((x + 3) 5)) λx.((x + 3) 5)
2 (λx.((x + 3) 5)) M N M M M : A B 2 : int
(λx.((x + 3) 5)) λx.((x + 3) 5) λx.((x + 3) 5) : int int
M : A B N : A (app) MN : B M A B A B
M : A B N : A (app) MN : B
int (char) (Boolean) int int int (int int) (int int) (int int)
+ + : int (int int) : int (int int)
[x : A] D M : B λx.m : A B M : A B N : A MN : B
λx.((x + 3) 5) + : i (i i) [x : i] x + : i i 3 : i : i (i i) (x + 3) : i (x + 3) : i i 5 : i ((x + 3) 5) : i λx.((x + 3) 5) : i i int i x 3 5 +! (x+3)!5
λx.((x + 3) 5) (typed lambda calculus)
(λx.((x + 3) 5)) 2
λx.((x + 3) 5) 3 5 +! ( +3)!5
(λx.((x + 3) 5)) 2 2 ( +3)!5 + 3! 5
(λx.((x + 3) 5)) 2 (2 + 3) 5 2 3 5 +! (2+3)!5
x (λx.((x + 3) 5)) 2 (2 + 3) 5 = 25
(λx.((x + 3) 5)) 2 (2 + 3) 5 = 25 (λx.((x + 3) 5)) 3 (3 + 3) 5 = 30 (λx.((x + 3) 5)) 4 (4 + 3) 5 = 35.
β (λx.m)n M[x := N] (β-reduction)
[x : A] D M : B λx.m : A B M : A B N : A MN : B (λx.m)n M[x := N]
[x : A] D M : B λx.m : A B M : A B N : A MN : B (λx.m)n M[x := N]
.. λy.n 1 : A B. N 2 : A λx.m : B C (λy.n 1 )N 2 : B (λx.m)((λy.n 1 ) N 2 ) : C λy.n 1 N 2 λx.m
(λx.m)((λy.n 1 ) N 2 ) λy.n 1 N 2 λx.m 1 (λx.m)((λy.n 1 )N 2 ) (λx.m)(n 1 [y := N 2 ]) λx.m N 1 [y := N 2 ]
.. λx.m : B C N 1 [y := N 2 ] : B? (λx.m)(n 1 [y := N 2 ]) : C? N 1 [y := N 2 ] B λx.m
(λx.m)n : B M[x := N] : B
(λx.m)n M[x := N] (λx.m)n. D 1 λx.m : A B N : A (λx.m)n : B
(λx.m)n M[x := N] [x : A] D 0 M : B λx.m : A B (λx.m)n : B D 1 N : A
(λx.m)n M[x := N] [x : A] D 0 M : B λx.m : A B (λx.m)n : B D 1 N : A
(λx.m)n M[x := N] D 1 N : A D 0 [x := N] M[x := N] : B
[x : A] D 0 M : B λx.m : A B (λx.m)n : B D 1 N : A D 1 N : A D 0 [x := N] M[x := N] : B x N x N
x 3 5 +! (x+3)!5
[x : A] D M : B λx.m : A B M : A B N : A MN : B
+ : i (i i) [x : i] x + : i i 3 : i : i (i i) (x + 3) : i (x + 3) : i i 5 : i ((x + 3) 5) : i λx.((x + 3) 5) : i i
(λx.m)n M[x := N] [x : A] D 0 M : B λx.m : A B (λx.m)n : B D 1 N : A D 1 N : A D 0 [x := N] M[x := N] : B
[x : A] D M : B λx.m : A B M : A B N : A MN : B (λx.m)n M[x := N]
Recall
[x : A] D M : B λx.m : A B [A] D B A B M : A B N : A MN : B A B A B
[x : A] D M : B λx.m : A B [A] D B A B λx.m
M : A B N : A MN : B A B A B M N
A x : A
[A (B C)] [A] [A B] [A] B C B C A C (A B) (A C) (A (B C)) ((A B) (A C))
[x : A (B C)] [y : A] [z : A B] [y : A] xy : B C zy : B (xy)(zy) : C λy.((xy)(zy)) : A C λzλy.((xy)(zy)) : (A B) (A C) λxλzλy.((xy)(zy)) : (A (B C)) ((A B) (A C))
= = =
(λx.m)n M[x := N] [x : A] D 0 M : B λx.m : A B (λx.m)n : B D 1 N : A D 1 N : A D 0 [x := N] M[x := N] : B
[x : A] D 0 M : B λx.m : A B (λx.m)n : B D 1 N : A D 1 N : A D 0 [x := N] M[x := N] : B
[A] D 0 B A B B D 1 A D 1 A D 0 B
[A] D 0 B A B B D 1 A
[A] D 0 B A B B D 1 A D 1 A A A
[A] D 0 B A B B D 1 A [A] D 0 B A B A B A B
[A] D 0 B A B B D 1 A A B A B
1. A 2. A B A B 3. A B A B B 1. A 2. A B B
[A] D 0 B A B B D 1 A D 1 A D 0 B A B
[A] D 0 B A B B D 1 A D 1 A D 0 B (reduction)
[A] D 0 B A B B D 1 A B
[A] D 0 B A B B D 1 A B A B A A B A B
[A] D 0 B A B B D 1 A A D 0 B B B A A B
[A] D 0 B A B B D 1 A D 1 A D 0 B B
[x : A] D M : B λx.m : A B [A] D B A B M : A B N : A MN : B A B A B
[x : A] D 0 M : B λx.m : A B (λx.m)n : B [A] D 0 B A B B D 1 N : A D 1 A D 1 N : A D 0 [x := N] M[x := N] : B D 1 A D 0 B
= = =
[2005]
[2005]