0% found this document useful (0 votes)
87 views

Recursively Enumerable and Recursive Languages

1) A language is recursively enumerable if there exists a Turing machine that accepts it, but may not halt on some inputs. 2) A language is recursive if there exists a Turing machine that accepts it and halts on all inputs. 3) The diagonal language L = {ai : ai ∈ L(Mi)} is recursively enumerable as there is an algorithm to simulate each Mi on input ai, but it is not recursive as no machine can halt on all inputs.

Uploaded by

api-20012397
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views

Recursively Enumerable and Recursive Languages

1) A language is recursively enumerable if there exists a Turing machine that accepts it, but may not halt on some inputs. 2) A language is recursive if there exists a Turing machine that accepts it and halts on all inputs. 3) The diagonal language L = {ai : ai ∈ L(Mi)} is recursively enumerable as there is an algorithm to simulate each Mi on input ai, but it is not recursive as no machine can halt on all inputs.

Uploaded by

api-20012397
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 61

Recursively Enumerable

and
Recursive Languages

1
Definition:
A language is recursively enumerable
if some Turing machine accepts it

2
Let L be a recursively enumerable language
and M the Turing Machine that accepts it

For string w:
if w L then M halts in a final state

if w L then M halts in a non-final state


or loops forever
3
Definition:
A language is recursive
if some Turing machine accepts it
and halts on any input string

In other words:
A language is recursive if there is
a membership algorithm for it
4
Let L be a recursive language
and M the Turing Machine that accepts it

For string w:

if w L then M halts in a final state

if w L then M halts in a non-final state

5
We will prove:

1. There is a specific language


which is not recursively enumerable
(not accepted by any Turing Machine)

2. There is a specific language


which is recursively enumerable
but not recursive

6
Non Recursively Enumerable

Recursively Enumerable

Recursive

7
A Language which
is not
Recursively Enumerable

8
We want to find a language that
is not Recursively Enumerable

This language is not accepted by any


Turing Machine

9
Consider alphabet {a}

Strings: a, aa, aaa, aaaa, 


1 2 3 4
a a a a 

10
Consider Turing Machines
that accept languages over alphabet {a}

They are countable:

M1, M 2 , M 3 , M 4 , 

11
Example language accepted by M i

L( M i )  {aa, aaaa, aaaaaa}


2 4 6
L( M i )  {a , a , a }

Alternative representation

1 2 3 4 5 6 7
a a a a a a a 

L( M i ) 0 1 0 1 0 1 0 
12
1 2 3 4
a a a a 

L ( M1 ) 0 1 0 1 

L( M 2 ) 1 0 0 1 

L( M 3 ) 0 1 1 1 

L( M 4 ) 0 0 0 1 

13
Consider the language

i i
L  {a : a  L( M i )}

L consists from the 1’s in the diagonal


14
1 2 3 4
a a a a 

L ( M1 ) 0 1 0 1 

L( M 2 ) 1 0 0 1 

L( M 3 ) 0 1 1 1 

L( M 4 ) 0 0 0 1 

3 4
L  {a , a ,}
15
Consider the language L

i i
L  {a : a  L( M i )}

i i
L  {a : a  L( M i )}

L consists of the 0’s in the diagonal

16
1 2 3 4
a a a a 

L ( M1 ) 0 1 0 1 

L( M 2 ) 1 0 0 1 

L( M 3 ) 0 1 1 1 

L( M 4 ) 0 0 0 1 

1 2
L  {a , a ,}
17
Theorem:
Language L is not recursively enumerable

18
Proof:

Assume for contradiction that


L is recursively enumerable

There must exist some machine Mk


that accepts L

L( M k )  L
19
1 2 3 4
a a a a 

L ( M1 ) 0 1 0 1 

L( M 2 ) 1 0 0 1 

L( M 3 ) 0 1 1 1 

L( M 4 ) 0 0 0 1 

Question: M k  M1 ?
20
1 2 3 4
a a a a 

L ( M1 ) 0 1 0 1 

L( M 2 ) 1 0 0 1 

L( M 3 ) 0 1 1 1 

L( M 4 ) 0 0 0 1 
1
a  L( M k )
Answer: M k  M1
1
a  L ( M1 ) 21
1 2 3 4
a a a a 

L ( M1 ) 0 1 0 1 

L( M 2 ) 1 0 0 1 

L( M 3 ) 0 1 1 1 

L( M 4 ) 0 0 0 1 

Question: M k  M 2 ?
22
1 2 3 4
a a a a 

L ( M1 ) 0 1 0 1 

L( M 2 ) 1 0 0 1 

L( M 3 ) 0 1 1 1 

L( M 4 ) 0 0 0 1 
2
a  L( M k )
Answer: Mk  M2
2
a  L( M 2 ) 23
1 2 3 4
a a a a 

L ( M1 ) 0 1 0 1 

L( M 2 ) 1 0 0 1 

L( M 3 ) 0 1 1 1 

L( M 4 ) 0 0 0 1 

Question: M k  M 3 ?
24
1 2 3 4
a a a a 

L ( M1 ) 0 1 0 1 

L( M 2 ) 1 0 0 1 

L( M 3 ) 0 1 1 1 

L( M 4 ) 0 0 0 1 
3
a  L( M k )
Answer: M k  M3
3
a  L( M 3 ) 25
Similarly: Mk  Mi for any i

Because either:

i i
a  L( M k ) a  L( M k )
or
i i
a  L( M i ) a  L( M i )

26
Therefore, the machine M k cannot exist

Therefore, the language L


is not recursively enumerable

End of Proof
27
Observation:

There is no algorithm that describes L

(otherwise L would be accepted by


some Turing Machine)

28
Non Recursively Enumerable

L
Recursively Enumerable

Recursive

29
A Language which is
Recursively Enumerable
and not Recursive

30
We want to find a language which

Is recursively But not


enumerable recursive

There is a The machine


Turing Machine doesn’t halt
that accepts on some input
the language
31
We will prove that the language

i i
L  {a : a  L( M i )}

Is recursively enumerable
but not recursive

32
1 2 3 4
a a a a 

L ( M1 ) 0 1 0 1 

L( M 2 ) 1 0 0 1 

L( M 3 ) 0 1 1 1 

L( M 4 ) 0 0 0 1 

3 4
L  {a , a ,}
33
Theorem:

i i
The language L  {a : a  L( M i )}

is recursively enumerable

34
Proof:

We will give a Turing Machine that


accepts L

35
Turing Machine that accepts L
For any input string w
i
• Compute i , for whichwa
• Find Turing machine M i
(using an enumeration procedure
for Turing Machines)
i
• Simulate M i on input a
• If M i accepts, then accept w
End of Proof
36
Observation:

Recursively enumerable
i i
L  {a : a  L( M i )}

Not recursively enumerable


i i
L  {a : a  L( M i )}
(Thus, also not recursive)

37
Theorem:

i i
The language L  {a : a  L( M i )}
is not recursive

38
Proof:
Assume for contradiction that L is recursive

Then L is recursive:
Take the Turing Machine M that accepts L
M halts on any input:
If M accepts then reject
If M rejects then accept
39
Therefore:

L is recursive

But we know:

L is not recursively enumerable


thus, not recursive

CONTRADICTION!!!!
40
Therefore, L is not recursive

End of Proof
41
Non Recursively Enumerable

L
Recursively Enumerable

L
Recursive

42
Turing acceptable languages
and
Enumeration Procedures

43
We will prove:
(weak result)
• If a language is recursive then
there is an enumeration procedure for it

(strong result)
• A language is recursively enumerable
if and only if
there is an enumeration procedure for it

44
Theorem:
if a language L is recursive then
there is an enumeration procedure for it

45
Proof:

Enumeration Machine

~ M
M

Enumerates all
Accepts L
strings of input alphabet
46
If the alphabet is {a, b} then
~
M can enumerate strings as follows:

a
b
aa
ab
ba
bb
aaa
aab
......
47
Enumeration procedure

Repeat:
~ generates a string w
M
M checks if w L
YES: print w to output
NO: ignore w

End of Proof
48
Example: L  {b, ab, bb, aaa,....}
~ Enumeration
M L(M ) Output
a
b b b
aa
ab ab ab
ba
bb bb bb
aaa aaa aaa
aab
...... ...... ......
49
Theorem:

if language L is recursively enumerable then


there is an enumeration procedure for it

50
Proof:

Enumeration Machine

~ M
M

Enumerates all
Accepts L
strings of input alphabet
51
If the alphabet is {a, b} then
~
M can enumerate strings as follows:

a
b
aa
ab
ba
bb
aaa
aab
52
NAIVE APPROACH
Enumeration procedure

Repeat:
~ generates a string w
M
M checks if w  L
w to output
YES: print
NO: ignore w

Problem: If w L
machine M may loop forever
53
BETTER APPROACH
~ Generates first string w
M 1

M executes first step on w1

~ Generates second string w


M 2

M executes first step on w2


second step on w1
54
~ Generates third string w
M 3

M executes first step on w3


second step on w2
third step on w1

And so on............

55
w1 w2 w3 w4 

1 1 1 1

Step
in 2 2 2 2
string
3 3 3 3


56
If for any string wi
machine M halts in a final state
then it prints wi on the output

End of Proof
57
Theorem:

If for language L
there is an enumeration procedure
then L is recursively enumerable

58
Proof:
Input Tape
w

Machine that
accepts L

Enumerator
Compare
for L

59
Turing machine that accepts L
For input string w
Repeat:
• Using the enumerator,
generate the next string of L
• Compare generated string with w
If same, accept and exit loop

End of Proof
60
We have proven:

A language is recursively enumerable


if and only if
there is an enumeration procedure for it

61

You might also like