



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
Decidable problems for regular languages, regular expressions, and context-free grammars. It includes proofs of theorems stating that membership/acceptance problems for dfas, nfas, and regular expressions are decidable. The document also covers decidable problems for context-free languages and the undecidability of the equivalence problem for context-free grammars.
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 ).