Recursively Enumerable and Recursive Languages

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
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