Presentation is loading. Please wait.

Presentation is loading. Please wait.

David Evans CS200: Computer Science University of Virginia Computer Science Class 32: The Meaning of Truth.

Similar presentations


Presentation on theme: "David Evans CS200: Computer Science University of Virginia Computer Science Class 32: The Meaning of Truth."— Presentation transcript:

1 David Evans http://www.cs.virginia.edu/evans CS200: Computer Science University of Virginia Computer Science Class 32: The Meaning of Truth

2 7 April 2004CS 200 Spring 20042 Menu Lambda Calculus Review How to Prove Something is a Universal Computer Making “Primitives”

3 7 April 2004CS 200 Spring 20043 Lambda Calculus Review ( f. (( x. f (xx)) ( x. f (xx)))) ( z.z) term ::= variable |term term | (term)| variable. term  -reduction(renaming) y. M   v. (M [y v]) where v does not occur in M.  -reduction(substitution) ( x. M)N   M [ x N ] Parens are just for grouping, not like in Scheme

4 7 April 2004CS 200 Spring 20044 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))  ...

5 7 April 2004CS 200 Spring 20045 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)  ...

6 7 April 2004CS 200 Spring 20046 Be Very Afraid! Some -calculus terms can be  -reduced forever! The order in which you choose to do the reductions might change the result!

7 7 April 2004CS 200 Spring 20047 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

8 7 April 2004CS 200 Spring 20048 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

9 7 April 2004CS 200 Spring 20049 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

10 7 April 2004CS 200 Spring 200410 Simulating Computation zzzzzzzzzzzzzzzzzzzz 1 Start HALT ), X, L 2: look for ( #, 1, -  ), #, R  (, #, L (, X, R #, 0, - Finite State Machine 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?

11 7 April 2004CS 200 Spring 200411 Simulating Computation zzzzzzzzzzzzzzzzzzzz 1 Start HALT ), X, L 2: look for ( #, 1, -  ), #, R  (, #, L (, X, R #, 0, - Finite State Machine 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

12 7 April 2004CS 200 Spring 200412 Making “Primitives” from Only Glue ( )

13 7 April 2004CS 200 Spring 200413 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

14 7 April 2004CS 200 Spring 200414 Charge Remember: if you have team requests for PS8, I must receive them before midnight tonight! Friday: finish discovering truth (and proving lambda calculus is as powerful as a Turing Machine) Monday: Review session for Exam 2


Download ppt "David Evans CS200: Computer Science University of Virginia Computer Science Class 32: The Meaning of Truth."

Similar presentations


Ads by Google