0% found this document useful (0 votes)
85 views8 pages

Homework

This document contains solutions to three homework problems about regular languages and finite automata. It provides detailed step-by-step working to prove that three example languages are not regular by using the pumping lemma.

Uploaded by

benachour ismail
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
85 views8 pages

Homework

This document contains solutions to three homework problems about regular languages and finite automata. It provides detailed step-by-step working to prove that three example languages are not regular by using the pumping lemma.

Uploaded by

benachour ismail
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

CS 341: Foundations of Computer Science II

Prof. Marvin Nakayama

Homework 4

1. Use the procedure described in Lemma 1.55 to convert the regular expression (((00)∗ (11))∪
01)∗ into an NFA.

Answer:

0
0

1
1

0 ε 0
00

1 ε 1
11

0 ε 1
01

ε 0 ε 0
(00)∗

ε
1 ε 1
(00)∗(11) ε ε
0 ε 0
ε

1
1 ε 1
(00)∗(11) ∪ 01 ε ε
0 ε 0
ε ε

ε
ε 0 ε 1

1 ε 1
((00)∗(11) ∪ 01)∗ ε ε
0 ε 0
ε ε
ε
ε
ε 0 ε 1

2. Use the procedure described in Lemma 1.60 to convert the following DFA M to a
regular expression.
a
a, b
1 2

a b b

Answer: First convert DFA M into an equivalent GNFA G.

2
a
s ε a∪b
1 2

ε b
a b

t ε 3

Next, we eliminate the states of G (except for s and t) one at a time. The order
in which the states are eliminated does not matter. However, eliminating states in a
different order from what is done below may result in a different (but also correct)
regular expression. We first eliminate state 3. To do this, we need to account for the
paths

• 2 → 3 → 1, which will create an arc from 2 to 1 labelled with ba;


• 2 → 3 → 2, which will create an arc from 2 to 2 labelled with bb; and
• 2 → 3 → t, which will create an arc from 2 to t labelled with bε = b.

We combine the previous arc from 2 to 2 labelled a with the new one labelled bb to
get the new label a ∪ bb.

a∪b a ∪ bb
s ε
1 2
ba
ε
b

We next eliminate state 1. To do this, we need to account for the following paths:

• s → 1 → 2, which will create an arc from s to 2 labelled with ε(a ∪ b) = a ∪ b.


• s → 1 → t, which will create an arc from s to t labelled with εε = ε.
• 2 → 1 → 2, which will create an arc from 2 to 2 labelled with ba(a ∪ b). We
combine this with the existing 2 to 2 arc to get the new label a ∪ bb ∪ ba(a ∪ b).
• 2 → 1 → t, which will create an arc from 2 to t labelled with baε = ba. We
combine this arc with the existing arc from 2 to t to get the new label b ∪ ba.

3
a∪b a ∪ bb ∪ ba(a ∪ b)
s 2

ε b ∪ ba

Finally, we eliminate state 2 by adding an arc from s to t labelled (a ∪ b)(a ∪ bb ∪


ba(a ∪ b))∗ (b ∪ ba). We then combine this with the existing s to t arc to get the new
label ε ∪ (a ∪ b)(a ∪ bb ∪ ba(a ∪ b))∗ (b ∪ ba).

ε ∪ (a ∪ b)(a ∪ bb ∪ ba(a ∪ b))∗ (b ∪ ba)

So a regular expression for the language L(M ) recognized by the DFA M is

ε ∪ (a ∪ b)(a ∪ bb ∪ ba(a ∪ b))∗ (b ∪ ba).

Writing this as

∪ (a ∪ b) (a ∪ bb ∪ ba(a ∪ b))∗ ∪ ba)


