Title: Recursively Enumerable and Recursive Languages
1Recursively Enumerable and RecursiveLanguages
2Definition
A language is recursively enumerable if some
Turing machine accepts it
3Let be a recursively enumerable language
and the Turing Machine that accepts it
For string
if
then halts in a final state
if
then halts in a non-final state
or loops forever
4Definition
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
5Let be a recursive language
and the Turing Machine that accepts it
For string
if
then halts in a final state
if
then halts in a non-final state
6We 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
7Non Recursively Enumerable
Recursively Enumerable
Recursive
8We will first prove
- If a language is recursive then
- there is an enumeration procedure for it
- A language is recursively enumerable
- if and only if
- there is an enumeration procedure for it
9Theorem
if a language is recursive then there is
an enumeration procedure for it
10Proof
Enumeration Machine
Enumerates all strings of input alphabet
Accepts
11If the alphabet is then can
enumerate strings as follows
12Enumeration procedure
Repeat
generates a string
checks if
YES print to output
NO ignore
End of Proof
13Example
Enumeration Output
14Theorem
if language is recursively enumerable
then there is an enumeration procedure for it
15Proof
Enumeration Machine
Enumerates all strings of input alphabet
Accepts
16If the alphabet is then can
enumerate strings as follows
17NAIVE APPROACH
Enumeration procedure
Repeat
generates a string
checks if
YES print to output
NO ignore
If machine may loop
forever
Problem
18BETTER APPROACH
Generates first string
executes first step on
Generates second string
executes first step on
second step on
19Generates third string
executes first step on
second step on
third step on
And so on............
201
1
1
1
Step in string
2
2
2
2
3
3
3
3
21If for any string machine halts in
a final state then it prints on the output
End of Proof
22Theorem
If for language there is an enumeration
procedure then is recursively enumerable
23Proof
Input Tape
Machine that accepts
Enumerator for
Compare
24Turing machine that accepts
For input string
Repeat
- Using the enumerator,
- generate the next string of
- Compare generated string with
If same, accept and exit loop
End of Proof
25We have proven
A language is recursively enumerable if and only
if there is an enumeration procedure for it
26A Language which is notRecursively Enumerable
27We want to find a language that is not
Recursively Enumerable
This language is not accepted by any Turing
Machine
28Consider alphabet
Strings
29Consider Turing Machines that accept languages
over alphabet
They are countable
30Example language accepted by
Alternative representation
31(No Transcript)
32Consider the language
consists from the 1s in the diagonal
33(No Transcript)
34Consider the language
consists from the 0s in the diagonal
35(No Transcript)
36Theorem
Language is not recursively enumerable
37Proof
Assume for contradiction that
is recursively enumerable
There must exist some machine that accepts
38Question
39Answer
40Question
41Answer
42Question
43Answer
44for any
Similarly
Because either
or
45Therefore, the machine cannot exist
Therefore, the language is not recursively
enumerable
End of Proof
46Observation
There is no algorithm that describes
(otherwise would be accepted by some
Turing Machine)
47Non Recursively Enumerable
Recursively Enumerable
Recursive
48A Language which is Recursively Enumerableand
not Recursive
49We want to find a language which
Is recursively enumerable
But not recursive
There is a Turing Machine that accepts the
language
The machine doesnt halt on some input
50We will prove that the language
Is recursively enumerable but not recursive
51(No Transcript)
52Theorem
The language
is recursively enumerable
53Proof
We will give a Turing Machine that accepts
54Turing Machine that accepts
For any input string
(using the enumeration procedure for Turing
Machines)
End of Proof
55Observation
Recursively enumerable
Not recursively enumerable
(Thus, also not recursive)
56Theorem
The language
is not recursive
57Proof
Assume for contradiction that is recursive
Then is recursive
Take the Turing Machine that accepts
halts on any input
If accepts then reject If
rejects then accept
58Therefore
is recursive
But we know
is not recursively enumerable
thus, not recursive
CONTRADICTION!!!!
59Therefore, is not recursive
End of Proof
60Non Recursively Enumerable
Recursively Enumerable
Recursive