You are on page 1of 61

Recursively Enumerable and Recursive Languages

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

Let

be a recursively enumerable language

and M the Turing Machine that accepts it For string if if

w:
then then

w L
w L

M M

halts in a final state 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

be a recursive language

and M the Turing Machine that accepts it For string if if

w:
then then

w L
w L

M M

halts in a final state 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

A Language which is not Recursively Enumerable

We want to find a language that is not Recursively Enumerable

This language is not accepted by any Turing Machine

Consider alphabet Strings:

{a}

a, aa, aaa , aaaa ,


a a
1 2

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}

L( M i ) = {a , a , a }
Alternative representation

a
L( M i )


12

a L ( M1 ) L( M 2 )
L( M 3 )

a 0 0 1 0

a 1 1


13

0 1 0 0

1 0 1 0

1 1

L( M 4 )

Consider the language

L = {a : a L( M i )}

consists from the 1s in the diagonal


14

a L ( M1 ) L( M 2 )
L( M 3 )

a 1

a 0 0 1 0
3 4

a 1 1

0 1 0 0

0 1 0

1 1

L( M 4 )

L = {a , a ,}
15

Consider the language i i i i

L = {a : a L( M i )} L = {a : a L( M i )}
L
consists of the 0s in the diagonal
16

a L ( M1 ) L( M 2 )
L( M 3 )

a 0 0 1 0
1 2

a 1 1

0 1 0 0

1 0 1 0

1 1

L( M 4 )

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 that accepts L

Mk

L( M k ) = L
19

a L ( M1 ) L( M 2 )
L( M 3 )

a 0 0 1 0

a 1 1

0 1 0 0

1 0 1 0

1 1

L( M 4 )

Question: M k = M1 ?
20

a L ( M1 ) L( M 2 )
L( M 3 )

a 0 0 1 0

a 1 1

0 1 0 0

1 0 1 0

1 1
1 1

L( M 4 )
Answer:

M k M1

a L( M k ) a L ( M1 )
21

a L ( M1 ) L( M 2 )
L( M 3 )

a 0 0 1 0

a 1 1

0 1 0 0

1 0 1 0

1 1

L( M 4 )

Question: M k = M 2 ?
22

a L ( M1 ) L( M 2 )
L( M 3 )

a 0 0 1 0

a 1 1

0 1 0 0

1 0 1 0

1 1
2 2

L( M 4 )
Answer:

Mk M2

a L( M k ) a L( M 2 )
23

a L ( M1 ) L( M 2 )
L( M 3 )

a 0 0 1 0

a 1 1

0 1 0 0

1 0 1 0

1 1

L( M 4 )

Question: M k = M 3 ?
24

a L ( M1 ) L( M 2 )
L( M 3 )

a 0 0 1 0

a 1 1

0 1 0 0

1 0 1 0

1 1
3 3

L( M 4 )
Answer:

Mk M3

a L( M k ) a L( M 3 )
25

Similarly:

Mk Mi

for any

Because either:

a L( M k ) a L( M i )
i

or

a L( M k ) a L( M i )
26

i i

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

(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 enumerable But not recursive

There is a Turing Machine that accepts the language

The machine doesnt halt on some input


31

We will prove that the language

L = {a : a L( M i )}
Is recursively enumerable but not recursive

32

a L ( M1 ) L( M 2 )
L( M 3 )

a 1

a 0 0 1 0
3 4

a 1 1

0 1 0 0

0 1 0

1 1

L( M 4 )

L = {a , a ,}
33

Theorem: 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 For any input string

w w=a Mi
i

Compute i , for which Find Turing machine

(using an enumeration procedure for Turing Machines)

Simulate If

M i on input a
End of Proof

M i accepts, then accept w


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: The language

L = {a : a L( M i )}

is not recursive

38

Proof: Assume for contradiction that

is recursive

Then

L is recursive:

Take the Turing Machine

M that accepts L

halts on any input: If If

M M

accepts then reject rejects then accept


39

Therefore:

L is recursive
But we know:

L is not recursively enumerable


thus, not recursive CONTRADICTION!!!!
40

Therefore,

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: If a language is recursive then there is an enumeration procedure for it


(weak result)

A language is recursively enumerable if and only if there is an enumeration procedure for it


44

(strong result)

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

45

Proof: Enumeration Machine

~ M

Enumerates all strings of input alphabet

Accepts

L
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 NO: ignore

w w

to output

End of Proof
48

Example:

L = {b, ab, bb, aaa ,....}


L(M )
Enumeration Output

~ M

a b aa ab ba bb aaa aab ......

b ab bb aaa ......

b ab bb aaa ......
49

Theorem: if language L is recursively enumerable then there is an enumeration procedure for it

50

Proof: Enumeration Machine

~ M

Enumerates all strings of input alphabet

Accepts L
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


YES: print NO:

w to output ignore w

Problem:

If w L machine M

may loop forever


53

BETTER APPROACH

~ Generates first string w M 1

executes first step on

w1

~ Generates second string w M 2

executes first step on second step on

w2 w1
54

~ Generates third string w M 3

executes first step on second step on third step on

w3

w2 w1

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

w1
1 Step in string 2 3

w2
1 2 3

w3
1 2 3

w4
1 2 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 for L

Compare

59

Turing machine that accepts For input string Repeat:

Using the enumerator, generate the next string of

L w

Compare generated string with 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