1 / 30

Lecture 31

Lecture 31. EQUAL language Designing a CFG Proving the CFG is correct. EQUAL language. Designing a CFG. EQUAL. EQUAL is the set of strings with an equal number of a’s and b’s Strings in EQUAL include aabbab bbbaaa abba Strings in {a,b}* not in EQUAL include aaa bbb aab ababa.

river
Download Presentation

Lecture 31

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture 31 • EQUAL language • Designing a CFG • Proving the CFG is correct

  2. EQUAL language Designing a CFG

  3. EQUAL • EQUAL is the set of strings with an equal number of a’s and b’s • Strings in EQUAL include • aabbab • bbbaaa • abba • Strings in {a,b}* not in EQUAL include • aaa • bbb • aab • ababa

  4. Designing a CFG for EQUAL • Think recursively • Base Case • What is the shortest possible string in EQUAL? • Answer: l • Production Rule: • S --> l

  5. Recursive Case • Recursive Case • Now consider a longer string x in EQUAL • Since x has length > 0, x must have a first character • This must be a or b • Two possibilities for what x looks like • x = ay • What must be true about relative number of a’s and b’s in y? • y must have one extra b • x = bz • What must be true about relative number of a’s and b’s in z? • z must have one extra a

  6. Case 1: x=ay • x = ay where y has one extra b • What must y look like? • Some examples • b • babba • aabbbab • aaabbbb • Is there a general pattern? • In particular, are there substrings in y which belong to EQUAL?

  7. Decomposing y • y has one extra b • Possible examples • b, babba, aabbbab, aaabbbb • Common pattern • In each string, there is some prefix with exactly one more b than a • That is, y = ubv where • ub is the prefix with an extra b • u and v both have an equal number of a’s and b’s • Decompose the 4 strings above into u, b, v • lbl,aabbbab, lbabba, aaabbbbl

  8. Implication • Case 1: x=ay • y has one extra b • Case 1 refined: x=aubv • u, v belong to EQUAL • Production rule for this case • S --> aSbS • The first S can derive the string u • The second S can derive the string v

  9. Case 2: x=bz • Case 2: x=bz • z has one extra a • Case 2 refined: x=buav • u, v belong to EQUAL • Production rule for this case • S --> bSaS • The first S can derive the string u • The second S can derive the string v

  10. Final Grammar • EG = (V, S, S, P) • V = {S} • S = {a,b} • S = S • P: S --> l | aSbS | bSaS

  11. EQUAL language Proving CFG is correct

  12. Is our grammar correct? • How do we prove our grammar is correct? • Informal • Test some strings • Review logic behind program (CFG) design • Formal • First, show every string derived by EG belongs to EQUAL • That is, show L(EG) is a subset of EQUAL • Second, show every string in EQUAL can be derived by EG • That is, show EQUAL is a subset of L(EG) • Both proofs will be inductive proofs • Inductive proofs and recursive algorithms go well together

  13. L(EG) subset of EQUAL • Let x be an arbitrary string in L(EG) • What does this mean? • S ==>*EG x • Follows from definition of x in L(EG) • We will prove the following • If S ==>1EG x, then x is in EQUAL • If S ==>2EG x, then x is in EQUAL • If S ==>3EG x, then x is in EQUAL • If S ==>4EG x, then x is in EQUAL • ...

  14. Base Case • Statement to be proven: • For all n >= 1, if S ==>nEG x, then x is in EQUAL • Prove this by induction on n • Base Case: • n = 1 • The only string x such that S ==>1EG x is the string l • Follows from inspection of EG • The string l belongs to EQUAL

  15. Inductive Case • Inductive Hypothesis: • For 1 <= j <= n, if S ==>jEG x, then x is in EQUAL • Note, this is a “strong” induction hypothesis • Traditional inductive hypothesis would take form: • For some n >= 1, if S ==>nEG x, then x is in EQUAL • The difference is we assume the basic hypothesis for all integers between 1 and n, not just n • Statement to be Proven in Inductive Case: • If S ==>n+1EG x, then x is in EQUAL

  16. Infinite Set of Facts Fact 1 Fact 2 Fact 3 Fact 4 Fact 5 Fact 6 … Base Case Prove fact 1 Regular inductive case For n >= 1, Fact n --> Fact n+1 Strong inductive case Fact 1 to Fact n --> Fact n+1 “Regular” induction vs Strong induction

  17. Visualization of Induction Regular Induction Strong Induction Fact 1 Fact 1 Fact 2 Fact 2 Fact 3 Fact 3 Fact 4 Fact 4 Fact 5 Fact 5 Fact 6 Fact 6 Fact 7 Fact 7 Fact 8 Fact 8 Fact 9 Fact 9 … …

  18. Proving Inductive Case • If S ==>n+1EG x, then x is in EQUAL • Let x be an arbitrary string such that S ==>n+1EG x • There are three possible first derivation steps • Case 1: S ==> l ==>nEG x • Case 2: S ==> aSbS ==>nEG x • Case 3: S ==> bSaS ==>nEG x • These 3 cases follow from looking at grammar EG • Case 1 is not possible • n was assumed to be at least 1 which means x is derived in at least 2 steps

  19. Case 2: S ==> aSbS ==>nEG x • This means x has the form aubv where • S ==><n u • S ==><n v • This follows because in n steps, we go from aSbS to x • Thus, the first S can take at most n-1 steps to generate u • Likewise for the second S generating v • Apply the inductive hypothesis • u and v belong to EQUAL • Note we needed the strong inductive hypothesis • Conclude x belongs to EQUAL • x = aubv where u and v belong to EQUAL • Clearly the number of a’s in x equals the number of b’s in x

  20. Case 3: S ==> bSaS ==>nEG x • This means x has the form buav where • S ==><n u • S ==><n v • This follows because in n steps, we go from bSaS to x • Thus, the first S can take at most n-1 steps to generate u • Likewise for the second S generating v • Apply the inductive hypothesis • u and v belong to EQUAL • Note we needed the strong inductive hypothesis • Conclude x belongs to EQUAL • x = buav where u and v belong to EQUAL • Clearly the number of a’s in x equals the number of b’s in x

  21. L(EG) subset of EQUAL • Wrapping up inductive case • In all possible derivations of x, we have shown that x belongs to EQUAL • Thus, we have proven the inductive case • Conclusion • By the principle of mathematical induction, we have shown that L(EG) is a subset of EQUAL

  22. EQUAL subset of L(EG) • Let x be an arbitrary string in EQUAL • What does this mean? • x has an equal number of a’s and b’s • Follows from definition of x in EQUAL • We will prove the following • If |x| = 0 and x is in EQUAL, then x is in L(G) • If |x| = 1 and x is in EQUAL, then x is in L(G) • If |x| = 2 and x is in EQUAL, then x is in L(G) • If |x| = 3 and x is in EQUAL, then x is in L(G) • ...

  23. EQUAL subset of L(EG) • Statement to be proven: • For all n >= 0, if |x| = n and x is in EQUAL, then x is in L(EG) • Prove this by induction on n • Base Case: • n = 0 • The only string x such that |x|=0 and x is in EQUAL is the string l • Follows from definition of EQUAL • The string l belongs to L(EG) • Follows from production S --> l

  24. Inductive Case • Inductive Hypothesis: • For 0 <= j <= n, if |x| =j and x is in EQUAL, then x is in L(EG) • Again, this is a “strong” induction hypothesis • Statement to be Proven in Inductive Case: • If |x| = n+1 and x is in EQUAL, then x is in L(EG) • note n >= 0

  25. Proving Inductive Case • If |x|=n+1 and x is in EQUAL, then x is in L(EG) • Let x be an arbitrary string such that |x|=n+1 and x is in L(EG) • There are two possibilities for the first character in x • Case 1: first character in x is a • Case 2: first character in x is b • These 2 cases follow from looking at alphabet S • Case 1: x = ay where y has one extra b • Case 2: x = bz where z has one extra a

  26. Case 1: x = ay • This means x has the form aubv where • u is in EQUAL and has length <= n • v is in EQUAL and has length <= n • Proving this statement true • Consider all the prefixes of string y • length 0: l • length 1: y1 • length 2: y1y2 • … • length n: y1y2 … yn = y

  27. Case 1: x = ay • Consider all the prefixes of string y • length 0: l • length 1: y1 • length 2: y1y2 • … • length n: y1y2 … yn = y • The first prefix l has the same number of a’s as b’s • The last prefix y has one extra b • The relative number of a’s and b’s changes in the length i prefix differs by only one from the length i-1 prefix • Thus, there must be a first prefix t of y where t has one extra b • Furthermore, the last character of t must be b • Otherwise, t would not be the FIRST prefix of y with one extra b • Break t into u and b and let the remainder of y be v • The statement follows

  28. Case 1: x = aubv • x = aubv • u is in EQUAL and has length <= n • v is in EQUAL and has length <= n • Apply the induction hypothesis • u and v belong to L(EG) • This means S ==>*EG u and S ==>*EG v. • Conclude x is in L(EG) by constructing a derivation • S ==> aSbS ==>*EG aubS ==>*EG aubv • The first derivation step follows from production S --> aSbS • The second series of derivation steps follows from S ==>*EG u • The third series of derivation steps follows from S ==>*EG v

  29. Case 2: x = buav • x = buav • u is in EQUAL and has length <= n • v is in EQUAL and has length <= n • Follows from similar proof as in case 1 • Apply the induction hypothesis • u and v belong to L(EG) • This means S ==>*EG u and S ==>*EG v. • Conclude x is in L(EG) by constructing a derivation • S ==> bSaS ==>*EG buaS ==>*EG buav • The first derivation step follows from production S --> bSaS • The second series of derivation steps follows from S ==>*EG u • The third series of derivation steps follows from S ==>*EG v

  30. EQUAL subset of L(EG) • Wrapping up inductive case • For all possible first characters of x, we have shown that x belongs to L(EG) • Thus, we have proven the inductive case • Conclusion • By the principle of mathematical induction, we have shown that EQUAL is a subset of L(EG)

More Related