Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
It is easy to show that D2 is regular (since this only depends on the last bit of w). Show that D3
is regular. (Hint: Design a machine for D3 that has states q0 , q1 and q3 so that if the machine is
fed a string s that codes a number congruent to i mod 3 then it ends in the state qi .)
0 1
1 0
q0 q1 q2
1 0
1
3. Sipser, exercise 1.14.
Solution to Problem 3
(a) Consider a DFA M = (Q, Σ, δ, q0 , F ) that recognizes language B. Swapping the accept and
nonaccept states in M yields a new DFA M = (Q, Σ, δ, q0 , Q − F ). It is clear that if we feed an
input string w to both M and M , then both machines end at some state q ∈ Q. By definition of
M , w ∈ B ⇐⇒ q ∈ F . But then w 6∈ B ⇐⇒ q ∈ Q − F . This shows the machine M recognizes
the complement of B.
Now let A be any regular language, then it is recognized by some DFA M . From above, there exists
a DFA M that recognizes the complement of A, which implies the complement of A is also regular.
So the class of regular languages is closed under complement.
a,b a,b
a a
Figure 2: The NFA on the left recognizes the language C = {w | w ends with a}, but
the NFA on the right does not recognize the complement of C.
4. Sipser 1.38.
Solution to Problem 4
To prove that all-NFAs recognize the class of regular languages, we need to prove two things: (i.)
every regular language is recognized by some all-NFA, and (ii.) every all-NFA recognizes a regular
language.
To prove (i.), observe that every DFA can be viewed as an all-NFA. Let L be any regular language,
then there is a DFA M = (Q, Σ, δ, q0 , F ) that recognizes L. Note that for each input string x, there
is exactly one possible state q ∈ Q that M could be in after reading x. Thus, if M is viewed as
an all-NFA, then it accepts x if and only if q ∈ F , which happens if and only if x ∈ L. Therefore,
when M is viewed as an all-NFA, it also recognizes the language L.
To prove (ii.), let N = (Q, Σ, δ, q0 , F ) be an all-NFA and let A be the language recoginized by
N . We’ll show A is regular by constructing a DFA M = (Q0 , Σ, δ 0 , q00 , F 0 ) that recognizes A. The
construction of M here is similar to that used in the proof of the equivalence of ordinary NFAs and
DFAs. The only difference is at the definition the final states F 0 . Precisely,
2
1. Q0 = P(Q), where P(Q) is the set of subset of Q.
2. For R ∈ Q0 and a ∈ Σ, [
δ 0 (R, a) = E(δ(r, a))
r∈R
Recall that for any subset S ⊂ Q, E(S) is the set of all states q ∈ Q that can be reached from
S by traveling along ε arrows, including the members of S themselves.
4. F 0 = {R ∈ Q0 | R ⊂ F }.
Now consider an input string x ∈ Σ∗ . Let R be the set of states that the all-NFA N could be in
after reading x. Then when x is fed to the DFA M defined above, M will end at state R. By the
definition of all-NFAs, we have x ∈ A ⇐⇒ R ⊂ F . By the definition of M , M accepts x if and
only if R ∈ F 0 , which is equivalent to R ⊂ F . Hence, M recognizes A.
5. Sipser 1.60.
Solution to Problem 5
The diagram for an NFA with k + 1 states that recognizes Ck = Σ∗ aΣk−1 is given in Figure 3,
where Σ = {a, b}.
a, b
q0 a q1 a, b q2 a, b a, b qk
The formal description of the NFA M in Figure 3 is as follows: M = (Q, Σ, δ, q0 , {qk }), where
Q = {q0 , . . . , qk } and
{q0 , q1 } if i = 0
δ(qi , a) = {qi+1 } if 0 < i < k
∅ if i = k
{q0 } if i = 0
δ(qi , b) = {qi+1 } if 0 < i < k
∅ if i = k
δ(qi , ε) = ∅ for all i