Transcript Slides
Class 28:
The
Meaning of
Truth
http://chandra.harvard.edu/photo/2001/0094true/0094true_hand.html
CS150: Computer Science
University of Virginia
Computer Science
David Evans
http://www.cs.virginia.edu/evans
-calculus
Alonzo Church, 1940
(LISP was developed from -calculus,
not the other way round.)
term = variable
| term term
| (term)
| variable . term
CS150 Fall 2005: Lecture 28: Lambda Calculus
2
Reduction (Uninteresting Rules)
y. M v. (M [y v])
where v does not occur in M.
MM
M N PM PN
M N MP NP
M N x. M x. N
M N and N P M P
CS150 Fall 2005: Lecture 28: Lambda Calculus
3
-Reduction
(the source of all computation)
(x. M)N M [ x N ]
CS150 Fall 2005: Lecture 28: Lambda Calculus
4
Evaluating Lambda Expressions
• redex: Term of the form (x. M)N
Something that can be -reduced
• An expression is in normal form if it
contains no redexes (redices).
• To evaluate a lambda expression, keep
doing reductions until you get to normal
form.
CS150 Fall 2005: Lecture 28: Lambda Calculus
5
Recall Apply in Scheme
“To apply a procedure to a list of
arguments, evaluate the procedure in a
new environment that binds the formal
parameters of the procedure to the
arguments it is applied to.”
• We’ve replaced environments with
substitution.
• We’ve replaced eval with reduction.
CS150 Fall 2005: Lecture 28: Lambda Calculus
6
Some Simple Functions
I x.x
C xy.yx
Abbreviation for x.(y. yx)
CII = (x.(y. yx)) (x.x) (x.x)
(y. y (x.x)) (x.x)
x.x (x.x)
x.x
=I
CS150 Fall 2005: Lecture 28: Lambda Calculus
7
Example
f. (( x.f (xx)) ( x. f (xx)))
Try this one at home...
CS150 Fall 2005: Lecture 28: Lambda Calculus
8
Alyssa P. Hacker’s Answer
( f. (( x.f (xx)) ( x. f (xx)))) (z.z)
(x.(z.z)(xx)) ( x. (z.z)(xx))
(z.z) ( x.(z.z)(xx)) ( x.(z.z)(xx))
(x.(z.z)(xx)) ( x.(z.z)(xx))
(z.z) ( x.(z.z)(xx)) ( x.(z.z)(xx))
(x.(z.z)(xx)) ( x.(z.z)(xx))
...
CS150 Fall 2005: Lecture 28: Lambda Calculus
9
Ben Bitdiddle’s Answer
( f. (( x.f (xx)) ( x. f (xx)))) (z.z)
(x.(z.z)(xx)) ( x. (z.z)(xx))
(x.xx) (x.(z.z)(xx))
(x.xx) (x.xx)
(x.xx) (x.xx)
...
CS150 Fall 2005: Lecture 28: Lambda Calculus
10
Be Very Afraid!
• Some -calculus terms can be -reduced
forever!
• The order in which you choose to do the
reductions might change the result!
CS150 Fall 2005: Lecture 28: Lambda Calculus
11
Take on Faith (until CS655)
• All ways of choosing reductions that reduce
a lambda expression to normal form will
produce the same normal form (but some
might never produce a normal form).
• If we always apply the outermost lambda
first, we will find the normal form if there is
one.
– This is normal order reduction – corresponds to
normal order (lazy) evaluation
CS150 Fall 2005: Lecture 28: Lambda Calculus
12
Universal Language
• Is Lambda Calculus a universal language?
– Can we compute any computable algorithm
using Lambda Calculus?
• To prove it isn’t:
– Find some Turing Machine that cannot be
simulated with Lambda Calculus
• To prove it is:
– Show you can simulate every Turing Machine
using Lambda Calculus
CS150 Fall 2005: Lecture 28: Lambda Calculus
13
Simulating Every Turing Machine
• A Universal Turing Machine can simulate
every Turing Machine
• So, to show Lambda Calculus can simulate
every Turing Machine, all we need to do is
show it can simulate a Universal Turing
Machine
CS150 Fall 2005: Lecture 28: Lambda Calculus
14
Simulating Computation
z z
z
z
z
z
z
z
), X, L
), #, R
(, #, L
2:
look
for (
1
Start
(, X, R
#, 1, -
HALT
#, 0, -
Finite State Machine
CS150 Fall 2005: Lecture 28: Lambda Calculus
z
z
z
z
z
z
z
z z
z
z
z
• Lambda expression
corresponds to a computation:
input on the tape is
transformed into a lambda
expression
• Normal form is that value of
that computation: output is
the normal form
• How do we simulate the FSM?
15
Simulating Computation
z z
z
z
z
z
z
z
), X, L
), #, R
(, #, L
2:
look
for (
1
Start
(, X, R
#, 1, -
HALT
#, 0, -
Finite State Machine
CS150 Fall 2005: Lecture 28: Lambda Calculus
z
z
z
z
z
z
z
z z
z
z
z
Read/Write Infinite Tape
Mutable Lists
Finite State Machine
Numbers to keep track of state
Processing
Way of making decisions (if)
Way to keep going
16
Making “Primitives”
from Only Glue ()
CS150 Fall 2005: Lecture 28: Lambda Calculus
17
In search of the truth?
• What does true mean?
• True is something that when used as the
first operand of if, makes the value of the
if the value of its second operand:
if T M N M
CS150 Fall 2005: Lecture 28: Lambda Calculus
18
Don’t search for T, search for if
T x (y. x)
xy. x
F x ( y. y))
if pca . pca
CS150 Fall 2005: Lecture 28: Lambda Calculus
19
Finding the Truth
T x . (y. x)
F x . (y. y)
if p . (c . (a . pca)))
Is the if necessary?
if T M N
((pca . pca) (xy. x)) M N
(ca . (x.(y. x)) ca)) M N
(x.(y. x)) M N
(y. M )) N M
CS150 Fall 2005: Lecture 28: Lambda Calculus
20
and and or?
and x (y. if x y F))
or x (y. if x T y))
CS150 Fall 2005: Lecture 28: Lambda Calculus
21
Lambda Calculus is a Universal Computer?
z z
z
z
z
z
z
z
z
z
z
z
z
z
z
z z
z
z
z
), X, L
), #, R
(, #, L
2:
look
for (
1
Start
(, X, R
#, 1, -
HALT
#, 0, -
Finite State Machine
CS150 Fall 2005: Lecture 28: Lambda Calculus
• Read/Write Infinite Tape
?
Mutable Lists
• Finite State Machine
?
Numbers to keep track of state
• Processing
Way of making decisions (if)
?
Way to keep going
22
Charge
• PS6 Due Monday
• Start thinking about web application ideas
for PS8
– If you find a team and idea quickly (by Nov 2),
you can negotiate what you need to do for PS7
• Week after: we will finish this proof
– How to make the other things we need to
simulate a Turing machine using only Lambda
Calculus
CS150 Fall 2005: Lecture 28: Lambda Calculus
23