CS4311: Introduction to Computation Theory hw4

CS 4311 Introduction to Computation Theory
Homework 4: Chapter 1

Due: Wednesday, 10/4/06, beginning of class (Assigned: Wednesday, 9/27/06)

You are required to turn in answers to all the questions. However, only a random subset of the questions will be graded. While discussion with others is permitted and encouraged, the final work should be done individually. You are not allowed to work in groups. The answers, comments, and programs (if any) must be the original work of the author. You are allowed to build on material supplied in the class. If you use any other source than the current class notes and the textbook, specify it clearly.

Consider the following machines for questions 1 through 3:

1. Use the construction given in the proof of Theorem 1.45 to give the state diagram of an NFA recognizing the union of the two languages recognized by M1 and M2: (L(M1) ∪ L(M2)).

2. Use the construction given in the proof of Theorem 1.47 to give the state diagram of an NFA recognizing the concatenation of the two languages recognized by M1 and M2: (L(M1) • L(M2)).

3. Use the construction given in the proof of Theorem 1.49 to give the state diagram of an NFA recognizing the star of the language recognized by DFA M1: (L(M1)*).

4. (Exercise 1.19b) Use the procedure described in Lemma 1.55 to convert the following regular expression to a nondeterministic finite automaton.

5. (Exercise 1.21b) Use the procedure described in Lemma 1.60 to convert the following finite automaton to a regular expression. Remove states in the following order: 1, 2, 3.

6. (Exercise 1.30) Describe the error in the following "proof" that 0*1* is not a regular language. (An error must exist because 0*1* is regular.) The proof is by contradiction. Assume that 0*1* is regular. Let p be the pumping length for 0*1* given by the pumping lemma. Choose s to be the string 0p1p. You know that s is a member of 0*1*, but Example 1.73 shows that s cannot be pumped. Thus you have a contradiction. So 0*1* is not regular.

7. If we try to apply the pumping lemma to a regular language, we cannot complete the proof. Explain what would go wrong if we tried to apply the pumping lemma to the language L = { } (L is the empty set).

8. Use the pumping lemma to show that the following languages are not regular:

9. For each of the following languages, determine if the language is regular and prove your answer: