



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Decidability and undecidability of various problems related to automata, grammars, and languages in the context of the csc 473 course on theory of computation. Decidability of membership problems for dfas, nfas, and regular expressions, as well as decidability of emptiness and equivalence problems for dfas. The document also introduces the concept of the halting problem and its undecidability.
Typology: Study notes
1 / 6
This page cannot be seen from the preview
Don't miss anything!




C SC 473 Automata, Grammars & Languages
Lecture 06
Decidability and Undecidability
C SC 473 Automata, Grammars & Languages 2
C SC 473 Automata, Grammars & Languages 3
A NFA = { N w , | N is an NFA and w ∈ L N ( ) }
C SC 473 Automata, Grammars & Languages 4
A (^) REX= { R w , | R is a regular expression and w ∈ L R ( ) }
C SC 473 Automata, Grammars & Languages 5
E (^) DFA= { A | A is a DFA and L A ( ) = ∅}
{ | ( )( ) δ( , ) }
S M q a p M p a q
S ←{ q 0 }
C SC 473 Automata, Grammars & Languages 6
Because of closure properties, there is an algorithm to construct a DFA C from A , B that accepts Use Theorem 4.4 with __ to test whether If that algorithm accepts, then accept; otherwise, reject.
EQ (^) DFA= { A B , | A B , are DFA and L A ( ) = ( L B )}
( ) ( ) ( ) ( ) where ( ) ( ) ( ( ) ( )) ( ( ) ( ))
C SC 473 Automata, Grammars & Languages 10
A (^) TM= { M w , | M is a TM and w ∈ L M ( )}
q (^) lo o p q re je c t
C SC 473 Automata, Grammars & Languages 11
A (^) TM= { M w , | M is a TM and w ∈ L M ( )}
yes
no
M w , ∈ L R ( ) ⇔ M w , ∈ L U ( ) ⇔ w ∈ L M ( ) ⇔ M w , ∈ A
TM
yes M w , no
C SC 473 Automata, Grammars & Languages 12
Construct a TM D that calls H as a subroutine. On input 〈 M 〉, D runs H on 〈 M , 〈 M 〉〉. That is, D determines if M accepts or rejects its own description as input. If M accepts 〈 M 〉, then D rejects; If M rejects 〈 M 〉, then D accepts. Here is the picture of how D behaves:
A (^) TM= { M w , | M is a TM and w ∈ L M ( )}
{ if M accepts w }
accept M w , reject
{ if M does not accept w }
C SC 473 Automata, Grammars & Languages 13
{ if M accepts 〈 M 〉 } accept M reject { if M does not accept 〈 M 〉 }
reject
{ if M does not accept 〈 M 〉 }
{ if M accepts 〈 M 〉 } M ∈ L D ( ) ⇔ M ∉ L M ( )
C SC 473 Automata, Grammars & Languages 14
1 2 3 1 1 1 2 1 3 1 2 1 2 2 2 3 2 3 1 3 2 3 3 3
D computes the opposite of the diagonal entries
TMs →
Encodings
(^) →
C SC 473 Automata, Grammars & Languages 15
M
w ∈ L ( M )⇔ w ∉ L ( M ), L ( M )= L ( M ).