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