Presentation is loading. Please wait.

Presentation is loading. Please wait.

Properties of Regular Languages

Similar presentations


Presentation on theme: "Properties of Regular Languages"— Presentation transcript:

1 Properties of Regular Languages
Draw DFA for L={e} for a regular language, L={e, 01} for the r.l., L={e, 01, 0011} for the r.l., L={e, 01, 0011, } now, try for the r.l., L={0k1k | 0≤k ≤ infinity}

2 Pumping Lemma for Regular Languages
Pumping Lemma relates the size of string accepted with the number of states in a DFA What is the largest string accepted by a DFA with n states, presuming there is no loop? Now, if there is a loop, what type of strings are accepted via the loop(s)?

3 Pumping Lemma for Regular Languages
Lemma: (the pumping lemma) Let M be a DFA with |Q| = n states. If there exists a string x in L(M), such that |x|  n, then there exists a way to write it as x = uvw, where u,v, and w are all in Σ* and: 1 |uv|  n |v|  1 such that, the strings uviw are also in L(M), for all i  0

4 Pumping Lemma for Regular Languages
Proof: Let x = a1a2 … am where m  n, x is in L(M), and δ(q0, a1a2 … ap) = qjp a1 a2 a3 … am qj0 qj1 qj2 qj3… qjm m  n and qj0 is q0 Consider the first n symbols, and first n+1 states on the above path: a1 a2 a3 … an qj0 qj1 qj2 qj3… qjn Since |Q| = n, it follows from the pigeon-hole principle that js = jt for some 0  s<t  n, i.e., some state appears on this path twice (perhaps many states appear more than once, but at least one does).

5 … … … same loop q0 qj1 qjs qjt qjn q0 qjs = qjt qjn a1 a2 as as+1 at
… … … same loop q0 qj1 qjs qjt a1 a2 as as+1 at at+1 qjn an q0 qjs = qjt qjn a1…as at+1…an as+1…at

6 Since 0  s<t  n and uv = a1…at it follows that:
Let: u = a1…as v = as+1…at Since 0  s<t  n and uv = a1…at it follows that: 1  |v| and therefore 1  |uv| |uv|  n and therefore 1  |uv|  n In addition, let: w = at+1…am It follows that uviw = a1…as(as+1…at)iat+1…am is in L(M), for all i  0.  In other words, when processing the accepted string x, the loop was traversed once, but could have been traversed as many times as desired, and the corresponding strings would be accepted.

7 q0 0/1 q4 q2 q1 q3 1 Example: n = 5 x = 0001000 is in L(M)
q0 q1 q2 q3 q1 q2 q3 q4 first n+1 states u = 0 v = 001 w = uviw is in L(M), i.e., 0(001)i000 is in L(M), for all i  0 q0 0/1 q4 q2 q1 q3 1

8 Note that this does not mean that every string accepted by the DFA has this form:
001 is in L(M) but is not of the form 0(001)i000 Similarly, this does not mean that every long string accepted by the DFA has this form: is in L(M), is very long, but is not of the form 0(001)i000 Note, however, in this latter case could be similarly decomposed. q0 0/1 q4 q2 q1 q3 1

9 Note: It may be the case that no x in L(M) has |x|  n.
q0 0/1 q1 q2

10 Example: n = 4 x = bbbab is in L(M) b b b a b |x| = q0 q0 q0 q0 q1 q3 u = ε u = b u = bb v = b or v = b v = b w = bbab w = bab w = ab (b)ibbab is in L(M), for all i  0 b(b)ibab is in L(M), for all i  0 a b a q0 q1 b b a q2 q3 a/b

11 NonRegularity Example
Theorem: The language: L = {0k1k | k  0} (1) is not regular. Proof: (by contradiction) Suppose that L is regular. Then there exists a DFA M such that: L = L(M) (2) We will show that M accepts some strings not in L, contradicting (2). Suppose that M has n states, and consider a string x=0m1m, where m>>n. By (1), x is in L. By (2), x is also in L(M), note that the machine accepts a language not just a string

12 Since |x| = m >> n, it follows from the pumping lemma that:
x = uvw 1  |uv|  n 1  |v|, and uviw is in L(M), for all i  0 Since 1  |uv|  n and n<<m, it follows that 1  |uv| < m. Also, since x = 0m1m it follows that uv is a substring of 0m. In other words v=0j, for some j  1. Since uviw is in L(M), for all i  0, it follows that 0m+cj1m is in L(M), for all c  1. But by (1) and (2), 0m+cj1m is not in L(M), for any c  1, a contradiction.  Note that L basically corresponds to balanced parenthesis.

