# Questions and Answers on Homework Assignment #9

#### HW#8 due on paper to me or to the CMPSCI main office by 4:00 p.m., Tuesday 3 May 2011

Question text is in black, answers in blue.

• Question 9.1, posted 25 April: I'm not sure what you are asking in Problem 14.8.1 -- doesn't the argument in the last bullet on page 14-44 (which continues on page 14-46) establish that the union construction is correct?

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.