undecidability and rice s theorem
play

Undecidability and Rices Theorem Lecture 26, December 3 CS 374, - PowerPoint PPT Presentation

Undecidability and Rices Theorem Lecture 26, December 3 CS 374, Fall 2015 . R. E. . UNDECIDABLE . . RECURSIVE . . EXP . . . NP . . P Recap: Universal TM U We saw a TM U such that L ( U ) = { (z,w) | M z accepts w } Thus, U is


  1. Undecidability and Rice’s Theorem Lecture 26, December 3 CS 374, Fall 2015

  2. . R. E. . UNDECIDABLE . . RECURSIVE . . EXP . . . NP . . P

  3. Recap: Universal TM U We saw a TM U such that L ( U ) = { (z,w) | M z accepts w } Thus, U is a stored-program computer. It reads a program z and executes it on data w L(U) = { (z,w) | M z accepts w } is r.e.

  4. Recap: Universal TM U L(U) = { (z,w) | M z accepts w } is r.e. We proved the following: Theorem: L(U) is undecidable (i.e, not recursive) No “algorithm” for L(U)

  5. . R. E. . UNDECIDABLE . L(U) . RECURSIVE . . EXP . . . NP . . P

  6. Polytime Reductions X ≤ p Y “X reduces to Y in polytime” X-solver (polytime) YES I Y I x Y-solver REDUCTION (poly time) (poly time) NO If Y can be decided in poly time, then X can be decided in poly time If X can’t be decided in poly time, then Y can’t be decided in poly time

  7. Polytime Reductions X ≤ Y “X reduces to Y in polytime” X-solver (polytime) YES I Y I x Y-solver REDUCTION (poly time) (poly time) NO If Y can be decided in poly time, then X can be decided in poly time If X can’t be decided in poly time, then Y can’t be decided in poly time

  8. Reduction X ≤ Y “X reduces to Y” X-solver YES I Y I x Y-solver REDUCTION NO If Y can be decided, then X can be decided. If X can’t be decided, then Y can’t be decided

  9. Halting Problem • Does given M halt when run on blank input? • HALT = { z | M z halts when run on blank input} • Show HALT is undecidable by showing L(U) ≤ HALT L(U) -decider YES HALT REDUCTION decider NO What are input and output of the reduction?

  10. L(U) ≤ HALT L(U) -decider YES HALT (z,w) z’ REDUCTION decider NO Need: M z’ halts on blank input iff M z accepts w TM M z’ const z const w run M z on w and halt if it accepts otherwise run for ever The REDUCTION doesn’t run M z on w . It produces code for M z’ !

  11. L(U) ≤ HALT L(U) -decider YES HALT (z,w) z’ REDUCTION decider NO Need: M z’ halts on blank input iff M z accepts w TM M z’ const z const w run M z on w and halt if it accepts Correctness: L(U) -decider say “yes” iff M z’ halts on blank input iff M z accepts w iff (z,w) is in L(U)

  12. . R. E. . UNDECIDABLE . L(U) . RECURSIVE . HALT . EXP . . . NP . . P

  13. Who cares about halting TMs? • Remember, TMs = programs • Virtually all math conjectures can be expressed as a halting-TM question. Example: Goldbach’s conjecture: Every even number > 2 is the sum of two primes.

  14. Program Goldbach goldbach() n = 4 WHILE is-sum-of-two-primes(n) n = n+2 STOP AND SAY NO is-sum-of-two-primes(n): boolean FOR p ≤ q < n IF p,q, prime AND p+q=n THEN RETURN TRUE RETURN FALSE goldbach() halts iff Goldbach’s conjecture is false

  15. Deciding mathematical truth prove-theorem(T) w = “ ” WHILE NOT is-a-proof-of (w,T) w = lexicographically-next-string(w) OUTPUT T + “is true” prove-theorem(T) halts iff there is a proof of T.

  16. CS 125 assignment: • Write a program that outputs “Hello world”. main() { printf(“Hello world”); } • Can we write an auto-grader? • If so; we can solve Goldbach’s conjecture...

  17. is-sum-of-two-primes(n): boolean goldbach() FOR p ≤ q < n n = 4 IF p,q, prime AND p+q=n WHILE is-sum-of-two-primes(n) THEN RETURN TRUE n = n+2 RETURN FALSE STOP AND SAY NO CORRECT main() AUTOGRADER goldbach(); { INCORRECT printf(“Hello world”); }

  18. Deciding halting problem • Given string z , to determine if program M z halts, do the following: So, deciding if a program prints “Hello world” is solving the halting problem CORRECT main() AUTOGRADER M z () { INCORRECT printf(“Hello world”); Using same ideas, we can } show that deciding anything about code behavior is not possible

  19. More reductions about languages • We’ll show other languages involving program behavior are undecidable: • L 374 = {<M> | L(M) = {0 374 } } • L ≠ Ø = {<M> | L(M) is nonempty} • L pal = {<M> | L(M) = palindromes} • many many others

  20. L 374 = { z | L ( M z ) = {0 374 } } is undecidable • Given a TM M , telling whether it accepts only the string 0 374 is not possible • Proved by showing HALT ≤ L 374 M z’ : constant: z z’ = z REDUCTION: BUILD z’ instance of L 374 instance of HALT On input x, 0. if x ≠ 0 374 , reject x What is L ( M z’ ) ? 1. if x = 0 374 , then • If M z halts, L ( M z’ ) = {0 374 } 2. run M z • If M z doesn’t L ( M z’ ) = Ø accept x iff M z halts Q: How does the reduction know whether or not M z halts ? A: It doesn’t have to. It just builds (code for) M z’

  21. If there is a decider M 374 to tell if a TM accepts the language {0 374 }... Decider for HALT z z’ YES: REDUCTION: BUILD z’ M 374 L ( M z’ ) = {0 374 } iff M z halts M z’ : constant: z Recall L ( M’ ) = {0 374 } On input x, NO: iff M ( w ) accepts 0. if x ≠ 0 374 , reject x L ( M’ ) = Ø ≠ {0 374 } 1. if x = 0 374 , then iff M z does not halt 2. run M z accept x iff M z halts Since HALT is not decidable, M 374 doesn’t exist, and L 374 is undecidable

  22. L ≠ Ø = {< M > | L ( M ) is nonempty} is undecidable • Given a TM M , telling whether it accepts any string is undecidable • Proved by showing HALT ≤ L ≠ Ø M z’ : constant: z z’ = z REDUCTION: BUILD z’ instance of L ≠ Ø instance of HALT On input x, Run M z x We want M z’ to satisfy: Accept x if M z halts • If M z halts, L ( M z’ ) ≠ Ø = Ø • If M z doesn’t L ( M z’ ) If M z halts, L ( M z’ ) = Σ * hence ≠ Ø If M z doesn’t, L ( M z’ ) = Ø

  23. L pal = { z | L ( M z ) = palindromes} is undecidable • Given a TM M , telling whether it accepts the set of palindromes is undecidable • Proved by showing HALT ≤ L pal M z ’ : constant: z z’ = z REDUCTION: BUILD z’ instance of L pal instance of HALT On input x, x We want M z’ to satisfy: Run M z Accept x if = {palindromes} • If M z halts, L ( M z’ ) M z halts and ≠ {palindromes} • If M z doesn’t L ( M z’ ) x is a palindrome

  24. Lots of undecidable problems about languages accepted by programs • Given M , is L ( M ) = {palindromes}? • Given M , is L ( M ) ≠ Ø? • Given M , is L ( M ) = {0 374 } ? • Given M , is L ( M ) = {0 p | p is prime}? • Given M , does L ( M ) contain any prime? • Given M , does L ( M ) contain any word? • Given M , does L ( M ) meet these formal specs? • Given M , does L ( M ) = Σ * ?

  25. Rice’s Theorem • Q: What can we decide about the languages accepted by programs? A: NOTHING ! except “trivial” things

  26. Properties of r.e. languages • A Property of r.e. languages is a predicate P of r.e. languages. i.e., P : { L | L is r.e.} à {true, false} Important: we are only interested in r.e languages • Examples: • P ( L ) = “ L contains 0 374 ” • P ( L ) = “ L contains at least 5 strings” • P ( L ) = “ L is empty” • P ( L ) = “ L = {0 n 1 n | n ≥ 0}”

  27. Properties of r.e. languages • A Property of r.e. languages is a predicate P of r.e. languages. i.e., P : { L | L is r.e.} à {true, false} L = L(M) for some TM iff L is r.e by definition. • We will thus think of a Property of r.e. languages as a set { z | L ( M z ) satisfies predicate P } • Note that each property P is thus a set of strings L(P) = { z | L ( M z ) satisfies predicate P } • Question: For which P is L(P) decidable?

  28. Trivial Properties • A property is trivial if either all r.e. languages satisfy it, or no r.e. languages satisfy it. • { z | L ( M z ) is r.e}.... why is this “trivial” ? – EVERY language accepted by an M is r.e. by def’n • { z | L ( M z ) is not r.e}.... why is this “trivial” ? • { z| L ( M z ) = Ø or L ( M z ) ≠Ø}.... why “trivial”? • Clearly, trivial properties are decidable • Because if P is trivial then L(P) = Ø or L(P) = Σ*

  29. Rice’s Theorem Every nontrivial property of r.e. languages is undecidable So, there is virtually nothing we can decide about behavior (language accepted) by programs Example: auto-graders don’t exist (if submissions are allowed to run an arbitrary (but finite) amount of time).

  30. Proof • Let P be a non-trivial property • Let L(P) = { z | L ( M z ) satisfies predicate P } • Show L(P) is undecidable • Assume Ø does not satisfy P • Assume L ( M P-sat ) satisfies P for some TM M P-sat There must be at least one such TM (why?)

  31. If there is a decider M P to tell if a TM accepts a language satisfying P ... Decider for HALT z z’ YES: REDUCTION: BUILD z’ M P L ( M z’ ) satisfies P iff M z halts M z ’ : constant: z On input x, x NO: Run M z L ( M z’ ) = Ø doesn’t satisfy P Accept x if iff M z does not halt ?? blah blah blah ?? M z halts and M P-sat accepts x If M z doesn’t halt then L ( M z’ ) = Ø L ( M P-sat ) If M z does halt then L ( M z’ ) = Since HALT is not decidable, M P doesn’t exist, and L(P) is undecidable

  32. What about assumption • We assumed Ø does not satisfy P • What if Ø does satisfy P? • Then consider L(P’) = { < M > | L ( M ) doesn’t satisfy predicate P } • Then Ø isn’t in L(P’) • Show L(P’) is undecidable • So L(P) isn’t either (by closure under complement)

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend