SlideShare a Scribd company logo
1
Turing Machines (TM)
• Generalize the class of CFLs:
Regular Languages
Context-Free Languages
Recursive Languages
Recursively Enumerable Languages
Non-Recursively Enumerable Languages
2
• Another Part of the Hierarchy:
Regular Languages - ε
Context-Free Languages - ε
Context-Sensitive Languages
Recursive Languages
Non-Recursively Enumerable Languages
Recursively Enumerable Languages
3
• Recursively enumerable languages are also known as type 0 languages.
• Context-sensitive languages are also known as type 1 languages.
• Context-free languages are also known as type 2 languages.
• Regular languages are also known as type 3 languages.
4
• TMs model the computing capability of a general purpose computer, which
informally can be described as:
– Effective procedure
• Finitely describable
• Well defined, discrete, “mechanical” steps
• Always terminates
– Computable function
• A function computable by an effective procedure
• TMs formalize the above notion.
• Church-Turing Thesis: There is an effective procedure for solving a problem
if and only if there is a TM that halts for all inputs and solves the problem.
– There are many other computing models, but all are equivalent to or subsumed by
TMs. There is no more powerful machine (Technically cannot be proved).
• DFAs and PDAs do not model all effective procedures or computable
functions, but only a subset.
5
Deterministic Turing Machine (DTM)
…….. ……..
• Two-way, infinite tape, broken into cells, each containing one symbol.
• Two-way, read/write tape head.
• An input string is placed on the tape, padded to the left and right infinitely with
blanks, read/write head is positioned at the left end of input string.
• Finite control, i.e., a program, containing the position of the read head, current
symbol being scanned, and the current state.
• In one move, depending on the current state and the current symbol being
scanned, the TM 1) changes state, 2) prints a symbol over the cell being
scanned, and 3) moves its’ tape head one cell left or right.
• Many modifications possible, but Church-Turing declares equivalence of all.
Finite
Control
B B 0 1 1 0 0 B B
6
Formal Definition of a DTM
• A DTM is a seven-tuple:
M = (Q, Σ, Γ, δ, q0, B, F)
Q A finite set of states
Σ A finite input alphabet, which is a subset of Γ– {B}
Γ A finite tape alphabet, which is a strict superset of Σ
B A distinguished blank symbol, which is in Γ
q0 The initial/starting state, q0 is in Q
F A set of final/accepting states, which is a subset of Q
δ A next-move function, which is a mapping (i.e., may be undefined) from
Q x Γ –> Q x Γ x {L,R}
Intuitively, δ(q,s) specifies the next state, symbol to be written, and the direction of tape
head movement by M after reading symbol s while in state q.
7
• Example #1: {w | w is in {0,1}* and w ends with a 0}
0
00
10
10110
Not ε
Q = {q0, q1, q2}
Γ = {0, 1, B}
Σ = {0, 1}
F = {q2}
δ:
0 1 B
->q0 (q0, 0, R) (q0, 1, R) (q1, B, L)
q1 (q2, 0, R) - -
q2
*
- - -
– q0 is the start state and the “scan right” state, until hits B
– q1 is the verify 0 state
– q2 is the final state
8
• Example #2: {0n
1n
| n ≥ 1}
0 1 X Y B
->q0 (q1, X, R) - - (q3, Y, R)0’s finished -
q1 (q1, 0, R)ignore1 (q2, Y, L) - (q1, Y, R) ignore2 - (more 0’s)
q2 (q2, 0, L) ignore2 - (q0, X, R) (q2, Y, L) ignore1 -
q3 - - (more 1’s) - (q3, Y, R) ignore (q4, B, R)
q4* - - - - -
• Sample Computation: (on 0011), presume state q looks rightward
q00011BB.. |— Xq1011
|— X0q111
|— Xq20Y1
|— q2X0Y1
|— Xq00Y1
|— XXq1Y1
|— XXYq11
|— XXq2YY
|— Xq2XYY
|— XXq0YY
|— XXYq3Y B…
|— XXYYq3 BB…
|— XXYYBq4
9
Making a TM for {0n
1n
| n >= 1}
Try n=2 or 3 first.
• q0 is on 0, replaces with the character to X, changes state to q1, moves right
• q1 sees next 0, ignores (both 0’s and X’s) and keeps moving right
• q1 hits a 1, replaces it with Y, state to q2, moves left
• q2 sees a Y or 0, ignores, continues left
• when q2 sees X, moves right, returns to q0 for looping step 1 through 5
• when finished, q0 sees Y (no more 0’s), changes to pre-final state q3
• q3 scans over all Y’s to ensure there is no extra 1 at the end (to crash on seeing any 0 or 1)
• when q3 sees B, all 0’s matched 1’s, done, changes to final state q4
• blank line for final state q4
Try n=1 next.
Make sure unbalanced 0’s and 1’s, or mixture of 0-1’s,
“crashes” in a state not q4, as it should be
q00011BB.. |— Xq1011
|— X0q111
|— Xq20Y1
|— q2X0Y1
|— Xq00Y1
|— XXq1Y1
|— XXYq11
|— XXq2YY
|— Xq2XYY
|— XXq0YY
|— XXYq3Y B…
|— XXYYq3 BB…
|— XXYYBq4
10
• Same Example #2: {0n
1n
| n ≥ 1}
0 1 X Y B
q0 (q1, X, R) - - (q3, Y, R) -
q1 (q1, 0, R) (q2, Y, L) - (q1, Y, R) -
q2 (q2, 0, L) - (q0, X, R) (q2, Y, L) -
q3 - - - (q3, Y, R) (q4, B, R)
q4 - - - - -
Logic: cross 0’s with X’s, scan right to look for corresponding 1, on finding it cross it with Y, and scan
left to find next leftmost 0, keep iterating until no more 0’s, then scan right looking for B.
– The TM matches up 0’s and 1’s
– q1 is the “scan right” state, looking for 1
– q2 is the “scan left” state, looking for X
– q3 is “scan right”, looking for B
– q4 is the final state
Can you extend the machine to include n=0?
How does the input-tape look like for string epsilon?
• Other Examples:
000111 00
11 001
011
11
• Roger Ballard’s TM for Example #2, without any extra Tape Symbol: {0n
1n
| n ≥ 0}
0 1 B
q0 (q1, B, R) (q4, B, R)
q1 (q1, 0, R) (q1, 1, R) (q2, B, L)
q2 - (q3, B, L) -
q3 (q3, 0, L) (q3, 1, L) (q0, B, R)
q4
*
- - -
Logic: Keep deleting 0 and corresponding 1 from extreme ends, until none left.
– q0 deletes a leftmost 0 and let q1 scan through end of string, q0 accepts on epsilon
– q1 scans over the string and makes q2 expecting 1 on the left
– q2 deletes 1 and let q3 “scan left” looking for the start of current string
– q3 lets q0 start the next iteration
– q4 is the final state
Any bug?
Try on:
000111 00
11 001
011
12
• And his example of a correct TM for the language that goes on infinite loop outside language: {0n
1n
| n ≥ 0}
0 1 B
q0 (q1, B, R) (q3, 1, L) (q4, B, R)
q1 (q1, 0, R) (q1, 1, R) (q2, B, L)
q2 - (q3, B, L) -
q3 (q3, 0, L) (q3, 1, L) (q0, B, R)
q4
*
- - -
Logic: This machine still works correctly for all strings in the language, but
start a string with 1 (not in the language),
and it loops on B1 for ever.
13
• Exercises: Construct a DTM for each of the following.
– {w | w is in {0,1}* and w ends in 00}
– {w | w is in {0,1}* and w contains at least two 0’s}
– {w | w is in {0,1}* and w contains at least one 0 and one 1}
– Just about anything else (simple) you can think of
14
Formal Definitions for DTMs
• Let M = (Q, Σ, Г, δ, q0, B, F) be a TM.
• Definition: An instantaneous description (ID) is a triple α1qα2, where:
– q, the current state, is in Q
– α1α2, is in Г*, and is the current tape contents up to the rightmost non-blank symbol, or the symbol to
the left of the tape head, whichever is rightmost
– The tape head is currently scanning the first symbol of α2
– At the start of a computation α1= ε
– If α2= ε then a blank is being scanned
• Example: (for TM #1)
q00011 Xq1011 X0q111 Xq20Y1 q2X0Y1
Xq00Y1 XXq1Y1 XXYq11 XXq2YY Xq2XYY
XXq0YY XXYq3Y XXYYq3 XXYYBq4
15
• Suppose the following is the current ID of a DTM
x1x2…xi-1qxixi+1…xn
Case 1) δ(q, xi) = (p, y, L)
(a) if i = 1 then qx1x2…xi-1xixi+1…xn |— pByx2…xi-1xixi+1…xn
(b) else x1x2…xi-1qxixi+1…xn |— x1x2…xi-2pxi-1yxi+1…xn
– If any suffix of xi-1yxi+1…xn is blank then it is deleted.
Case 2) δ(q, xi) = (p, y, R)
x1x2…xi-1qxixi+1…xn |— x1x2…xi-1ypxi+1…xn
– If i>n then the ID increases in length by 1 symbol
x1x2…xnq|— x1x2…xnyp
16
• Definition: Let M = (Q, Σ, Г, δ, q0, B, F) be a TM, and let w be a string in Σ*. Then w is
accepted by M iff
q0w |—* α1pα2
where p is in F and α1 and α2 are in Г*
• Definition: Let M = (Q, Σ, Г, δ, q0, B, F) be a TM. The language accepted by M,
denoted L(M), is the set
{w | w is in Σ* and w is accepted by M}
• Notes:
– In contrast to FA and PDAs, if a TM simply passes through a final state then the
string is accepted.
– Given the above definition, no final state of a TM need to have any transitions.
Henceforth, this is our assumption.
– If x is NOT in L(M) then M may enter an infinite loop, or halt in a non-final
state.
– Some TMs halt on ALL inputs, while others may not. In either case the language
defined by TM is still well defined.
17
• Definition: Let L be a language. Then L is recursively enumerable if there exists a TM
M such that L = L(M).
– If L is r.e. then L = L(M) for some TM M, and
• If x is in L then M halts in a final (accepting) state.
• If x is not in L then M may halt in a non-final (non-accepting) state or no transition is available, or loop
forever.
• Definition: Let L be a language. Then L is recursive if there exists a TM M such that L
= L(M) and M halts on all inputs.
– If L is recursive then L = L(M) for some TM M, and
• If x is in L then M halts in a final (accepting) state.
• If x is not in L then M halts in a non-final (non-accepting) state or no transition is available (does not
go to infinite loop).
Notes:
– The set of all recursive languages is a subset of the set of all recursively enumerable
languages
– Terminology is easy to confuse: A TM is not recursive or recursively enumerable, rather a
language is recursive or recursively enumerable.
18
• Recall the Hierarchy:
Regular Languages - ε
Context-Free Languages - ε
Context-Sensitive Languages
Recursive Languages
Non-Recursively Enumerable Languages
Recursively Enumerable Languages
19
• Observation: Let L be an r.e. language. Then there is an infinite list M0, M1, … of TMs
such that L = L(Mi).
• Question: Let L be a recursive language, and M0, M1, … a list of all TMs such that L =
L(Mi), and choose any i>=0. Does Mi always halt?
• Answer: Maybe, maybe not, but at least one in the list does.
• Question: Let L be a recursive enumerable language, and M0, M1, … a list of all TMs
such that L = L(Mi), and choose any i>=0. Does Mi always halt?
• Answer: Maybe, maybe not. Depending on L, none might halt or some may halt.
– If L is also recursive then L is recursively enumerable, recursive is subset of r.e.
• Question: Let L be a r.e. language that is not recursive (L is in r.e. – r), and M0, M1, … a
list of all TMs such that L = L(Mi), and choose any i>=0. Does Mi always halt?
• Answer: No! If it did, then L would not be in r.e. – r, it would be recursive.
20
L is Recursively enumerable:
TM exist: M0, M1, …
They accept string in L, and do not accept any string outside L
L is Recursive:
at least one TM halts on L and on ∑*-L, others may or may not
L is Recursively enumerable but not Recursive:
TM exist: M0, M1, …
but none halts on all x in ∑*-L
M0 goes on infinite loop on a string p in ∑*-L, while M1 on q in ∑*-L
However, each correct TM accepts each string in L, and none in ∑*-L
L is not R.E:
no TM exists
21
• Let M be a TM.
– Question: Is L(M) r.e.?
– Answer: Yes! By definition it is!
– Question: Is L(M) recursive?
– Answer: Don’t know, we don’t have enough information.
– Question: Is L(M) in r.e – r?
– Answer: Don’t know, we don’t have enough information.
22
• Let M be a TM that halts on all inputs:
– Question: Is L(M) recursively enumerable?
– Answer: Yes! By definition it is!
– Question: Is L(M) recursive?
– Answer: Yes! By definition it is!
– Question: Is L(M) in r.e – r?
– Answer: No! It can’t be. Since M always halts, L(M) is recursive.
23
• Let M be a TM.
– As noted previously, L(M) is recursively enumerable, but may or may not be
recursive.
– Question: Suppose, we know L(M) is recursive. Does that mean M always halts?
– Answer: Not necessarily. However, some TM M’ must exist such that L(M’) =
L(M) and M’ always halts.
– Question: Suppose that L(M) is in r.e. – r. Does M always halt?
– Answer: No! If it did then L(M) would be recursive and therefore not in r.e. – r.
24
• Let M be a TM, and suppose that M loops forever on some string x.
– Question: Is L(M) recursively enumerable?
– Answer: Yes! By definition it is. But, obviously x is not in L(M).
– Question: Is L(M) recursive?
– Answer: Don’t know. Although M doesn’t always halt, some other TM M’ may
exist such that L(M’) = L(M) and M’ always halts.
– Question: Is L(M) in r.e. – r?
– Answer: Don’t know.
May be another M’ will halt on x, and on all strings! May be no TM for this L(M)
does halt on all strings! We just do not know!
25
Modifications of the Basic TM Model
• Other (Extended) TM Models:
– One-way infinite tapes
– Multiple tapes and tape heads
– Non-Deterministic TMs
– Multi-Dimensional TMs (n-dimensional tape)
– Multi-Heads
– Multiple tracks
All of these extensions are equivalent to the basic DTM model
26
Closure Properties for Recursive and
Recursively Enumerable Languages
•TMs model General Purpose (GP) Computers:
– If a TM can do it, so can a GP computer
– If a GP computer can do it, then so can a TM
If you want to know if a TM can do X, then some equivalent question
are:
– Can a general purpose computer do X?
– Can a C/C++/Java/etc. program be written to do X?
For example, is a language L recursive?
– Can a C/C++/Java/etc. program be written that always halts and accepts L?
27
• TM Block Diagrams:
– If L is a recursive language, then a TM M that accepts L and always halts can be
pictorially represented by a “chip” or “box” that has one input and two outputs.
– If L is a recursively enumerable language, then a TM M that accepts L can be
pictorially represented by a “box” that has one output.
– Conceivably, M could be provided with an output for “no,” but this output cannot
be counted on. Consequently, we simply ignore it.
w
yes
no
M
w
yes
M
28
• Theorem 1: The recursive languages are closed with respect to complementation, i.e., if L
is a recursive language, then so is
• Proof: Let M be a TM such that L = L(M) and M always halts. Construct TM M’ as
follows:
• Note That:
– M’ accepts iff M does not
– M’ always halts since M always halts
From this it follows that the complement of L is recursive. 
• Question: How is the construction achieved? Do we simply complement the final states in
the TM? No! A string in L could end up in the complement of L.
– Suppose q5 is an accepting state in M, but q0 is not.
– If we simply complemented the final and non-final states, then q0 would be an accepting state in
M’ but q5 would not.
– Since q0 is an accepting state, by definition all strings are accepted by M’
L
L 

 *
w
yes
no
M
yes
no
M’
29
• Theorem 2: The recursive languages are closed with respect to union, i.e., if L1
and L2 are recursive languages, then so is
• Proof: Let M1 and M2 be TMs such that L1 = L(M1) and L2 = L(M2) and M1 and
M2 always halts. Construct TM M’ as follows:
• Note That:
– L(M’) = L(M1) L(M2)
• L(M’) is a subset of L(M1) U L(M2)
• L(M1) U L(M2) is a subset of L(M’)
– M’ always halts since M1 and M2 always halt
It follows from this that is recursive. 
2
1
3 L
L
L 

w
yes
no
M1
yes
no
M2
start
M’
2
1
3 L
L
L 


30
• Theorem 3: The recursive enumerable languages are closed with respect to union, i.e., if L1
and L2 are recursively enumerable languages, then so is
• Proof: Let M1 and M2 be TMs such that L1 = L(M1) and L2 = L(M2). Construct M’ as follows:
• Note That:
– L(M’) = L(M1) U L(M2)
• L(M’) is a subset of L(M1) U L(M2)
• L(M1) U L(M2) is a subset of L(M’)
– M’ halts and accepts iff M1 or M2 halts and accepts
It follows from this that is recursively enumerable. 
• Question: How do you run two TMs in parallel?
2
1
3 L
L
L 

2
1
3 L
L
L 

w
yes
M1
yes
yes
M2
M’
31
• Suppose, M1 and M2 had outputs for “no” in the previous construction, and
these were transferred to the “no” output for M’
• Question: What would happen if w is in L(M1) but not in L(M2)?
• Answer: You could get two outputs – one “yes” and one “no.”
– At least M1 will halt and answer accept, M2 may or may not halt.
– As before, for the sake of convenience the “no” output will be ignored.
w
yes
M1
yes
yes
M2
M’
no
no
no
32
• Theorem 4: If L and are both recursively enumerable then L (and therefore ) is
recursive.
• Proof: Let M1 and M2 be TMs such that L = L(M1) and = L(M2). Construct M’ as
follows:
• Note That:
– L(M’) = L
• L(M’) is a subset of L
• L is a subset of L(M’)
– M’ is TM for L
– M’ always halts since either M1 or M2 halts for any given string
– M’ shows that L is recursive
It follows from this that L (and therefore its’ complement) is recursive.
So, is also recursive (we proved it before). 
L
L
L
w
yes
M1
yes
yes
M2
M’
no
L
33
• Corollary of Thm 4: Let L be a subset of Σ*. Then one of the following must
be true:
– Both L and are recursive.
– One of L and is recursively enumerable but not recursive, and the other is not
recursively enumerable, or
– Neither L nor is recursively enumerable
– In other words, it is impossible to have both L and r.e. but not recursive
L
L
L
L
34
• In terms of the hierarchy: (possibility #1)
Recursive Languages
Recursively Enumerable Languages
Non-Recursively Enumerable Languages
L L
35
• In terms of the hierarchy: (possibility #2)
Recursive Languages
Recursively Enumerable Languages
Non-Recursively Enumerable Languages
L L
36
• In terms of the hierarchy: (possibility #3)
Recursive Languages
Recursively Enumerable Languages
Non-Recursively Enumerable Languages
L L
37
• In terms of the hierarchy: (Impossibility #1)
Recursive Languages
Recursively Enumerable Languages
Non-Recursively Enumerable Languages
L L
38
• In terms of the hierarchy: (Impossibility #2)
Recursive Languages
Recursively Enumerable Languages
Non-Recursively Enumerable Languages
L
L
39
• In terms of the hierarchy: (Impossibility #3)
Recursive Languages
Recursively Enumerable Languages
Non-Recursively Enumerable Languages
L
L
40
• Note: This gives/identifies three approaches to show that a language is not
recursive.
– Show that the language’s complement is not recursive, in one of the two ways:
• Show that the language’s complement is recursively enumerable but not recursive
• Show that the language’s complement is not even recursively enumerable
41
The Halting Problem - Background
• Definition: A decision problem is a problem having a yes/no answer (that one
presumably wants to solve with a computer). Typically, there is a list of parameters on
which the problem is based.
– Given a list of numbers, is that list sorted?
– Given a number x, is x even?
– Given a C program, does that C program contain any syntax errors?
– Given a TM (or C program), does that TM contain an infinite loop?
From a practical perspective, many decision problems do not seem all that interesting.
However, from a theoretical perspective they are for the following two reasons:
– Decision problems are more convenient/easier to work with when proving complexity results.
– Non-decision counter-parts can always be created & are typically at least as difficult to solve.
• Notes:
– The following terms and phrases are analogous:
Algorithm - A halting TM program
Decision Problem - A language (will show shortly)
(un)Decidable - (non)Recursive
42
Statement of the Halting Problem
• Practical Form: (P1)
Input: Program P and input I.
Question: Does P terminate on input I?
• Theoretical Form: (P2)
Input: Turing machine M with input alphabet Σ and string w in Σ*.
Question: Does M halt on w?
• A Related Problem We Will Consider First: (P3)
Input: Turing machine M with input alphabet Σ and one final state, and string w in Σ*.
Question: Is w in L(M)?
• Analogy:
Input: DFA M with input alphabet Σ and string w in Σ*.
Question: Is w in L(M)?
Is this problem (regular language) decidable? Yes! DFA always accepts or rejects.
43
• Over-All Approach:
– We will show that a language Ld is not recursively enumerable
– From this it will follow that is not recursive
– Using this we will show that a language Lu is not recursive
– From this it will follow that the halting problem is undecidable.
• As We Will See:
– P3 will correspond to the language Lu
– Proving P3 (un)decidable is equivalent to proving Lu (non)recursive
d
L
44
Converting the Problem to a Language
• Let M = (Q, Σ, Γ, δ, q1, B, {qn}) be a TM, where
Q = {q1, q2, … , qn}, order the states from 1 through n
Σ = {x1, x2} = {0, 1}
Γ = {x1, x2, x3} = {0, 1, B}
• Encode each transition:
δ(qi, xj) = (qk , xl, dm) where qi and qk are in ordered Q
xj and xl are in Σ,
and dm is in {L, R} = {d1, d2}
as:
0i
10j
10k
10l
10m
where the number of 0’s indicate the corresponding id, and single 1 acts as a barrier
• The TM M can then be encoded as:
111code111code211code311 … 11coder111
where each codei is one transitions’ encoding, and 11’s are barriers between transitions from the table
row-major. Let this encoding of M be denoted by <M>.
45
• Less Formally:
– Every state, tape symbol, and movement symbol is encoded as a sequence of 0’s:
q1, 0
q2, 00
q3 000
:
0 0
1 00
B 000
L 0
R 00
– Note that 1’s are not used to represent the above, since 1 is used as a special separator symbol.
– Example:
δ(q2, 1) = (q3 , 0, R)
Is encoded as:
00100100010100
46
0 1 B
q1 (q1, 0, R) (q1, 1, R) (q2, B, L)
q2 (q3, 0, R) - -
q3 - - -
What is the L(M)?
Coding for the above table:
1110101010100110100101001001101000100100010110010100010100111
Are the followings correct encoding of a TM?
01100001110001
111111
47
• Definition:
Lt = {x | x is in {0, 1}* and x encodes a TM}
– Question: Is Lt recursive?
– Answer: Yes. [Check only for format, i.e. the order and number of 0’s and 1’s,
syntax checking]
– Question: Is Lt decidable:
– Answer: Yes (same question).
48
The Universal Language
• Define the language Lu as follows:
Lu = {x | x is in {0, 1}* and x = <M,w> where M is a TM encoding and w is in L(M)}
• Let x be in {0, 1}*. Then either:
1. x doesn’t have a TM prefix, in which case x is not in Lu
2. x has a TM prefix, i.e., x = <M,w> and either:
a) w is not in L(M), in which case x is not in Lu
b) w is in L(M), in which case x is in Lu
49
• Recall:
0 1 B
q1 (q1, 0, R) (q1, 1, R) (q2, B, L)
q2 (q3, 0, R) - -
q3 - - -
• Which of the following are in Lu?
1110101010100110100101001001101000100100010110010100010100111
111010101010011010010100100110100010010001011001010001010011101110
111010101010011010010100100110100010010001011001010001010011100110111
01100001110001
111111
50
• Compare P3 and Lu:
(P3):
Input: Turing machine M with input alphabet Σ and one final state, and string w in Σ*.
Question: Is w in L(M)?
Lu = {x | x is in {0, 1}* and x = <M,w> where M is a TM encoding and w is in L(M)}
• Universal TM (UTM) is the machine for Lu
– presuming it is r.e.! Can you write a program to accept strings in Lu?
• Notes:
– Lu is P3 expressed as a language
– Asking if Lu is recursive is the same as asking if P3 is decidable.
• Can you write a Halting program for accept/reject of strings in Sigma* ?
– We will show that Lu is not recursive, and from this it will follow that P3 is un-
decidable.
– From this we can further show that the Halting problem is un-decidable.
=> A general concept: a decision problem ≡ a formal language
51
• Define another language Ld as follows:
• [Ld_bar = {self accepting TM encodings}, everything else is Ld ]
Ld = {x | x is in {0, 1}* and (a) either x is not a TM,
(b) or x is a TM, call it M, and x is not in L(M)} (1)
– Note, there is only one string x
– And, the question really is the complement of “does a TM accept its own encoding?” (Ld-bar’s complement)
• Let x be in {0, 1}*. Then either:
1. x is not a TM, in which case x is in Ld
2. x is a TM, call it M, and either:
a) x is not in L(M), in which case x is in Ld
b) x is in L(M), in which case x is not in Ld
52
• Recall:
0 1 B
q1 (q1, 0, R) (q1, 1, R) (q2, B, L)
q2 (q3, 0, R) - -
q3 - - -
• Which of the following are in Ld?
11101010101001101001010010011010001000100010110010100010100111
01100001110001
Change above machine to accept strings ending with 1: the encoding will not be in Ld
53
• Lemma: Ld is not recursively enumerable. [No TM for Ld!!!]
• Proof: (by contradiction)
Suppose that Ld is recursively enumerable. In other words, there exists a TM M such that:
Ld = L(M) (2)
Now suppose that w is a string encoding of M. (3)
Case 1) w is in Ld (4)
By definition of Ld given in (1), either w does not encode a TM, or w does encode a TM, call it M, and w is not in L(M). But
we know that w encodes a TM (3: that’s where it came from). Therefore:
w is not in L(M) (5)
But then (2) and (5) imply that w is not in Ld contradicting (4).
Case 2) w is not in Ld (6)
By definition of Ld given in (1), w encodes a TM, call it M, and:
w is in L(M) (7)
But then (2) and (7) imply that w is in Ld contradicting (6).
Since both case 1) and case 2) lead to a contradiction, no TM M can exist such that Ld = L(M). Therefore Ld is not
recursively enumerable. 
54
• Note:
= {x | x is in {0, 1}*, x encodes a TM, call it M, and x is in L(M)}
• Corollary: is not recursive.
• Proof: If were recursive, then Ld would be recursive, and therefore recursively enumerable, a
contradiction. 
d
L
d
L
d
L
55
• Theorem: Lu is not recursive.
• Proof: (by contradiction)
Suppose that Lu is recursive. Recall that:
Lu = {x | x is in {0, 1}* and x = <M,w> where M is a TM encoding and w is in L(M)}
Suppose that Lu = L(M’) where M’ is a TM that always halts. Construct an algorithm (i.e., a TM that
always halts) for as follows:
Suppose that M’ always halts and Lu = L(M’). It follows that:
– M’’ always halts
– L(M’’) =
would therefore be recursive, a contradiction. 
d
L
d
L
d
L
Yes
No
Yes
No
Let M be the TM
that w encodes.
M’:
UTM for Lu
Yes
No
<M,w>
(i.e., <w,w>)
Is w a TM?
Lt
w
M’’: for Ld-bar
56
L_u is recursively enumerable
(you may ignore this slide, for now)
Input the string
Decode the TM prefix, if it doesn't have one then the string is not in Lu
Otherwise, run/simulate the encoded TM on the suffix
If it terminates and accepts then the original string is in Lu.
If a given string is in Lu, then the above algorithm will correctly determine that, halt and say yes.
If the given string is not in Lu, then there are three cases:
1) the string doesn't have a TM as a prefix. In this case the above algo correctly detects this fact, and reports the
string is not in Lu.
2) the string has a TM prefix, and the TM halts and rejects on the suffix. In this case the above algo correctly
reports the string is not in Lu.
3) the string has a TM prefix, but it goes into an infinite loop on the suffix. In this case the above algo also goes
into an infinite loop, but that’s ok since the string as a whole is not in Lu anyway, and we are just trying to show
there exists a TM for only accepting strings in Lu.
From this proof note that if the prefix TM is a DFA or PDA, then our machine will also halt in the 3rd
case above,
no matter what the suffix is.
-- due to Dr. Bernhard (edited by me)
57
• The over-all logic of the proof is as follows:
1. If Lu were recursive, then so will be
2. is not recursive, because Ld is not r.e.
3. It follows that Lu is not recursive.
The second point was established by the corollary.
The first point was established by the theorem on a preceding slide.
This type of proof is commonly referred to as a reduction. Specifically, the problem of
recognizing was reduced to the problem of recognizing Lu
d
L
d
L
d
L
58
• Define another language Lh:
Lh = {x | x is in {0, 1}* and x = <M,w> where M is a TM encoding and M halts on w}
Note that Lh is P2 expressed as a language:
(P2):
Input: Turing machine M with input alphabet Σ and string w in Σ*.
Question: Does M halt on w?
59
• Theorem: Lh is not recursive.
• Proof: (by contradiction)
Suppose that Lh is recursive. Recall that:
Lh = {x | x is in {0, 1}* and x = <M,w> where M is a TM encoding and M halts on w}
and
Lu = {x | x is in {0, 1}* and x = <M,w> where M is a TM encoding and w is in L(M)}
Suppose that Lh = L(M’) where M’ is a TM that always halts. Construct an algorithm (i.e., a TM that
always halts) for Lu as follows:
Suppose that M’ always halts and Lh = L(M’). It follows that:
– M’’ always halts
– L(M’’) = Lu
Lu would therefore be recursive, a contradiction. 
Yes
No
Yes
No
Simulate M
On w
Yes
No
M’ for Lh:
does M halt on w?
<M,w>
M’’ : UTM for Lu
start
60
• The over-all logic of the proof is as follows:
1. If Lh is recursive, then so is Lu
2. Lu is not recursive
3. It follows that Lh is not recursive.
The second point was established previously.
The first point was established by the theorem on the preceding slide.
This proof is also a reduction. Specifically, the problem of recognizing Lu was reduced to the
problem of recognizing Lh.
[Lu and Lh both are recursively enumerable: for proof see Dr. Shoaff!]
61
Examples of non-halting program:
http://cs.fit.edu/~ryan/tju/russell.c
http://cs.fit.edu/~ryan/tju/russell.scm
http://cs.fit.edu/~ryan/tju/russell.py
62
• Define another language Lq:
Lq = {x | x is in {0, 1}*, x encodes a TM M, and M does not contain an infinite loop}
Or equivalently:
Lq = {x | x is in {0, 1}*, x encodes a TM M, and there exists no string w in {0, 1}*
such that M does not terminate on w}
Note that:
= {x | x is in {0, 1}*, and either x does not encode a TM, or it does encode a TM, call it
M,
and there exists a string w in {0, 1}* such that M does not terminate on w}
Note that the above languages correspond to the following problem:
(P0):
Input: Program P.
Question: Does P contain an infinite loop?
Using the techniques discussed, what can we prove about Lq or its’ complement?
q
L
63
• More examples of non-recursive languages:
Lne = {x | x is a TM M and L(M) is not empty} is r.e. but not recursive.
Le = {x | x is a TM M and L(M) is empty} is not r.e.
Lr = {x | x is a TM M and L(M) is recursive} is not r.e.
Note that Lr is not the same as Lh = {x | x is a TM M that always halts}
but Lh is in Lr.
Lnr = {x | x is a TM M and L(M) is not recursive} is not r.e.
64
• Lemma: Ld is not recursively enumerable: [No TM for Ld!!!]
• Proof: (by contradiction)
Suppose that Ld were recursively enumerable. In other words, that there existed a TM M such that:
Ld = L(M) (2)
Now suppose that wj is a string encoding of M. (3)
Case 1) wj is in Ld(4)
By definition of Ld given in (1), either wj does not encode a TM, or wj does encode a TM, call it M, and wj is not in L(M). But
we know that wj encodes a TM (3: that’s where it came from). Therefore:
wj is not in L(M) (5)
But then (2) and (5) imply that wj is not in Ld contradicting (4).
Case 2) wj is not in Ld (6)
By definition of Ld given in (1), wj encodes a TM, call it M, and:
wj is in L(M) (7)
But then (2) and (7) imply that wj is in Ld contradicting (6).
Since both case 1) and case 2) lead to a contradiction, no TM M can exist such that Ld = L(M). Therefore Ld is not recursively
enumerable. 
Ignore this slide
65
( ) B
findPair (findPair2, "(", R) - (final, B, R)
findPair2 (findPair2, "(", R) (removePair, ")", L) -
removePair (fetch, "(", R) (fetch, ")", R) (goBack, B, L)
fetch (retrieve, "(", R) (retreive, ")", R) (retreive, B, R)
retreive (returnOpen, "(", L) (returnClosed, ")", L) (returnBlank, B, L)
returnOpen (writeOpen, "(", L) (writeOpen, ")", L) (writeOpen, B, L)
returnClosed (writeClosed, "(", L) (writeClosed, ")", L) (writeClosed, B, L)
returnBlank (writeBlank "(", L) (writeBlank, ")", L) (writeBlank, B, L)
writeOpen (removePair, "(", R) (removePair, "(", R) -
writeClosed (removePair, ")", R) (removePair, ")", R) -
writeBlank (removePair, B, R) (removePair, B, R) -
goBack - - (backAgain, B, L)
backAgain - - (seekFront, B, L)
seekFront (seekFront, "(", L) (seekFront, ")", L) (findPair, B, R)
final* - - -
Roger’s TM for balanced parenthesis:
On 111 111 as a TM encoding
<Quote> It was ambiguous, in my opinion, based on the definition in the Hopcroft book, i.e., the
definition in the Hopcroft book was not clear/precise enought to
account this special case. I don't have the book in front of me right now, but I think this is the example
I used in class: Consider the TM that has exactly one state, but no transitions. Perfectly valid TM, and
it would give us this encoding (111111). In that case the encoded machine would accept sigma*
because the highest numbered state would be q0, the only state, and that would be the final state under
the Hopcroft encoding. Now consider the TM that has exactly two states, but no transitions. Also a
perfectly valid TM, and it would give us the same encoding. In that case the encoded machine would
not accept anything because the final state is q1 (highest numbered state), and there is no way to get to
it. I used it only as a way to raise that issue in class, i.e., the the Hopcroft definition is a bit ambiguous
in this case.
One way to resolve the ambiguity is to require the encoding to specifically specify the final state (at the
end or something). In that case, 111111 isn't even a valid TM, since it doesn't specify the final state.
Another related question is, does a TM even have to have any states at all to be a valid TM? The
encoding would have to be able to isolate that as a unique string also. <End Quote>
Phil Bernhard
66

More Related Content

Similar to THEORY OF COMPUTATION PROCESS AND MECHANISUMS (20)

PPTX
Unit 2 Pumping lemma Unit 2 Pumping lemma
AnshTripathi38
 
PPT
Regular Languages
parmeet834
 
PPT
5 decidability theory of computation
parmeet834
 
PPTX
Automata theory - Push Down Automata (PDA)
Akila Krishnamoorthy
 
PPTX
symbolic_automata or Advanced Programming Practice.pptx
sudharsr
 
PPT
FiniteAutomata (1).ppt
ssuser47f7f2
 
PPT
FiniteAutomata.ppt
RohitPaul71
 
PPT
chapter1 (1).ppt
NateHigger
 
PPT
chapter1.ppt
NateHigger
 
PPT
chapter111111111111111111111111111111.ppt
sppatelrs
 
PPT
FiniteAutomata-DFA and NFA from Theory of Computation.ppt
AdharshKumarSingh
 
PDF
Formal Languages and Automata Theory Unit 1
Srimatre K
 
PPTX
INTRODUTION Formal Language and Automatic Theory.pptx
SUNEEL37
 
PPTX
BCS503 TOC Module 5 PPT.pptx VTU academic Year 2024-25 ODD SEM
VENKATESHBHAT25
 
PPTX
Resumen material MIT
Rawel Luciano
 
PPTX
Automata Theory - Turing machine
Akila Krishnamoorthy
 
PPT
POST’s CORRESPONDENCE PROBLEM
Rajendran
 
PPTX
TuringMachines-myppt.pptx
SanchayKedia2
 
PDF
Block Cipher vs. Stream Cipher
Amirul Wiramuda
 
PPT
Finite automata
Rajesh Yaramadi
 
Unit 2 Pumping lemma Unit 2 Pumping lemma
AnshTripathi38
 
Regular Languages
parmeet834
 
5 decidability theory of computation
parmeet834
 
Automata theory - Push Down Automata (PDA)
Akila Krishnamoorthy
 
symbolic_automata or Advanced Programming Practice.pptx
sudharsr
 
FiniteAutomata (1).ppt
ssuser47f7f2
 
FiniteAutomata.ppt
RohitPaul71
 
chapter1 (1).ppt
NateHigger
 
chapter1.ppt
NateHigger
 
chapter111111111111111111111111111111.ppt
sppatelrs
 
FiniteAutomata-DFA and NFA from Theory of Computation.ppt
AdharshKumarSingh
 
Formal Languages and Automata Theory Unit 1
Srimatre K
 
INTRODUTION Formal Language and Automatic Theory.pptx
SUNEEL37
 
BCS503 TOC Module 5 PPT.pptx VTU academic Year 2024-25 ODD SEM
VENKATESHBHAT25
 
Resumen material MIT
Rawel Luciano
 
Automata Theory - Turing machine
Akila Krishnamoorthy
 
POST’s CORRESPONDENCE PROBLEM
Rajendran
 
TuringMachines-myppt.pptx
SanchayKedia2
 
Block Cipher vs. Stream Cipher
Amirul Wiramuda
 
Finite automata
Rajesh Yaramadi
 

More from gokikayal1998 (7)

PPT
3-regular_expressions_and_languages.ppt 1
gokikayal1998
 
PPTX
Lecture 4 final FINITE AUTOMATA FOR THEORY OF COMPUTATION
gokikayal1998
 
PPT
3-regular_expressions_and_languages (1).ppt
gokikayal1998
 
PPT
TuringMachineS FOUNDATION OF DATA SCIENCE
gokikayal1998
 
PPT
3-regular_expressions_and_languages (1).ppt
gokikayal1998
 
PPTX
1st unit - microcontroller architechture and pin diagram
gokikayal1998
 
PPTX
5th unit embedded system and iot design timer and controller
gokikayal1998
 
3-regular_expressions_and_languages.ppt 1
gokikayal1998
 
Lecture 4 final FINITE AUTOMATA FOR THEORY OF COMPUTATION
gokikayal1998
 
3-regular_expressions_and_languages (1).ppt
gokikayal1998
 
TuringMachineS FOUNDATION OF DATA SCIENCE
gokikayal1998
 
3-regular_expressions_and_languages (1).ppt
gokikayal1998
 
1st unit - microcontroller architechture and pin diagram
gokikayal1998
 
5th unit embedded system and iot design timer and controller
gokikayal1998
 
Ad

Recently uploaded (20)

DOCX
8th International Conference on Electrical Engineering (ELEN 2025)
elelijjournal653
 
PPT
Oxygen Co2 Transport in the Lungs(Exchange og gases)
SUNDERLINSHIBUD
 
PDF
A presentation on the Urban Heat Island Effect
studyfor7hrs
 
PPTX
drones for disaster prevention response.pptx
NawrasShatnawi1
 
PPTX
UNIT DAA PPT cover all topics 2021 regulation
archu26
 
PPTX
265587293-NFPA 101 Life safety code-PPT-1.pptx
chandermwason
 
PDF
Ethics and Trustworthy AI in Healthcare – Governing Sensitive Data, Profiling...
AlqualsaDIResearchGr
 
PDF
monopile foundation seminar topic for civil engineering students
Ahina5
 
PDF
MOBILE AND WEB BASED REMOTE BUSINESS MONITORING SYSTEM
ijait
 
PDF
PORTFOLIO Golam Kibria Khan — architect with a passion for thoughtful design...
MasumKhan59
 
PPTX
Green Building & Energy Conservation ppt
Sagar Sarangi
 
PPTX
Thermal runway and thermal stability.pptx
godow93766
 
PPTX
MPMC_Module-2 xxxxxxxxxxxxxxxxxxxxx.pptx
ShivanshVaidya5
 
PPTX
ISO/IEC JTC 1/WG 9 (MAR) Convenor Report
Kurata Takeshi
 
PPTX
MobileComputingMANET2023 MobileComputingMANET2023.pptx
masterfake98765
 
PDF
BioSensors glucose monitoring, cholestrol
nabeehasahar1
 
PPTX
Heart Bleed Bug - A case study (Course: Cryptography and Network Security)
Adri Jovin
 
PPTX
Innowell Capability B0425 - Commercial Buildings.pptx
regobertroza
 
PPTX
Benefits_^0_Challigi😙🏡💐8fenges[1].pptx
akghostmaker
 
