Presentation is loading. Please wait.

Presentation is loading. Please wait.

More undecidable languages

Similar presentations


Presentation on theme: "More undecidable languages"— Presentation transcript:

1 More undecidable languages
The Chinese University of Hong Kong Fall 2008 CSC 3130: Automata theory and formal languages More undecidable languages Andrej Bogdanov

2 More undecidable problems
L1 = {〈M〉: M is a TM that accepts input e} L2 = {〈M〉: M is a TM that accepts some input} L3 = {〈M〉: M is a TM that accepts all inputs} L4 = {〈M, M’〉: M and M’ accept the same inputs} decidable recognizable but undecidable unrecognizable

3 Example 1 L1 = {〈M〉: M is a TM that accepts input e}
Step 1: You gotta believe it To know if M accepts e, it looks like we have to simulate it But then we might end up in a loop Step 2: Use what you know ATM is undecidable

4 Proof by “reduction” ? L1 = {〈M〉: M is a TM that accepts input e}
Show that if L1 can be decided, so can ATM 〈M〉 A accept if M accepts e reject if not ? accept if M accepts w 〈M〉, w reject if not

5 Proof by “reduction” A A M’ is a Turing Machine such that:
accept if M accepts e reject if not accept if M accepts w A 〈M’〉 〈M〉, w reject if not M’ is a Turing Machine such that: If M accepts w, then M’ accepts e If M does not accept w, then M’ does not accept e

6 Proof by “reduction” A M’ M’: On input z,
accept if M accepts w construct M’ A 〈M’〉 〈M〉, w reject if not M’ M’: On input z, q1 ☐/☐R If z = e, then simulate M on w Otherwise, reject ☐/☐L q0 M qrej qacc

7 Recognizable or not? L1 = {〈M〉: M is a TM that accepts input e}
decidable recognizable but undecidable unrecognizable Algorithm for L1 On input 〈M〉: Simulate M on input e

8 Example 2 L2 = {〈M〉: M is a TM that accepts some input}
Step 1: You gotta believe it To know if M accepts, it looks like we have to simulate it But then we might end up in a loop Step 2: Use what you know ATM is undecidable L1 is undecidable

9 Example 2 A A M’ is a Turing Machine such that:
accept if M accepts some input reject if not accept if M accepts e A 〈M’〉 〈M〉 reject if not M’ is a Turing Machine such that: If M accepts e, then M’ accepts some input If M does not accept e, then M’ does not accept anything

10 Example 2 A M’: On input w, If w = e, then simulate M on e
accept if M accepts w construct M’ A 〈M’〉 〈M〉 reject if not M’: On input w, If w = e, then simulate M on e Otherwise, reject decidable recognizable but undecidable unrecognizable

11 ... Is it recognizable? L2 = {〈M〉: M is a TM that accepts some input}
Attempt to recognize L2: Simulate M on input e Simulate M on input 0 Simulate M on input 1 Accept if one of them accepts Simulate M on input 00 ... ... but there are infinitely many!

12 Is it recognizable? L2 = {〈M〉: M is a TM that accepts some input}
Attempt to recognize L2: For all possible strings x (in lexicographic order): Simulate M on input x what if M loops on e but M accepts, say, 11? If it accepts, accept. If it rejects, reject. lexicographic order: e, 0, 1, 00, 01, 10, 11, 000, 001, ...

13 Is it recognizable? L2 = {〈M〉: M is a TM that accepts some input}
Description of Turing Machine that recognizes L2: k := 1 For all possible strings x (in lexicographic order): For all strings y that come before x Simulate M on y for k steps If it accepts, accept. If it rejects, reject. k := k + 1

14 Explanation of algorithm
... inputs e 1 00 01 Execution of algorithm Simulate M on e for 1 step If M accepts some w, algorithm will see this in some stage of the simulation Simulate M on e for 2 steps Simulate M on 0 for 2 steps Simulate M on e for 3 steps Simulate M on 0 for 3 steps Simulate M on 1 for 3 steps ... decidable recognizable but undecidable unrecognizable

15 Example 3 L3 = {〈M〉: M is a TM that accepts all inputs}
Step 1: You gotta believe it To know if M accepts, it looks like we have to simulate it But then we might end up in a loop Step 2: Use what you know by yourself this time! decidable recognizable but undecidable unrecognizable