13 NonRegularity Example
Theorem: The language: L = {0k1k2k | k  0} (1) is not regular. Proof: (by contradiction) Suppose that L is regular. Then there exists a DFA M such that: L = L(M) (2) We will show that M accepts some strings not in L, contradicting (2). Suppose that M has n states, and consider a string x=0m1m2m, where m>>n. By (1), x is in L. By (2), x is also in L(M), note that the machine accepts a language not just a string

14 Since |x| = m >> n, it follows from the pumping lemma that:
x = uvw 1  |uv|  n 1  |v|, and uviw is in L(M), for all i  0 Since 1  |uv|  n and n<<m, it follows that 1  |uv|  m. Also, since x = 0m1m2m it follows that uv is a substring of 0m. In other words v=0j, for some j  1. Since uviw is in L(M), for all i  0, it follows that 0m+cj1m2m is in L(M), for all c  1. But by (1) and (2), 0m+cj1m2m is not in L(M), for any c  1, a contradiction.  Note that the above proof is almost identical to the previous proof.

15 NonRegularity Example
Theorem: The language: L = {0m1n2m+n | m,n  0} (1) is not regular. Proof: (by contradiction) Suppose that L is regular. Then there exists a DFA M such that: L = L(M) (2) We will show that M accepts some strings not in L, contradicting (2). Suppose that M has n states, and consider a string x=0m1n2m+n, where m>>n. By (1), x is in L. By (2), x is also in L(M).

16 Since |x| = m >> n, it follows from the pumping lemma that:
x = uvw 1  |uv|  n 1  |v|, and uviw is in L(M), for all i  0 Since 1  |uv|  n and n<<m, it follows that 1  |uv|  m. Also, since x = 0m1n2m+n it follows that uv is a substring of 0m. In other words v=0j, for some j  1. Since uviw is in L(M), for all i  0, it follows that 0m+cj1m2m+n is in L(M), for all c  1. In other words v can be “pumped” as many times as we like, and we still get a string in L(M). But by (1) and (2), 0m+cj1n2m+n is not in L(M), for any c  1, because the acceptable expression should be 0m+cj1n2m+cj+n, a contradiction.  Note that the above proof is almost identical to the previous proof.

17 Theorem: Let M = (Q, Σ, δ, q0, F) be a DFA
Theorem: Let M = (Q, Σ, δ, q0, F) be a DFA. Then L(M) is finite iff |x| < |Q| for all x in L(M). Proof: (if) Suppose that |x| < |Q| for all x in L(M). Since the number of states |Q| and the number of input symbols |Σ| are both fixed, it follows that there are at most a finite number of strings of length less than |Q|. It follows that L(M) is finite (exercise: give an upper bound on the number of such strings). (only if) By contradiction. Suppose that L(M) is finite, but that |x|  |Q| for some x in L(M). From the pumping lemma it follows that x=uvw, |v|  1 and uviw is in L(M) for all i  0. But then L(M) would be infinite, a contradiction. 

18 Theorem: Let M = (Q, Σ, δ, q0, F) be a DFA
Theorem: Let M = (Q, Σ, δ, q0, F) be a DFA. Then L(M) is infinite iff there exists an x in L(M) such that |x|  |Q|. Proof: (if) Suppose there exists an x in L(M) such that |x|  |Q|. From the pumping lemma it follows that x=uvw, |v|  1 and uviw is in L(M) for all i  0. Therefore L(M) is infinite. (only if) By contradiction. Suppose that L(M) is infinite, but that there is no x in L(M) such that |x|  |Q|. It follows that each x in L(M) has length less than |Q|. Since the number of states |Q| and the number of input symbols |Σ| are both fixed, it follows that there are at most a finite number of strings of length less than |Q|. It follows that L(M) is finite. A contradiction.  Note that the above also follows directly from the previous theorem.

19 Theorem: Let M = (Q, Σ, δ, q0, F) be a DFA
Theorem: Let M = (Q, Σ, δ, q0, F) be a DFA. Then L(M) is non-empty iff there exists an x in L(M) such that |x| < |Q|. Proof: (if) Suppose there exists a string x in L(M) such that |x| < |Q|. Then clearly L(M) is non-empty. (only if) By contradiction. Suppose that L(M) is non-empty, but that there exists no string x in L(M) such that |x| < |Q|. It follows that |y|  n, where n = |Q|, for all y in L(M). Let z be a string of shortest length in L(M). Then |z|  n and, by the pumping lemma z=uvw, |v|  1 and uviw is in L(M) for all i  0. But then uv0w = uw is in L(M) and: |uw| = |z| - |v|  |z| - 1 < |z| Since uw is in L(M), it follows that z is not a string of shortest length in L(M), a contradiction.

