# David Evans cs.virginia/evans - PowerPoint PPT Presentation

David Evans cs.virginia/evans

1 / 26
David Evans cs.virginia/evans

## David Evans cs.virginia/evans

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
##### Presentation Transcript

1. Class 33: Learning to Count David Evans http://www.cs.virginia.edu/evans CS200: Computer Science University of Virginia Computer Science

2. Universal Computation z z z z z z z z 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 ), X, L ), #, R (, #, L 2: look for ( 1 Start (, X, R HALT #, 0, - #, 1, - Finite State Machine To prove Lambda Calculus is as powerful as a UTM, we must show we can make everything we need to simulate any TM. CS 200 Spring 2004

3. Making “Primitives”from Only Glue () CS 200 Spring 2004

4. In search of thetruth? • 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: ifTMN M CS 200 Spring 2004

5. Don’t search for T, search for if T  x (y. x)  xy. x F  x ( y. y)) if pca . pca CS 200 Spring 2004

6. Finding the Truth T  x . (y. x) F  x . (y. y) if p . (c . (a . pca))) 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 Is the if necessary? CS 200 Spring 2004

7. and and or? and x (y. ifxyF)) or x (y. ifxTy)) CS 200 Spring 2004

8. 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 • 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 Start (, X, R HALT #, 0, - #, 1, - Finite State Machine CS 200 Spring 2004

9. What is 42? 42 forty-two XLII cuarenta y dos CS 200 Spring 2004

10. Meaning of Numbers • “42-ness” is something who’s successor is “43-ness” • “42-ness” is something who’s predecessor is “41-ness” • “Zero” is special. It has a successor “one-ness”, but no predecessor. CS 200 Spring 2004

11. Meaning of Numbers pred (succ N)  N succ (pred N)  N succ (pred (succ N))  succ N CS 200 Spring 2004

12. Meaning of Zero zero? zero  T zero? (succ zero)  F zero? (pred (succ zero))  T CS 200 Spring 2004

13. Is this enough? • Can we define add with pred, succ, zero?and zero? add  xy.if(zero?x) y (add(predx)(succy)) CS 200 Spring 2004

14. Can we define lambda terms that behave likezero, zero?, pred and succ? Hint: what if we had cons, car and cdr? CS 200 Spring 2004

15. Numbers are Lists... zero?  null? pred  cdr succ   x . cons F x CS 200 Spring 2004

16. Making Pairs Remember PS2… (define (make-point x y) (lambda (selector) (if selector x y))) (define (x-of-point point) (point #t)) (define (y-of-point point) (point #f)) CS 200 Spring 2004

17. cons and car cons x.y.z.zxy cons M N = (x.y.z.zxy)M N   (y.z.zMy)N   z.zMN carp.p T car (cons M N)  car(z.zMN)  (p.p T) (z.zMN)   (z.zMN) T   TMN   (x . y. x)MN   (y. M)N   M T  x . y. x CS 200 Spring 2004

18. cdr too! cons xyz.zxy carp.p T cdrp.p F cdr consMN cdrz.zMN = (p.p F) z.zMN   (z.zMN) F   FMN   N CS 200 Spring 2004

19. Null and null? nullx.T null?x.(x y.z.F) null? null  x.(x y.z.F) (x. T)   (x. T)(y.z.F)   T CS 200 Spring 2004

20. Null and null? nullx.T null?x.(x y.z.F) null? (cons M N)  x.(x y.z.F) z.zMN   (z.z MN)(y.z.F)   (y.z.F)MN   F CS 200 Spring 2004

21. Counting 0 null 1 cons F 0 2 cons F 1 3 cons F 2 ... succ  x.consFx pred  x.cdrx CS 200 Spring 2004

22. 42 = xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y xy.(z.z xy) xy. y x.T CS 200 Spring 2004

23. Arithmetic zero? null? succ  x. cons F x pred x.x F pred 1 = (x.x F) cons Fnull   (cons Fnull) F  (xyz.zxy Fnull) F   (z.z Fnull) F  FFnull   null  0 CS 200 Spring 2004

24. 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 • 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 Start (, X, R HALT #, 0, - #, 1, - Finite State Machine We have this, but we cheated using  to make recursive definitions! CS 200 Spring 2004

25. Way to Keep Going ( 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)) ... This should give you some belief that we might be able to do it. We won’t cover the details of why this works in this class. (CS655 sometimes does.) CS 200 Spring 2004

26. Charge • Monday: Review session for Exam 2 • Exam 2 covers through today • There will definitely be a question that requires understanding the answer to question 5 on the PS7 comments! • Tuesday Office Hours • 1-2pm and 4-5pm • Exam 2 out Wednesday CS 200 Spring 2004