16 Is it recognizable? and then what? ...
L3 = {〈M〉: M is a TM that accepts all inputs} Let’s try... Simulate M on e for 1 step and then what? Simulate M on e for 2 steps Simulate M on 0 for 2 steps accept if all of them accept Simulate M on e for 3 steps Simulate M on 0 for 3 steps but there are infinitely many! Simulate M on 1 for 3 steps ...

17 Is it recognizable? L3 = {〈M〉: M is a TM that accepts all inputs}
To check that 〈M〉 is in L3, it looks like we have to wait for an infinite number of simulations to finish But we don’t have that much time! Step 1: You gotta believe it but I don’t! decidable recognizable but undecidable unrecognizable

18 How to argue unrecognizability
L3 = {〈M〉: M is a TM that accepts all inputs} First attempt: Remember that so we can try to argue that L3 is recognizable If L and L are both recognizable, then L is decidable.

19 First attempt ... Let’s try...
L3 = {〈M〉: M is a TM that accepts all inputs} L3 = {〈M〉: M is a TM that does not accept all inputs} Let’s try... Simulate M on e for 1 step Simulate M on e for 2 steps Simulate M on 0 for 2 steps Simulate M on e for 3 steps Simulate M on 0 for 3 steps Simulate M on 1 for 3 steps ... accept if M rejects or loops but how to know if it loops?

20 How to argue unrecognizability
L3 = {〈M〉: M is a TM that accepts all inputs} Second attempt: Use what you know We can try to argue that ATM is not recognizable If we can recognize L3 then we can also recognize ATM

21 Proof by “reduction” A A M’ is a Turing Machine such that:
accept if M accepts all inputs rej/loop if not accept if M does not accept w construct M’ A 〈M’〉 〈M〉, w rej/loop if M accepts w M’ is a Turing Machine such that: If M does not accept w, then M’ accepts all inputs If M accepts w, then M’ rejects or loops on some input

22 Constructing M’ M’ is a Turing Machine such that: If M does not accept w, then M’ accepts all inputs If M accepts w, then M’ rejects or loops on some input To do this, we want to simulate M on w but what if simulation loops? Idea: M’ keeps accepting more and more of its inputs as long as M has not halted on w If M never halts on w, M’ will accept all inputs

23 Constructing M’ Description of M’: M’ is a Turing Machine such that:
If M does not accept w, then M’ accepts all inputs If M accepts w, then M’ rejects or loops on some input Description of M’: length of z On input z, Simulate M on input w for |z| steps If simulation of M reaches state qacc, reject. If simulation of M reaches state qrej, accept. If neither state is reached, accept.

24 Correctness of construction
M’ is a Turing Machine such that: If M does not accept w, then M’ accepts all inputs If M accepts w, then M’ rejects or loops on some input Description of M’: On input z, Simulate M on input w for |z| steps If simulation of M reaches state qacc, reject. If simulation of M reaches state qrej, accept. If neither state is reached, accept.

25 Correctness of construction
M’ is a Turing Machine such that: If M does not accept w, then M’ accepts all inputs If M accepts w, then M’ rejects or loops on some input In k steps z = 0k Description of M’: On input z, Simulate M on input w for |z| steps If simulation of M reaches state qacc, reject. If simulation of M reaches state qrej, accept. If neither state is reached, accept. M’ rejects input 0k

26 Example 3 recap L3 = {〈M〉: M is a TM that accepts all inputs}
We showed that but we know ATM is not recognizable so If we can recognize L3 then we can also recognize ATM decidable recognizable but undecidable unrecognizable

27 Example 4 L4 = {(〈M1〉, 〈M2〉): M1 and M2 accept the same inputs}
Step 1: You gotta believe it Step 2: Use what you know decidable recognizable but undecidable unrecognizable ATM is recognizable but undecidable L1 is recognizable but undecidable L2 is recognizable but undecidable L3 is unrecognizable ATM is unrecognizable

28 Example 4 ? A L4 = {(〈M1〉, 〈M2〉): M1 and M2 accept the same inputs}
accept if M1, M2 accept same inputs rej/loop if not L3 = {〈M〉: M is a TM that accepts all inputs} ? accept if M accepts all inputs 〈M〉 rej/loop if not

29 Example 4 A A If M accepts all inputs, then M1, M2 accepts same inputs
accept if M1, M2 accept same inputs rej/loop if not accept if M accepts all inputs 〈M〉 A 〈M1〉 〈M2〉 qacc rej/loop if not If M accepts all inputs, then M1, M2 accepts same inputs If M does not, then M1, M2 do not accept same inputs M1 = M M2 = TM that always accepts


Download ppt "More undecidable languages"

Similar presentations


Ads by Google