ε
|{z} | {z } | {z } (b
| {z }
stay in 1 1 to 2 (2 to 2)∗ end in 3 or 1

should make it clear how the regular expression accounts for every path that starts in
1 and ends in either 3 or 1, which are the accepting states of the given DFA.
a
a, b
1 2

a b b

3. Prove that the following languages are not regular.

(a) A1 = { www | w ∈ {a, b}∗ }


Answer: Suppose that A1 is a regular language. Let p be the “pumping length”
of the Pumping Lemma. Consider the string s = ap bap bap b. Note that s ∈ A1

4
since s = (ap b)3 , and |s| = 3(p + 1) ≥ p, so the Pumping Lemma will hold.
Thus, we can split the string s into 3 parts s = xyz satisfying the conditions
i. xy i z ∈ A1 for each i ≥ 0,
ii. |y| > 0,
iii. |xy| ≤ p.
Since the first p symbols of s are all a’s, the third condition implies that x and y
consist only of a’s. So z will be the rest of the first set of a’s, followed by bap bap b.
The second condition states that |y| > 0, so y has at least one a. More precisely,
we can then say that
x = aj for some j ≥ 0,
y = ak for some k ≥ 1,
z = am bap bap b for some m ≥ 0.
Since ap bap bap b = s = xyz = aj ak am bap bap b = aj+k+mbap bap b, we must have
that j + k + m = p. The first condition implies that xy 2 z ∈ A1 , but
xy 2 z = aj ak ak am bap bap b
= ap+k bap bap b
since j + k + m = p. Hence, xy 2 z 6∈ A1 because k ≥ 1, and we get a
contradiction. Therefore, A1 is a nonregular language.
(b) A2 = { w ∈ {a, b}∗ | w = w R }.
Answer: Suppose that A2 is a regular language. Let p be the “pumping length”
of the Pumping Lemma. Consider the string s = ap bap . Note that s ∈ A2 since
s = sR , and |s| = 2p + 1 ≥ p, so the Pumping Lemma will hold. Thus, we can
split the string s into 3 parts s = xyz satisfying the conditions
i. xy i z ∈ A2 for each i ≥ 0,
ii. |y| > 0,
iii. |xy| ≤ p.
Since the first p symbols of s are all a’s, the third condition implies that x and
y consist only of a’s. So z will be the rest of the first set of a’s, followed by bap .
The second condition states that |y| > 0, so y has at least one a. More precisely,
we can then say that
x = aj for some j ≥ 0,
y = ak for some k ≥ 1,
z = am bap for some m ≥ 0.
Since ap bap = s = xyz = aj ak am bap = aj+k+mbap , we must have that j +
k + m = p. The first condition implies that xy 2 z ∈ A2 , but
xy 2 z = aj ak ak am bap
= ap+k bap

5
since j + k + m = p. Hence, xy 2 z 6∈ A2 because (ap+k bap )R = ap bap+k 6=
ap+k bap since k ≥ 1, and we get a contradiction. Therefore, A2 is a nonregular
language.

(c) A3 = { a2n b3n an | n ≥ 0 }.


Answer: Suppose that A3 is a regular language. Let p be the “pumping length”
of the Pumping Lemma. Consider the string s = a2p b3p ap . Note that s ∈ A3 ,
and |s| = 6p ≥ p, so the Pumping Lemma will hold. Thus, we can split the
string s into 3 parts s = xyz satisfying the conditions
i. xy i z ∈ A3 for each i ≥ 0,
ii. |y| > 0,
iii. |xy| ≤ p.
Since the first p symbols of s are all a’s, the third condition implies that x and y
consist only of a’s. So z will be the rest of the first set of a’s, followed by b3p ap .
The second condition states that |y| > 0, so y has at least one a. More precisely,
we can then say that

x = aj for some j ≥ 0,
y = ak for some k ≥ 1,
z = am+p b3p ap for some m ≥ 0.

Since a2p b3p ap = s = xyz = aj ak am+p b3p ap = aj+k+m+pb3p ap , we must have


that j + k + m + p = 2p, or equivalently, j + k + m = p, so j + k ≤ p. The
first condition implies that xy 2 z ∈ A3 , but

xy 2 z = aj ak ak am+p b3p ap
= a2p+k b3p ap

since j + k + m = p. Hence, xy 2 z 6∈ A3 because k ≥ 1, and we get a


contradiction. Therefore, A3 is a nonregular language.

(d) A4 = { w ∈ {a, b}∗ | w has more a’s than b’s }.


Answer: Suppose that A4 is a regular language. Let p be the “pumping length”
of the Pumping Lemma. Consider the string s = bp ap+1 . Note that s ∈ A4 , and
|s| = 2p + 1 ≥ p, so the Pumping Lemma will hold. Thus, we can split the
string s into 3 parts s = xyz satisfying the conditions
i. xy i z ∈ A4 for each i ≥ 0,
ii. |y| > 0,
iii. |xy| ≤ p.
Since the first p symbols of s are all b’s, the third condition implies that x and y
consist only of b’s. So z will be the rest of the b’s, followed by ap+1 . The second

6
condition states that |y| > 0, so y has at least one b. More precisely, we can then
say that

x = bj for some j ≥ 0,
y = bk for some k ≥ 1,
z = bm ap+1 for some m ≥ 0.

Since bp ap+1 = s = xyz = bj bk bm ap+1 = bj+k+map+1 , we must have that


j + k + m = p. The first condition implies that xy 2 z ∈ A4 , but

xy 2 z = bj bk bk bm ap+1
= bp+k ap+1

since j + k + m = p. Hence, xy 2 z 6∈ A4 because it doesn’t have more a’s


than b’s since k ≥ 1, and we get a contradiction. Therefore, A4 is a nonregular
language.

4. Suppose that language A is recognized by an NFA N , and language B is the collection


of strings not accepted by some DFA M . Prove that A ◦ B is a regular language.

Answer: Since A is recognized by an NFA, we know that A is regular since a language


is regular if and only if it is recognized by an NFA (Corollary 1.20). Note that the
DFA M recognizes the language B, the complement of B. Since B is recognized by a
DFA, by definition, B is regular. We know from a problem on the previous homework
that B being regular implies that its complement B is regular. (B is the complement
of the complement of B.) But B = B, so B is regular. Since A and B are regular,
their concatenation A ◦ B is regular by Theorem 1.23.

5. (a) Prove that if we add a finite set of strings to a regular language, the result is a
regular language.
Answer: Let A be a regular language, and let B be a finite set of strings.
We know from class (see page 1-95 of Lecture Notes for Chapter 1) that finite
languages are regular, so B is regular. Thus, A ∪ B is regular since the class of
regular languages is closed under union (Theorem 1.22).

(b) Prove that if we remove a finite set of strings from a regular language, the result
is a regular language.
Answer: Let A be a regular language, and let B be a finite set of strings with B ⊆
A. Let C be the language resulting from removing B from A, i.e., C = A − B.
As we argued in the previous part, B is regular. Note that C = A − B = A ∩ B.
Since B is regular, B is regular since the class of regular languages is closed
under complement. We proved in an earlier homework that the class of regular
languages is closed under intersection, so A ∩ B is regular since A and B are
regular. Therefore, A − B is regular.

7
(c) Prove that if we add a finite set of strings to a nonregular language, the result is
a nonregular language.
Answer: Let A be a nonregular language, and let B be a finite set of strings.
We want to add B to A, so we may assume that none of the strings in B are
in A, i.e., A ∩ B = ∅. Let C be the language obtained by adding B to A, i.e.,
C = A ∪ B. Suppose for a contradiction that C is regular, and we now show
this is impossible. Since A ∩ B = ∅, we have that A = C − B. Since C and
B are regular (the latter because B is finite), the previous part of this problem
implies that C − B = C ∩ B must be regular, but we assumed that A = C − B
is nonregular, so we get a contradiction.

(d) Prove that if we remove a finite set of strings from a nonregular language, the
result is a nonregular language.
Answer: Let A be a nonregular language, and let B be a finite set of strings,
where B ⊆ A. Let C be the language obtained by removing B from A, i.e.,
C = A − B. Suppose that C is regular, and we now show this is impossible.
Since we removed B from A to get C, we must have that C ∩ B = ∅, so
A = C ∪ B. Now C is regular by assumption and B is regular since it’s finite,
so C ∪ B must be regular by Theorem 1.25. But we assumed that A = C ∪ B
is nonregular, so we get a contradiction.

6. Consider the following statement: “If A is a nonregular language and B is a language


such that B ⊆ A, then B must be nonregular.” If the statement is true, give a proof.
If it is not true, give a counterexample showing that the statement doesn’t always hold.

Answer: The statement is not always true. For example, we know that the language
A = { 0j 1j | j ≥ 0} is nonregular. Define the language B = {01}, and note that
B ⊆ A. However, B is finite, so we know that it is regular.

You might also like