# 1 module 36 non context-free languages –examples and intuition pumping lemma for cfl’s...

Post on 21-Dec-2015

215 views

Embed Size (px)

TRANSCRIPT

- Slide 1
- 1 Module 36 Non context-free languages Examples and Intuition Pumping lemma for CFLs Pumping condition No proof of pumping lemma Applying pumping lemma to prove that some languages are not CFLs
- Slide 2
- 2 Examples and Intuition
- Slide 3
- 3 Examples * What are some examples of nonregular languages? Can we build on any of these languages to create a non context-free language?
- Slide 4
- 4 Intuition * Try and prove that these languages are CFLs and identify the stumbling blocks Why cant we construct a CFG to generate this language? Why cant we construct a PDA to accept this language? Compare to similar CFL languages to try and identify differences.
- Slide 5
- 5 Pumping Lemma for CFLs
- Slide 6
- 6 Comparison to regular language pumping lemma/condition
- Slide 7
- 7 Whats different about CFLs than regular languages? * In regular languages, a single substring pumps Consider the language of even length strings over {a,b} We can identify a single substring which can be pumped In CFLs, multiple substrings can pump Consider the language {a n b n | n > 0} No single substring can be pumped and allow us to stay in the language However, there do exist pairs of substrings which can be pumped resulting in strings which stay in the language This results in a modified pumping condition
- Slide 8
- 8 Modified Pumping Condition A language L satisfies the regular language pumping condition if: there exists an integer n > 0 such that for all strings x in L of length at least n there exist strings u, v, w such that x = uvw and |uv| = 1 and For all k >= 0, uv k w is in L A language L satisfies the CFL pumping condition if: there exists an integer n > 0 such that for all strings x in L of length at least n there exist strings u, v, w, y, z such that x = uvw yz and | v w y | = 1 and For all k >= 0, u v k w y k z is in L
- Slide 9
- 9 Pumping Lemma All CFLs satisfy the CFL pumping condition All languages over {a,b} CFLs Pumping Languages
- Slide 10
- 10 Implications We can use the pumping lemma to prove a language L is not a CFL Show L does not satisfy the CFL pumping condition We cannot use the pumping lemma to prove a language is context-free Showing L satisfies the pumping condition does not guarantee that L is context-free CFL Pumping
- Slide 11
- 11 Pumping Lemma What does it mean?
- Slide 12
- 12 Pumping Condition A language L satisfies the CFL pumping condition if: there exists an integer n > 0 such that for all strings x in L of length at least n there exist strings u, v, w, y, z such that x = uvwyz and |vwy| = 1 and For all k >= 0, u v k w y k z is in L
- Slide 13
- 13 v and y can be pumped Let x = abcdefg be in L Then there exist 2 substrings v and y in x such that v and y can be repeated (pumped) in place any number of times and the resulting string is still in L uv k wy k z is in L for all k >= 0 For example v = cd and y = f uv 0 wy 0 z = uwz = abeg is in L uv 1 wy 1 z = uvwyz = abcdefg is in L uv 2 wy 2 z = uvvwyyz = abcdcdeffg is in L uv 3 wy 3 z = uvvvwyyyz = abcdcdcdefffg is in L 1) x in L 2) x = uvwyz 3) For all k >= 0, uv k wy k z is in L
- Slide 14
- 14 What the other parts mean A language L satisfies the CFL pumping condition if: there exists an integer n > 0 such that Since we skip this proof, we will not see what n really means for all strings x in L of length at least n x must be in L and have sufficient length there exist strings u, v, w, y, z such that x = uvwyz and |vwy| = 1 and v and y cannot both be One of them might be, but not both For all k >= 0, uv k wy k z is in L
- Slide 15
- 15 Example * Let L be the set of palindromes over {a,b} Let x = aabaa Let n = 3 What are the possibilities for v and y ignoring the pumping constraint? Which ones satisfy the pumping lemma?
- Slide 16
- 16 Pumping Lemma Applying it to prove a specific language L is not context-free
- Slide 17
- 17 How we use the Pumping Lemma We choose a specific language L For example, {a j b j c j | j > 0} We show that L does not satisfy the pumping condition We conclude that L is not context-free
- Slide 18
- 18 Showing L does not pump A language L satisfies the CFL pumping condition if: there exists an integer n > 0 such that for all strings x in L of length at least n there exist strings u, v, w, y, z such that x = uvw yz and | v w y | = 1 and For all k >= 0, u v k w y k z is in L A language L does not satisfy the CFL pumping condition if: for all integers n of sufficient size there exists a string x in L of length at least n such that for all strings u, v, w, y, z such that x = uvwyz and |vwy| = 1 There exists a k >= 0 such that uv k wy k z is not in L
- Slide 19
- 19 Example Proof A language L does not satisfy the CFL pumping condition if: for all integers n of sufficient size there exists a string x in L of length at least n such that for all strings u, v, w, y, z such that x = uvwyz and |vwy| = 1 There exists a k >= 0 such that uv k wy k z is not in L Proof that L = {a i b i c i | i>0} does not satisfy the CFL pumping condition Let n be the integer from the pumping lemma Choose x = a n b n c n Consider all strings u, v, w, y, z s.t. x = uvwyz and |vwy| = 1 Argue that uv k wy k z is not in L for some k >= 0 Argument must apply to all possible u,v,w,y,z Continued on next slide
- Slide 20
- 20 Example Proof Continued * Proof that L = {a i b i c i | i>0} does not satisfy the CFL pumping condition Let n be the integer from the pumping lemma Choose x = a n b n c n Consider all strings u, v, w, y, z s.t. x = uvwyz and |vwy| = 1 Argue that uv k wy k z is not in L for some k >= 0 Argument must apply to all possible u,v,w,y,z Continued next column Identify possible cases for vwy What is impossible for vwy? Case 1 vwy contains no as Case 2 vwy contains no cs Must argue uv k wy k z is not in L for both cases described above Can use different values of k Continued on next slide
- Slide 21
- 21 Example Proof Continued Identify possible cases for vwy What is impossible for vwy? Case 1 vwy contains no as Case 2 vwy contains no cs Must argue uv k wy k z is not in L for both cases described above Can use different values of k Continued next column Case 1: vwy contains no as vy contains at least 1 b or c follows from vwy contains no as and |vy| >= 1 uwz is not in L uwz has n as follows from fact vwy contains no as and x originally had n as uwz has fewer than n bs or fewer than n cs follows from vy contains at least 1 b or c and x originally only had n bs and n cs Continued next slide
- Slide 22
- 22 Example Proof Continued * Case 1: vwy contains no as vy contains at least 1 b or c follows from vwy contains no as and |vy| >= 1 uwz is not in L uwz has n as follows from fact vwy contains no as and x originally had n as uwz has fewer than n bs or fewer than n cs follows from vy contains at least 1 b or c and x originally only had n bs and n cs Continued next column Case 2: vwy contains no cs vy contains at least uv 2 wy 2 z is not in L uv 2 wy 2 z has n cs follows from fact vwy contains no cs and x originally had n cs uv 2 wy 2 z has more than n as or more than n bs follows from vy contains at least 1 a or b and x originally has n as and n bs Continued next slide
- Slide 23
- 23 Example Proof Completed For all possible u, v, w, y, z, we have shown there exists a k>=0 such that uv k wy k z is not in L Note, we used a different value of k for each case (though we didnt have to) Therefore L does not satisfy the CFL pumping condition There L is not a CFL Case 2: vwy contains no cs vy contains at least uv 2 wy 2 z is not in L uv 2 wy 2 z has n cs follows from fact vwy contains no cs and x originally had n cs uv 2 wy 2 z has more than n as or more than n bs follows from vy contains at least 1 a or b and x originally has n as and n bs Continued next column
- Slide 24
- 24 Other example languages TWOCOPIES = {ww | w is in {a,b} * } abbabb is in TWOCOPIES but abaabb is not EQUAL3 = the set of strings over {a, b, c} such that the number of as equals the number of bs equals the number of cs {a i b j c k | i < j < k}
- Slide 25
- 25 Pumping Lemma Two rules of thumb
- Slide 26
- 26 Two Rules of Thumb Try to use blocks of at least n characters in x For TWOCOPIES, choose x = a n b n a n b n rather than a n ba n b Guarantees v and y cannot be in more than 2 blocks of x Try k=0 or k=2 k=0 This reduces number of occurrences of v and y k=2 This increases number of occurrences of v and y
- Slide 27
- 27 Summary We use the Pumping Lemma to prove a language is not a CFL Note, does not work for all non CFL languages Can be strengthened to Ogdens Lemma In book Choosing a good string x is first key step Choosing a good k is second key step Typically have several cases for v, w, y

Recommended

View more >