Question text is in black, answers in blue.
That is a correct outline of the argument, but here I want a rigorous induction proof, using the inductive definitions of strings and of paths. You will have a base case showing that λ is in the language of the new λ-NFA if and only if it is in at least one of the languages of the original λ-NFA's. Then you will have an inductive case showing this implication for any string wa, assuming that it is true for the string w.
Question 9.2, posted 26 April: Two questions on the writing exercise from Excursion 14.9 -- first, I got [λ + a + ba + aba]b* for my regular expression, which is not equivalent to yours. Is there a typo in the book? Second, should I use state elimination to get the regular expression from the DFA, even though that comes in the section after this Excursion?
You are right on both counts. The regular expression should have "ba" instead of "ab". And you may use state elimination or any other valid method to get the regular expression. But if you don't use state elimination, you should give some justification that your regular expression has the same language as the DFA.
Question 9.3, posted 27 April: I read your answer to 9.1 above and I am still not clear on the induction. Can you explain more?
I'll try -- there is a subtlety here that I
really
should explain. We have a λ-NFA N that we built from
M1
and M2 by connecting the two machines in parallel. We
want to show that L(N) = L(M1) &union; L(M2).
This means that for any string w, w is in L(N) if and only if w is
in
either L(M1) or L(M2). To prove this
statement by
induction on w, we would first prove it for w = λ, then
assume it for w = v, and using that assumption prove it for w = va,
where v is an arbitrary string and a is an arbitrary letter.
But there's a problem here -- the path through N that proves va to
be in L(N), if it exists, has nothing to do with any path that proves
v to be in L(N). We have the wrong inductive hypothesis.
The reason that there is a path from ι to f labeled by va, or in
the book's terminology, the reason why Δ*(&iota, va,
f)
is true, is that there is a path labeled by v from ι to some
state s, and then a path labeled by a from s to f. Our inductive
hypothesis needs to say something about paths to s, not just paths to
f.
So what you want to prove by induction on w is the following
statement P(w):
"For any state s in N, there is a path labeled by w from ι to s in N if and
only if either there is a path labeled by w from ι to s in
M1, or there is a path labeled by w from ι to s
in M2." Now your inductive hypothesis P(v) will be useful
in proving P(va).
Question 9.4, posted 28 April 2011: Problem 14.10.2 asks us to use the solution to Exercise 14.10.3, but I believe that the solution there has a mistake. Shouldn't the final regular expression be (b + ab*ab*a)*?
Indeed it should. The derivation there is correct up until the typo at the very end.
Last modified 28 April 2011