PDF
International Journal of Information Technology Convergence and services (IJI...
ijitcsjournal4
 
8th International Conference on Electrical Engineering (ELEN 2025)
elelijjournal653
 
Oxygen Co2 Transport in the Lungs(Exchange og gases)
SUNDERLINSHIBUD
 
A presentation on the Urban Heat Island Effect
studyfor7hrs
 
drones for disaster prevention response.pptx
NawrasShatnawi1
 
UNIT DAA PPT cover all topics 2021 regulation
archu26
 
265587293-NFPA 101 Life safety code-PPT-1.pptx
chandermwason
 
Ethics and Trustworthy AI in Healthcare – Governing Sensitive Data, Profiling...
AlqualsaDIResearchGr
 
monopile foundation seminar topic for civil engineering students
Ahina5
 
MOBILE AND WEB BASED REMOTE BUSINESS MONITORING SYSTEM
ijait
 
PORTFOLIO Golam Kibria Khan — architect with a passion for thoughtful design...
MasumKhan59
 
Green Building & Energy Conservation ppt
Sagar Sarangi
 
Thermal runway and thermal stability.pptx
godow93766
 
MPMC_Module-2 xxxxxxxxxxxxxxxxxxxxx.pptx
ShivanshVaidya5
 
ISO/IEC JTC 1/WG 9 (MAR) Convenor Report
Kurata Takeshi
 
MobileComputingMANET2023 MobileComputingMANET2023.pptx
masterfake98765
 
BioSensors glucose monitoring, cholestrol
nabeehasahar1
 
Heart Bleed Bug - A case study (Course: Cryptography and Network Security)
Adri Jovin
 
Innowell Capability B0425 - Commercial Buildings.pptx
regobertroza
 
Benefits_^0_Challigi😙🏡💐8fenges[1].pptx
akghostmaker
 
International Journal of Information Technology Convergence and services (IJI...
ijitcsjournal4
 
Ad

THEORY OF COMPUTATION PROCESS AND MECHANISUMS

  • 1. 1 Turing Machines (TM) • Generalize the class of CFLs: Regular Languages Context-Free Languages Recursive Languages Recursively Enumerable Languages Non-Recursively Enumerable Languages
  • 2. 2 • Another Part of the Hierarchy: Regular Languages - ε Context-Free Languages - ε Context-Sensitive Languages Recursive Languages Non-Recursively Enumerable Languages Recursively Enumerable Languages
  • 3. 3 • Recursively enumerable languages are also known as type 0 languages. • Context-sensitive languages are also known as type 1 languages. • Context-free languages are also known as type 2 languages. • Regular languages are also known as type 3 languages.
  • 4. 4 • TMs model the computing capability of a general purpose computer, which informally can be described as: – Effective procedure • Finitely describable • Well defined, discrete, “mechanical” steps • Always terminates – Computable function • A function computable by an effective procedure • TMs formalize the above notion. • Church-Turing Thesis: There is an effective procedure for solving a problem if and only if there is a TM that halts for all inputs and solves the problem. – There are many other computing models, but all are equivalent to or subsumed by TMs. There is no more powerful machine (Technically cannot be proved). • DFAs and PDAs do not model all effective procedures or computable functions, but only a subset.
  • 5. 5 Deterministic Turing Machine (DTM) …….. …….. • Two-way, infinite tape, broken into cells, each containing one symbol. • Two-way, read/write tape head. • An input string is placed on the tape, padded to the left and right infinitely with blanks, read/write head is positioned at the left end of input string. • Finite control, i.e., a program, containing the position of the read head, current symbol being scanned, and the current state. • In one move, depending on the current state and the current symbol being scanned, the TM 1) changes state, 2) prints a symbol over the cell being scanned, and 3) moves its’ tape head one cell left or right. • Many modifications possible, but Church-Turing declares equivalence of all. Finite Control B B 0 1 1 0 0 B B
  • 6. 6 Formal Definition of a DTM • A DTM is a seven-tuple: M = (Q, Σ, Γ, δ, q0, B, F) Q A finite set of states Σ A finite input alphabet, which is a subset of Γ– {B} Γ A finite tape alphabet, which is a strict superset of Σ B A distinguished blank symbol, which is in Γ q0 The initial/starting state, q0 is in Q F A set of final/accepting states, which is a subset of Q δ A next-move function, which is a mapping (i.e., may be undefined) from Q x Γ –> Q x Γ x {L,R} Intuitively, δ(q,s) specifies the next state, symbol to be written, and the direction of tape head movement by M after reading symbol s while in state q.
  • 7. 7 • Example #1: {w | w is in {0,1}* and w ends with a 0} 0 00 10 10110 Not ε Q = {q0, q1, q2} Γ = {0, 1, B} Σ = {0, 1} F = {q2} δ: 0 1 B ->q0 (q0, 0, R) (q0, 1, R) (q1, B, L) q1 (q2, 0, R) - - q2 * - - - – q0 is the start state and the “scan right” state, until hits B – q1 is the verify 0 state – q2 is the final state
  • 8. 8 • Example #2: {0n 1n | n ≥ 1} 0 1 X Y B ->q0 (q1, X, R) - - (q3, Y, R)0’s finished - q1 (q1, 0, R)ignore1 (q2, Y, L) - (q1, Y, R) ignore2 - (more 0’s) q2 (q2, 0, L) ignore2 - (q0, X, R) (q2, Y, L) ignore1 - q3 - - (more 1’s) - (q3, Y, R) ignore (q4, B, R) q4* - - - - - • Sample Computation: (on 0011), presume state q looks rightward q00011BB.. |— Xq1011 |— X0q111 |— Xq20Y1 |— q2X0Y1 |— Xq00Y1 |— XXq1Y1 |— XXYq11 |— XXq2YY |— Xq2XYY |— XXq0YY |— XXYq3Y B… |— XXYYq3 BB… |— XXYYBq4
  • 9. 9 Making a TM for {0n 1n | n >= 1} Try n=2 or 3 first. • q0 is on 0, replaces with the character to X, changes state to q1, moves right • q1 sees next 0, ignores (both 0’s and X’s) and keeps moving right • q1 hits a 1, replaces it with Y, state to q2, moves left • q2 sees a Y or 0, ignores, continues left • when q2 sees X, moves right, returns to q0 for looping step 1 through 5 • when finished, q0 sees Y (no more 0’s), changes to pre-final state q3 • q3 scans over all Y’s to ensure there is no extra 1 at the end (to crash on seeing any 0 or 1) • when q3 sees B, all 0’s matched 1’s, done, changes to final state q4 • blank line for final state q4 Try n=1 next. Make sure unbalanced 0’s and 1’s, or mixture of 0-1’s, “crashes” in a state not q4, as it should be q00011BB.. |— Xq1011 |— X0q111 |— Xq20Y1 |— q2X0Y1 |— Xq00Y1 |— XXq1Y1 |— XXYq11 |— XXq2YY |— Xq2XYY |— XXq0YY |— XXYq3Y B… |— XXYYq3 BB… |— XXYYBq4
  • 10. 10 • Same Example #2: {0n 1n | n ≥ 1} 0 1 X Y B q0 (q1, X, R) - - (q3, Y, R) - q1 (q1, 0, R) (q2, Y, L) - (q1, Y, R) - q2 (q2, 0, L) - (q0, X, R) (q2, Y, L) - q3 - - - (q3, Y, R) (q4, B, R) q4 - - - - - Logic: cross 0’s with X’s, scan right to look for corresponding 1, on finding it cross it with Y, and scan left to find next leftmost 0, keep iterating until no more 0’s, then scan right looking for B. – The TM matches up 0’s and 1’s – q1 is the “scan right” state, looking for 1 – q2 is the “scan left” state, looking for X – q3 is “scan right”, looking for B – q4 is the final state Can you extend the machine to include n=0? How does the input-tape look like for string epsilon? • Other Examples: 000111 00 11 001 011
  • 11. 11 • Roger Ballard’s TM for Example #2, without any extra Tape Symbol: {0n 1n | n ≥ 0} 0 1 B q0 (q1, B, R) (q4, B, R) q1 (q1, 0, R) (q1, 1, R) (q2, B, L) q2 - (q3, B, L) - q3 (q3, 0, L) (q3, 1, L) (q0, B, R) q4 * - - - Logic: Keep deleting 0 and corresponding 1 from extreme ends, until none left. – q0 deletes a leftmost 0 and let q1 scan through end of string, q0 accepts on epsilon – q1 scans over the string and makes q2 expecting 1 on the left – q2 deletes 1 and let q3 “scan left” looking for the start of current string – q3 lets q0 start the next iteration – q4 is the final state Any bug? Try on: 000111 00 11 001 011
  • 12. 12 • And his example of a correct TM for the language that goes on infinite loop outside language: {0n 1n | n ≥ 0} 0 1 B q0 (q1, B, R) (q3, 1, L) (q4, B, R) q1 (q1, 0, R) (q1, 1, R) (q2, B, L) q2 - (q3, B, L) - q3 (q3, 0, L) (q3, 1, L) (q0, B, R) q4 * - - - Logic: This machine still works correctly for all strings in the language, but start a string with 1 (not in the language), and it loops on B1 for ever.
  • 13. 13 • Exercises: Construct a DTM for each of the following. – {w | w is in {0,1}* and w ends in 00} – {w | w is in {0,1}* and w contains at least two 0’s} – {w | w is in {0,1}* and w contains at least one 0 and one 1} – Just about anything else (simple) you can think of
  • 14. 14 Formal Definitions for DTMs • Let M = (Q, Σ, Г, δ, q0, B, F) be a TM. • Definition: An instantaneous description (ID) is a triple α1qα2, where: – q, the current state, is in Q – α1α2, is in Г*, and is the current tape contents up to the rightmost non-blank symbol, or the symbol to the left of the tape head, whichever is rightmost – The tape head is currently scanning the first symbol of α2 – At the start of a computation α1= ε – If α2= ε then a blank is being scanned • Example: (for TM #1) q00011 Xq1011 X0q111 Xq20Y1 q2X0Y1 Xq00Y1 XXq1Y1 XXYq11 XXq2YY Xq2XYY XXq0YY XXYq3Y XXYYq3 XXYYBq4
  • 15. 15 • Suppose the following is the current ID of a DTM x1x2…xi-1qxixi+1…xn Case 1) δ(q, xi) = (p, y, L) (a) if i = 1 then qx1x2…xi-1xixi+1…xn |— pByx2…xi-1xixi+1…xn (b) else x1x2…xi-1qxixi+1…xn |— x1x2…xi-2pxi-1yxi+1…xn – If any suffix of xi-1yxi+1…xn is blank then it is deleted. Case 2) δ(q, xi) = (p, y, R) x1x2…xi-1qxixi+1…xn |— x1x2…xi-1ypxi+1…xn – If i>n then the ID increases in length by 1 symbol x1x2…xnq|— x1x2…xnyp
  • 16. 16 • Definition: Let M = (Q, Σ, Г, δ, q0, B, F) be a TM, and let w be a string in Σ*. Then w is accepted by M iff q0w |—* α1pα2 where p is in F and α1 and α2 are in Г* • Definition: Let M = (Q, Σ, Г, δ, q0, B, F) be a TM. The language accepted by M, denoted L(M), is the set {w | w is in Σ* and w is accepted by M} • Notes: – In contrast to FA and PDAs, if a TM simply passes through a final state then the string is accepted. – Given the above definition, no final state of a TM need to have any transitions. Henceforth, this is our assumption. – If x is NOT in L(M) then M may enter an infinite loop, or halt in a non-final state. – Some TMs halt on ALL inputs, while others may not. In either case the language defined by TM is still well defined.
  • 17. 17 • Definition: Let L be a language. Then L is recursively enumerable if there exists a TM M such that L = L(M). – If L is r.e. then L = L(M) for some TM M, and • If x is in L then M halts in a final (accepting) state. • If x is not in L then M may halt in a non-final (non-accepting) state or no transition is available, or loop forever. • Definition: Let L be a language. Then L is recursive if there exists a TM M such that L = L(M) and M halts on all inputs. – If L is recursive then L = L(M) for some TM M, and • If x is in L then M halts in a final (accepting) state. • If x is not in L then M halts in a non-final (non-accepting) state or no transition is available (does not go to infinite loop). Notes: – The set of all recursive languages is a subset of the set of all recursively enumerable languages – Terminology is easy to confuse: A TM is not recursive or recursively enumerable, rather a language is recursive or recursively enumerable.
  • 18. 18 • Recall the Hierarchy: Regular Languages - ε Context-Free Languages - ε Context-Sensitive Languages Recursive Languages Non-Recursively Enumerable Languages Recursively Enumerable Languages
  • 19. 19 • Observation: Let L be an r.e. language. Then there is an infinite list M0, M1, … of TMs such that L = L(Mi). • Question: Let L be a recursive language, and M0, M1, … a list of all TMs such that L = L(Mi), and choose any i>=0. Does Mi always halt? • Answer: Maybe, maybe not, but at least one in the list does. • Question: Let L be a recursive enumerable language, and M0, M1, … a list of all TMs such that L = L(Mi), and choose any i>=0. Does Mi always halt? • Answer: Maybe, maybe not. Depending on L, none might halt or some may halt. – If L is also recursive then L is recursively enumerable, recursive is subset of r.e. • Question: Let L be a r.e. language that is not recursive (L is in r.e. – r), and M0, M1, … a list of all TMs such that L = L(Mi), and choose any i>=0. Does Mi always halt? • Answer: No! If it did, then L would not be in r.e. – r, it would be recursive.
  • 20. 20 L is Recursively enumerable: TM exist: M0, M1, … They accept string in L, and do not accept any string outside L L is Recursive: at least one TM halts on L and on ∑*-L, others may or may not L is Recursively enumerable but not Recursive: TM exist: M0, M1, … but none halts on all x in ∑*-L M0 goes on infinite loop on a string p in ∑*-L, while M1 on q in ∑*-L However, each correct TM accepts each string in L, and none in ∑*-L L is not R.E: no TM exists
  • 21. 21 • Let M be a TM. – Question: Is L(M) r.e.? – Answer: Yes! By definition it is! – Question: Is L(M) recursive? – Answer: Don’t know, we don’t have enough information. – Question: Is L(M) in r.e – r? – Answer: Don’t know, we don’t have enough information.
  • 22. 22 • Let M be a TM that halts on all inputs: – Question: Is L(M) recursively enumerable? – Answer: Yes! By definition it is! – Question: Is L(M) recursive? – Answer: Yes! By definition it is! – Question: Is L(M) in r.e – r? – Answer: No! It can’t be. Since M always halts, L(M) is recursive.
  • 23. 23 • Let M be a TM. – As noted previously, L(M) is recursively enumerable, but may or may not be recursive. – Question: Suppose, we know L(M) is recursive. Does that mean M always halts? – Answer: Not necessarily. However, some TM M’ must exist such that L(M’) = L(M) and M’ always halts. – Question: Suppose that L(M) is in r.e. – r. Does M always halt? – Answer: No! If it did then L(M) would be recursive and therefore not in r.e. – r.
  • 24. 24 • Let M be a TM, and suppose that M loops forever on some string x. – Question: Is L(M) recursively enumerable? – Answer: Yes! By definition it is. But, obviously x is not in L(M). – Question: Is L(M) recursive? – Answer: Don’t know. Although M doesn’t always halt, some other TM M’ may exist such that L(M’) = L(M) and M’ always halts. – Question: Is L(M) in r.e. – r? – Answer: Don’t know. May be another M’ will halt on x, and on all strings! May be no TM for this L(M) does halt on all strings! We just do not know!
  • 25. 25 Modifications of the Basic TM Model • Other (Extended) TM Models: – One-way infinite tapes – Multiple tapes and tape heads – Non-Deterministic TMs – Multi-Dimensional TMs (n-dimensional tape) – Multi-Heads – Multiple tracks All of these extensions are equivalent to the basic DTM model
  • 26. 26 Closure Properties for Recursive and Recursively Enumerable Languages •TMs model General Purpose (GP) Computers: – If a TM can do it, so can a GP computer – If a GP computer can do it, then so can a TM If you want to know if a TM can do X, then some equivalent question are: – Can a general purpose computer do X? – Can a C/C++/Java/etc. program be written to do X? For example, is a language L recursive? – Can a C/C++/Java/etc. program be written that always halts and accepts L?
  • 27. 27 • TM Block Diagrams: – If L is a recursive language, then a TM M that accepts L and always halts can be pictorially represented by a “chip” or “box” that has one input and two outputs. – If L is a recursively enumerable language, then a TM M that accepts L can be pictorially represented by a “box” that has one output. – Conceivably, M could be provided with an output for “no,” but this output cannot be counted on. Consequently, we simply ignore it. w yes no M w yes M
  • 28. 28 • Theorem 1: The recursive languages are closed with respect to complementation, i.e., if L is a recursive language, then so is • Proof: Let M be a TM such that L = L(M) and M always halts. Construct TM M’ as follows: • Note That: – M’ accepts iff M does not – M’ always halts since M always halts From this it follows that the complement of L is recursive.  • Question: How is the construction achieved? Do we simply complement the final states in the TM? No! A string in L could end up in the complement of L. – Suppose q5 is an accepting state in M, but q0 is not. – If we simply complemented the final and non-final states, then q0 would be an accepting state in M’ but q5 would not. – Since q0 is an accepting state, by definition all strings are accepted by M’ L L    * w yes no M yes no M’
  • 29. 29 • Theorem 2: The recursive languages are closed with respect to union, i.e., if L1 and L2 are recursive languages, then so is • Proof: Let M1 and M2 be TMs such that L1 = L(M1) and L2 = L(M2) and M1 and M2 always halts. Construct TM M’ as follows: • Note That: – L(M’) = L(M1) L(M2) • L(M’) is a subset of L(M1) U L(M2) • L(M1) U L(M2) is a subset of L(M’) – M’ always halts since M1 and M2 always halt It follows from this that is recursive.  2 1 3 L L L   w yes no M1 yes no M2 start M’ 2 1 3 L L L   
  • 30. 30 • Theorem 3: The recursive enumerable languages are closed with respect to union, i.e., if L1 and L2 are recursively enumerable languages, then so is • Proof: Let M1 and M2 be TMs such that L1 = L(M1) and L2 = L(M2). Construct M’ as follows: • Note That: – L(M’) = L(M1) U L(M2) • L(M’) is a subset of L(M1) U L(M2) • L(M1) U L(M2) is a subset of L(M’) – M’ halts and accepts iff M1 or M2 halts and accepts It follows from this that is recursively enumerable.  • Question: How do you run two TMs in parallel? 2 1 3 L L L   2 1 3 L L L   w yes M1 yes yes M2 M’
  • 31. 31 • Suppose, M1 and M2 had outputs for “no” in the previous construction, and these were transferred to the “no” output for M’ • Question: What would happen if w is in L(M1) but not in L(M2)? • Answer: You could get two outputs – one “yes” and one “no.” – At least M1 will halt and answer accept, M2 may or may not halt. – As before, for the sake of convenience the “no” output will be ignored. w yes M1 yes yes M2 M’ no no no
  • 32. 32 • Theorem 4: If L and are both recursively enumerable then L (and therefore ) is recursive. • Proof: Let M1 and M2 be TMs such that L = L(M1) and = L(M2). Construct M’ as follows: • Note That: – L(M’) = L • L(M’) is a subset of L • L is a subset of L(M’) – M’ is TM for L – M’ always halts since either M1 or M2 halts for any given string – M’ shows that L is recursive It follows from this that L (and therefore its’ complement) is recursive. So, is also recursive (we proved it before).  L L L w yes M1 yes yes M2 M’ no L
  • 33. 33 • Corollary of Thm 4: Let L be a subset of Σ*. Then one of the following must be true: – Both L and are recursive. – One of L and is recursively enumerable but not recursive, and the other is not recursively enumerable, or – Neither L nor is recursively enumerable – In other words, it is impossible to have both L and r.e. but not recursive L L L L
  • 34. 34 • In terms of the hierarchy: (possibility #1) Recursive Languages Recursively Enumerable Languages Non-Recursively Enumerable Languages L L
  • 35. 35 • In terms of the hierarchy: (possibility #2) Recursive Languages Recursively Enumerable Languages Non-Recursively Enumerable Languages L L
  • 36. 36 • In terms of the hierarchy: (possibility #3) Recursive Languages Recursively Enumerable Languages Non-Recursively Enumerable Languages L L
  • 37. 37 • In terms of the hierarchy: (Impossibility #1) Recursive Languages Recursively Enumerable Languages Non-Recursively Enumerable Languages L L
  • 38. 38 • In terms of the hierarchy: (Impossibility #2) Recursive Languages Recursively Enumerable Languages Non-Recursively Enumerable Languages L L
  • 39. 39 • In terms of the hierarchy: (Impossibility #3) Recursive Languages Recursively Enumerable Languages Non-Recursively Enumerable Languages L L
  • 40. 40 • Note: This gives/identifies three approaches to show that a language is not recursive. – Show that the language’s complement is not recursive, in one of the two ways: • Show that the language’s complement is recursively enumerable but not recursive • Show that the language’s complement is not even recursively enumerable
  • 41. 41 The Halting Problem - Background • Definition: A decision problem is a problem having a yes/no answer (that one presumably wants to solve with a computer). Typically, there is a list of parameters on which the problem is based. – Given a list of numbers, is that list sorted? – Given a number x, is x even? – Given a C program, does that C program contain any syntax errors? – Given a TM (or C program), does that TM contain an infinite loop? From a practical perspective, many decision problems do not seem all that interesting. However, from a theoretical perspective they are for the following two reasons: – Decision problems are more convenient/easier to work with when proving complexity results. – Non-decision counter-parts can always be created & are typically at least as difficult to solve. • Notes: – The following terms and phrases are analogous: Algorithm - A halting TM program Decision Problem - A language (will show shortly) (un)Decidable - (non)Recursive
  • 42. 42 Statement of the Halting Problem • Practical Form: (P1) Input: Program P and input I. Question: Does P terminate on input I? • Theoretical Form: (P2) Input: Turing machine M with input alphabet Σ and string w in Σ*. Question: Does M halt on w? • A Related Problem We Will Consider First: (P3) Input: Turing machine M with input alphabet Σ and one final state, and string w in Σ*. Question: Is w in L(M)? • Analogy: Input: DFA M with input alphabet Σ and string w in Σ*. Question: Is w in L(M)? Is this problem (regular language) decidable? Yes! DFA always accepts or rejects.
  • 43. 43 • Over-All Approach: – We will show that a language Ld is not recursively enumerable – From this it will follow that is not recursive – Using this we will show that a language Lu is not recursive – From this it will follow that the halting problem is undecidable. • As We Will See: – P3 will correspond to the language Lu – Proving P3 (un)decidable is equivalent to proving Lu (non)recursive d L
  • 44. 44 Converting the Problem to a Language • Let M = (Q, Σ, Γ, δ, q1, B, {qn}) be a TM, where Q = {q1, q2, … , qn}, order the states from 1 through n Σ = {x1, x2} = {0, 1} Γ = {x1, x2, x3} = {0, 1, B} • Encode each transition: δ(qi, xj) = (qk , xl, dm) where qi and qk are in ordered Q xj and xl are in Σ, and dm is in {L, R} = {d1, d2} as: 0i 10j 10k 10l 10m where the number of 0’s indicate the corresponding id, and single 1 acts as a barrier • The TM M can then be encoded as: 111code111code211code311 … 11coder111 where each codei is one transitions’ encoding, and 11’s are barriers between transitions from the table row-major. Let this encoding of M be denoted by <M>.
  • 45. 45 • Less Formally: – Every state, tape symbol, and movement symbol is encoded as a sequence of 0’s: q1, 0 q2, 00 q3 000 : 0 0 1 00 B 000 L 0 R 00 – Note that 1’s are not used to represent the above, since 1 is used as a special separator symbol. – Example: δ(q2, 1) = (q3 , 0, R) Is encoded as: 00100100010100
  • 46. 46 0 1 B q1 (q1, 0, R) (q1, 1, R) (q2, B, L) q2 (q3, 0, R) - - q3 - - - What is the L(M)? Coding for the above table: 1110101010100110100101001001101000100100010110010100010100111 Are the followings correct encoding of a TM? 01100001110001 111111
  • 47. 47 • Definition: Lt = {x | x is in {0, 1}* and x encodes a TM} – Question: Is Lt recursive? – Answer: Yes. [Check only for format, i.e. the order and number of 0’s and 1’s, syntax checking] – Question: Is Lt decidable: – Answer: Yes (same question).
  • 48. 48 The Universal Language • Define the language Lu as follows: Lu = {x | x is in {0, 1}* and x = <M,w> where M is a TM encoding and w is in L(M)} • Let x be in {0, 1}*. Then either: 1. x doesn’t have a TM prefix, in which case x is not in Lu 2. x has a TM prefix, i.e., x = <M,w> and either: a) w is not in L(M), in which case x is not in Lu b) w is in L(M), in which case x is in Lu
  • 49. 49 • Recall: 0 1 B q1 (q1, 0, R) (q1, 1, R) (q2, B, L) q2 (q3, 0, R) - - q3 - - - • Which of the following are in Lu? 1110101010100110100101001001101000100100010110010100010100111 111010101010011010010100100110100010010001011001010001010011101110 111010101010011010010100100110100010010001011001010001010011100110111 01100001110001 111111
  • 50. 50 • Compare P3 and Lu: (P3): Input: Turing machine M with input alphabet Σ and one final state, and string w in Σ*. Question: Is w in L(M)? Lu = {x | x is in {0, 1}* and x = <M,w> where M is a TM encoding and w is in L(M)} • Universal TM (UTM) is the machine for Lu – presuming it is r.e.! Can you write a program to accept strings in Lu? • Notes: – Lu is P3 expressed as a language – Asking if Lu is recursive is the same as asking if P3 is decidable. • Can you write a Halting program for accept/reject of strings in Sigma* ? – We will show that Lu is not recursive, and from this it will follow that P3 is un- decidable. – From this we can further show that the Halting problem is un-decidable. => A general concept: a decision problem ≡ a formal language
  • 51. 51 • Define another language Ld as follows: • [Ld_bar = {self accepting TM encodings}, everything else is Ld ] Ld = {x | x is in {0, 1}* and (a) either x is not a TM, (b) or x is a TM, call it M, and x is not in L(M)} (1) – Note, there is only one string x – And, the question really is the complement of “does a TM accept its own encoding?” (Ld-bar’s complement) • Let x be in {0, 1}*. Then either: 1. x is not a TM, in which case x is in Ld 2. x is a TM, call it M, and either: a) x is not in L(M), in which case x is in Ld b) x is in L(M), in which case x is not in Ld
  • 52. 52 • Recall: 0 1 B q1 (q1, 0, R) (q1, 1, R) (q2, B, L) q2 (q3, 0, R) - - q3 - - - • Which of the following are in Ld? 11101010101001101001010010011010001000100010110010100010100111 01100001110001 Change above machine to accept strings ending with 1: the encoding will not be in Ld
  • 53. 53 • Lemma: Ld is not recursively enumerable. [No TM for Ld!!!] • Proof: (by contradiction) Suppose that Ld is recursively enumerable. In other words, there exists a TM M such that: Ld = L(M) (2) Now suppose that w is a string encoding of M. (3) Case 1) w is in Ld (4) By definition of Ld given in (1), either w does not encode a TM, or w does encode a TM, call it M, and w is not in L(M). But we know that w encodes a TM (3: that’s where it came from). Therefore: w is not in L(M) (5) But then (2) and (5) imply that w is not in Ld contradicting (4). Case 2) w is not in Ld (6) By definition of Ld given in (1), w encodes a TM, call it M, and: w is in L(M) (7) But then (2) and (7) imply that w is in Ld contradicting (6). Since both case 1) and case 2) lead to a contradiction, no TM M can exist such that Ld = L(M). Therefore Ld is not recursively enumerable. 
  • 54. 54 • Note: = {x | x is in {0, 1}*, x encodes a TM, call it M, and x is in L(M)} • Corollary: is not recursive. • Proof: If were recursive, then Ld would be recursive, and therefore recursively enumerable, a contradiction.  d L d L d L
  • 55. 55 • Theorem: Lu is not recursive. • Proof: (by contradiction) Suppose that Lu is recursive. Recall that: Lu = {x | x is in {0, 1}* and x = <M,w> where M is a TM encoding and w is in L(M)} Suppose that Lu = L(M’) where M’ is a TM that always halts. Construct an algorithm (i.e., a TM that always halts) for as follows: Suppose that M’ always halts and Lu = L(M’). It follows that: – M’’ always halts – L(M’’) = would therefore be recursive, a contradiction.  d L d L d L Yes No Yes No Let M be the TM that w encodes. M’: UTM for Lu Yes No <M,w> (i.e., <w,w>) Is w a TM? Lt w M’’: for Ld-bar
  • 56. 56 L_u is recursively enumerable (you may ignore this slide, for now) Input the string Decode the TM prefix, if it doesn't have one then the string is not in Lu Otherwise, run/simulate the encoded TM on the suffix If it terminates and accepts then the original string is in Lu. If a given string is in Lu, then the above algorithm will correctly determine that, halt and say yes. If the given string is not in Lu, then there are three cases: 1) the string doesn't have a TM as a prefix. In this case the above algo correctly detects this fact, and reports the string is not in Lu. 2) the string has a TM prefix, and the TM halts and rejects on the suffix. In this case the above algo correctly reports the string is not in Lu. 3) the string has a TM prefix, but it goes into an infinite loop on the suffix. In this case the above algo also goes into an infinite loop, but that’s ok since the string as a whole is not in Lu anyway, and we are just trying to show there exists a TM for only accepting strings in Lu. From this proof note that if the prefix TM is a DFA or PDA, then our machine will also halt in the 3rd case above, no matter what the suffix is. -- due to Dr. Bernhard (edited by me)
  • 57. 57 • The over-all logic of the proof is as follows: 1. If Lu were recursive, then so will be 2. is not recursive, because Ld is not r.e. 3. It follows that Lu is not recursive. The second point was established by the corollary. The first point was established by the theorem on a preceding slide. This type of proof is commonly referred to as a reduction. Specifically, the problem of recognizing was reduced to the problem of recognizing Lu d L d L d L
  • 58. 58 • Define another language Lh: Lh = {x | x is in {0, 1}* and x = <M,w> where M is a TM encoding and M halts on w} Note that Lh is P2 expressed as a language: (P2): Input: Turing machine M with input alphabet Σ and string w in Σ*. Question: Does M halt on w?
  • 59. 59 • Theorem: Lh is not recursive. • Proof: (by contradiction) Suppose that Lh is recursive. Recall that: Lh = {x | x is in {0, 1}* and x = <M,w> where M is a TM encoding and M halts on w} and Lu = {x | x is in {0, 1}* and x = <M,w> where M is a TM encoding and w is in L(M)} Suppose that Lh = L(M’) where M’ is a TM that always halts. Construct an algorithm (i.e., a TM that always halts) for Lu as follows: Suppose that M’ always halts and Lh = L(M’). It follows that: – M’’ always halts – L(M’’) = Lu Lu would therefore be recursive, a contradiction.  Yes No Yes No Simulate M On w Yes No M’ for Lh: does M halt on w? <M,w> M’’ : UTM for Lu start
  • 60. 60 • The over-all logic of the proof is as follows: 1. If Lh is recursive, then so is Lu 2. Lu is not recursive 3. It follows that Lh is not recursive. The second point was established previously. The first point was established by the theorem on the preceding slide. This proof is also a reduction. Specifically, the problem of recognizing Lu was reduced to the problem of recognizing Lh. [Lu and Lh both are recursively enumerable: for proof see Dr. Shoaff!]
  • 61. 61 Examples of non-halting program: http://cs.fit.edu/~ryan/tju/russell.c http://cs.fit.edu/~ryan/tju/russell.scm http://cs.fit.edu/~ryan/tju/russell.py
  • 62. 62 • Define another language Lq: Lq = {x | x is in {0, 1}*, x encodes a TM M, and M does not contain an infinite loop} Or equivalently: Lq = {x | x is in {0, 1}*, x encodes a TM M, and there exists no string w in {0, 1}* such that M does not terminate on w} Note that: = {x | x is in {0, 1}*, and either x does not encode a TM, or it does encode a TM, call it M, and there exists a string w in {0, 1}* such that M does not terminate on w} Note that the above languages correspond to the following problem: (P0): Input: Program P. Question: Does P contain an infinite loop? Using the techniques discussed, what can we prove about Lq or its’ complement? q L
  • 63. 63 • More examples of non-recursive languages: Lne = {x | x is a TM M and L(M) is not empty} is r.e. but not recursive. Le = {x | x is a TM M and L(M) is empty} is not r.e. Lr = {x | x is a TM M and L(M) is recursive} is not r.e. Note that Lr is not the same as Lh = {x | x is a TM M that always halts} but Lh is in Lr. Lnr = {x | x is a TM M and L(M) is not recursive} is not r.e.
  • 64. 64 • Lemma: Ld is not recursively enumerable: [No TM for Ld!!!] • Proof: (by contradiction) Suppose that Ld were recursively enumerable. In other words, that there existed a TM M such that: Ld = L(M) (2) Now suppose that wj is a string encoding of M. (3) Case 1) wj is in Ld(4) By definition of Ld given in (1), either wj does not encode a TM, or wj does encode a TM, call it M, and wj is not in L(M). But we know that wj encodes a TM (3: that’s where it came from). Therefore: wj is not in L(M) (5) But then (2) and (5) imply that wj is not in Ld contradicting (4). Case 2) wj is not in Ld (6) By definition of Ld given in (1), wj encodes a TM, call it M, and: wj is in L(M) (7) But then (2) and (7) imply that wj is in Ld contradicting (6). Since both case 1) and case 2) lead to a contradiction, no TM M can exist such that Ld = L(M). Therefore Ld is not recursively enumerable.  Ignore this slide
  • 65. 65 ( ) B findPair (findPair2, "(", R) - (final, B, R) findPair2 (findPair2, "(", R) (removePair, ")", L) - removePair (fetch, "(", R) (fetch, ")", R) (goBack, B, L) fetch (retrieve, "(", R) (retreive, ")", R) (retreive, B, R) retreive (returnOpen, "(", L) (returnClosed, ")", L) (returnBlank, B, L) returnOpen (writeOpen, "(", L) (writeOpen, ")", L) (writeOpen, B, L) returnClosed (writeClosed, "(", L) (writeClosed, ")", L) (writeClosed, B, L) returnBlank (writeBlank "(", L) (writeBlank, ")", L) (writeBlank, B, L) writeOpen (removePair, "(", R) (removePair, "(", R) - writeClosed (removePair, ")", R) (removePair, ")", R) - writeBlank (removePair, B, R) (removePair, B, R) - goBack - - (backAgain, B, L) backAgain - - (seekFront, B, L) seekFront (seekFront, "(", L) (seekFront, ")", L) (findPair, B, R) final* - - - Roger’s TM for balanced parenthesis:
  • 66. On 111 111 as a TM encoding <Quote> It was ambiguous, in my opinion, based on the definition in the Hopcroft book, i.e., the definition in the Hopcroft book was not clear/precise enought to account this special case. I don't have the book in front of me right now, but I think this is the example I used in class: Consider the TM that has exactly one state, but no transitions. Perfectly valid TM, and it would give us this encoding (111111). In that case the encoded machine would accept sigma* because the highest numbered state would be q0, the only state, and that would be the final state under the Hopcroft encoding. Now consider the TM that has exactly two states, but no transitions. Also a perfectly valid TM, and it would give us the same encoding. In that case the encoded machine would not accept anything because the final state is q1 (highest numbered state), and there is no way to get to it. I used it only as a way to raise that issue in class, i.e., the the Hopcroft definition is a bit ambiguous in this case. One way to resolve the ambiguity is to require the encoding to specifically specify the final state (at the end or something). In that case, 111111 isn't even a valid TM, since it doesn't specify the final state. Another related question is, does a TM even have to have any states at all to be a valid TM? The encoding would have to be able to isolate that as a unique string also. <End Quote> Phil Bernhard 66

Editor's Notes

  • #16: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #17: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #19: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #21: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #22: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #23: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #24: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #28: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #29: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #30: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #31: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #32: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #33: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #40: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #43: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #47: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #50: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #53: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #54: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #55: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #57: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #58: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #59: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #60: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #62: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.
  • #64: What is rule #10 used for – emptying the stack. What is rule #9 used for – emptying the stack. Why do rules #3 and #6 have options – you don’t know where the middle of the string is. Why don’t rules #4 and #5 have similar options – suppose rule #4 had option (q2, λ). Then 0100 would be accepted.