20 Corollary: Let M = (Q, Σ, δ, q0, F) be a DFA
Corollary: Let M = (Q, Σ, δ, q0, F) be a DFA. Then there is an algorithm to determine if L(M) is empty. Proof: From the theorem it follows that if L(M) is non-empty then there exists a string x where |x| < n and n = |Q| such that M accepts x. We can try running M on each string of length < n to see if any are accepted. If one is accepted then L(M) is non-empty, otherwise L(M) is empty. Since the number of states |Q| and the number of input symbols |Σ| are both fixed, it follows that there are at most a finite number of strings (of length less than |Q|) that need to be tested. Note that Dijkstra’s algorithm works here too…

21 Theorem: Let M = (Q, Σ, δ, q0, F) be a DFA and let n = |Q|
Theorem: Let M = (Q, Σ, δ, q0, F) be a DFA and let n = |Q|. Then L(M) is infinite iff there exists an x in L(M) such that n  |x| < 2n. Proof: (left as an exercise; similar to the previous theorem). (Contradiction) Suppose there is no string of length between n and 2n in the language accepted by DFA M with n states. Suppose a string z is the shortest string accepted by the machine M, such that |z|  2n. Since |z| > n, by pumping lemma z = uvw, and 1  |v|  n, because |uv|  n. Then z’=uw must be accepted by the machine M. So, |z’| = |z| - |v| cannot be < n. As per assumption, |z’|  2n is not possible as z is the shortest such string and |z|>|z’|. And we presumed that there is no string of size between n and 2n, so, n  |z’|  2n cannot be true either. Contradiction. Corollary: Let M = (Q, Σ, δ, q0, F) be a DFA. Then there is an algorithm to determine if L(M) is infinite. Proof: (left as an exercise).

22 Closure Properties of Regular Languages
Consider various operations on languages: = {x | x is in Σ* and x is not in L} = {x | x is in L1 or L2} = {x | x is in L1 and L2} = {x | x is in L1 but not in L2} L1L2 = {xy | x is in L1 and y is in L2} L* = Li = L0 U L1 U L2 U… L+ = Li = L1 U L2 U…

23 Theorem: Let M = (Q, Σ, δ, q0, F) be a DFA
Theorem: Let M = (Q, Σ, δ, q0, F) be a DFA. Then M’ = (Q, Σ, δ, q0, Q-F) is a DFA where L(M’) = Σ* - L(M). Proof: (left as an exercise). Corollary: The regular languages are closed under complementation, i.e., if L is a regular language then so is . Does the above construction work for NFAs?

24 Theorem: The regular languages are closed with respect to union, concatenation and Kleene closure.
Proof: Let L1 and L2 be regular languages. By definition there exist regular expressions r1 and r2 such that L(r1) = L1 and L(r2) = L2. But then r1 + r2 is a regular expression representing Similarly for concatenation and Kleene closure.

25 Lemma: Let L1 and L2 be subsets of Σ*. Then .
Theorem: Let L1 and L2 be regular languages. Then is a regular language. Proof: Let L1 and L2 be regular languages. Then: is regular But by the lemma: 

26 A direct construction of a DFA M such that :
Let: M1 = (Q1, Σ, δ1,p0,F1), where Q1 = {p0, p1,…} M2 = (Q2, Σ, δ2,q0,F2), where Q2 = {q0, q1,…} where L(M1) = L1 and L(M2) = L2. Construct M where: Q = Q1 x Q2 Note that M has a state for each = {[p0, q0], [p0, q1], [p0, q2],…} pair of states in M1 and M2 Σ = as with M1 and M2 F = F1 x F2 start state = [p0, q0] δ([pi, qj], a) = [δ1(pi, a), δ2(qj, a)] for all [pi, qj] in Q and a in Σ

27 p0 p1 1 1 q0 q1 1 q2 0/1 Example: The construct gives: Q = Q1 x Q2
= {[p0, q0], [p0, q1], [p0, q2], [p1, q0], [p1, q1], [p1, q2]} Σ = {0, 1} F = {[p1, q2]} start state = [p0, q0] δ – Some examples: δ([p0, q2], 0) = [δ1(p0, 0), δ2(q2, 0)] = [p1, q2] δ([p1, q2], 1) = [δ1(p1, 1), δ2(q2, 1)] = [p1, q2] p0 p1 1 1 q0 q1 1 q2 0/1

28 Question: What if Σ1 does not equal Σ2?
Final Result: Question: What if Σ1 does not equal Σ2? Exercise: Prove that is a regular language. 1 1 1 p0, q0 p0, q1 p0, q2 p1, q0 p1, q1 p1, q2 1 1 1


Download ppt "Properties of Regular Languages"

Similar presentations


Ads by Google