Presentation is loading. Please wait.

Presentation is loading. Please wait.

David Evans CS150: Computer Science University of Virginia Computer Science Class 32: Computability in Theory and Practice.

Similar presentations


Presentation on theme: "David Evans CS150: Computer Science University of Virginia Computer Science Class 32: Computability in Theory and Practice."— Presentation transcript:

1 David Evans http://www.cs.virginia.edu/evans CS150: Computer Science University of Virginia Computer Science Class 32: Computability in Theory and Practice

2 2 CS150 Fall 2005: Lecture 32: Computability Menu Lambda Calculus Review Computability in Theory and Practice Learning to Count

3 3 CS150 Fall 2005: Lecture 32: Computability Universal 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 To prove Lambda Calculus is as powerful as a UTM, we must show we can make everything we need to simulate any TM.

4 4 CS150 Fall 2005: Lecture 32: Computability Don’t search for T, search for if T  x ( y. x)  xy. x F  x ( y. y)) if  pca. pca

5 5 CS150 Fall 2005: Lecture 32: Computability 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?

6 6 CS150 Fall 2005: Lecture 32: Computability and and or? and  x ( y. if x y F)) or  x ( y. if x T y))

7 7 CS150 Fall 2005: Lecture 32: Computability Lambda Calculus is a Universal Computer? 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

8 8 CS150 Fall 2005: Lecture 32: Computability Computability in Theory and Practice (Intellectual Computability Discussion on TV Video)

9 9 CS150 Fall 2005: Lecture 32: Computability Ali G Multiplication Problem Input: a list of 2 numbers with up to d digits each Output: the product of the 2 numbers Is it decidable? Yes – a straightforward algorithm solves it. Is it tractable? (how much work?) Yes – it using elementary multiplication techniques it is O( d 2 ) Can real computers solve it?

10

11

12 12 CS150 Fall 2005: Lecture 32: Computability What about C++? int main (void) { int alig = 999999999; printf ("Value: %d\n", alig); alig = alig * 99; printf ("Value: %d\n", alig); alig = alig * 99; printf ("Value: %d\n", alig); alig = alig * 99; printf ("Value: %d\n", alig); } Value: 999999999 Value: 215752093 Value: -115379273 Value: 1462353861 Results from SunOS 5.8:

13 13 CS150 Fall 2005: Lecture 32: Computability Ali G was Right! Theory assumes ideal computers: –Unlimited, perfect memory –Unlimited (finite) time Real computers have: –Limited memory, time, power outages, flaky programming languages, etc. –There are many decidable problems we cannot solve with real computer: the numbers do matter

14 14 CS150 Fall 2005: Lecture 32: Computability Lambda Calculus is a Universal Computer? 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

15 15 CS150 Fall 2005: Lecture 32: Computability What is 42? 42 forty-two XLII cuarenta y dos

16 16 CS150 Fall 2005: Lecture 32: Computability 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.

17 17 CS150 Fall 2005: Lecture 32: Computability Meaning of Numbers pred (succ N )  N N succ (pred N )  N N succ (pred (succ N ))  succ N

18 18 CS150 Fall 2005: Lecture 32: Computability Meaning of Zero zero? zero  T zero? (succ zero)  F zero? (pred (succ zero))  T

19 19 CS150 Fall 2005: Lecture 32: Computability Is this enough? Can we define add with pred, succ, zero? and zero? add  xy. if ( zero? x) y ( add ( pred x) ( succ y))

20 20 CS150 Fall 2005: Lecture 32: Computability Can we define lambda terms that behave like zero, zero?, pred and succ? Hint: what if we had cons, car and cdr?

21 21 CS150 Fall 2005: Lecture 32: Computability Numbers are Lists... zero?  null? pred  cdr succ  x. cons F x

22 22 CS150 Fall 2005: Lecture 32: Computability Making Pairs (define (make-pair x y) (lambda (selector) (if selector x y))) (define (car-of-pair p) (p #t)) (define (cdr-of-pair p) (p #f))

23 23 CS150 Fall 2005: Lecture 32: Computability cons and car cons  x. y. z.zxy cons M N = ( x. y. z.zxy) M N   ( y. z.z M y) N   z.z MN car  p.p T car (cons M N)  car ( z.z MN)  ( p.p T) ( z.z MN)   ( z.z MN) T   TMN   ( x. y. x ) MN   ( y. M)N   M T  x. y. x

24 24 CS150 Fall 2005: Lecture 32: Computability cdr too! cons  xyz.zxy car  p.p T cdr  p.p F cdr cons M N cdr z.z MN = ( p.p F) z.z MN   ( z.z MN) F   FMN   N

25 25 CS150 Fall 2005: Lecture 32: Computability 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

26 26 CS150 Fall 2005: Lecture 32: Computability Null and null? null  x. T null?  x.(x y. z. F) null? (cons M N)  x.(x y. z. F) z.z MN   ( z.z MN) ( y. z. F)   ( y. z. F) MN   F

27 27 CS150 Fall 2005: Lecture 32: Computability Counting 0  null 1  cons F 0 2  cons F 1 3  cons F 2... succ  x.cons F x pred  x.cdr x

28 28 CS150 Fall 2005: Lecture 32: Computability 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

29 29 CS150 Fall 2005: Lecture 32: Computability Arithmetic zero?  null? succ  x. cons F x pred  x.x F pred 1 = ( x.x F ) cons F null   ( cons F null ) F  ( xyz.zxy F null ) F   ( z.z F null ) F   F F null   null  0  0

30 30 CS150 Fall 2005: Lecture 32: Computability Lambda Calculus is a Universal Computer 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 We have this, but we cheated using  to make recursive definitions!

31 31 CS150 Fall 2005: Lecture 32: Computability 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.)

32 32 CS150 Fall 2005: Lecture 32: Computability Lambda Calculus is a Universal Computer 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

33 33 CS150 Fall 2005: Lecture 32: Computability Universal Computer Lambda Calculus can simulate a Turing Machine –Everytime a Turing Machine can compute, Lambda Calculus can compute also Turing Machine can simulate Lambda Calculus (we didn’t prove this) –Everything Lambda Calculus can compute, a Turing Machine can compute also Church-Turing Thesis: this is true for any other mechanical computer also

34 34 CS150 Fall 2005: Lecture 32: Computability Charge Exam 2 out Friday –Covers through today –Links to example exams on the web –Review session Wednesday, 7pm PS8 Project Ideas due tomorrow (11:59pm) –Short email is fine, just explain who your team is and what you plan to do


Download ppt "David Evans CS150: Computer Science University of Virginia Computer Science Class 32: Computability in Theory and Practice."

Similar presentations


Ads by Google