Date post: | 20-Dec-2015 |
Category: |
Documents |
View: | 240 times |
Download: | 5 times |
3
EQUAL
• EQUAL is the set of strings over {a,b} 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?
– Production Rule:
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?
• x = bz – What must be true about relative number of a’s and b’s in z?
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 that applies to all of the above examples?
• More specifically, show how we can decompose all of the above strings y into 3 pieces, two of which belong to EQUAL.
– Some of these pieces might be the empty string
7
Decomposing y
• y has one extra b– Possible examples
• b, babba, aabbbab, aaabbbb
– Decomposition• y = ubv where
– u and v both have an equal number of a’s and b’s
• Decompose the 4 strings above into u, b, v– b, aabbbab, babba, aaabbbb
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?
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?
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 ==>1
EG 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 ==>n
EG x, then x is in EQUAL
– Prove this by induction on n
• Base Case:– n = 1
– What is the set of strings {x | S ==>1EG x}?
– What do we need to prove about this set of strings?
15
Inductive Case
• Inductive Hypothesis:– For 1 <= j <= n, if S ==>j
EG 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 ==>n
EG 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+1
EG 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– For n >= 1,
• Fact 1 to Fact n --> Fact n+1
“Regular” induction vs Strong induction
17
Visualization of InductionRegular Induction
Fact 1Fact 2Fact 3Fact 4Fact 5Fact 6Fact 7Fact 8Fact 9
Strong Induction
Fact 1Fact 2Fact 3Fact 4Fact 5Fact 6Fact 7Fact 8Fact 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
– Examining EG, what are the three possible first derivation steps
• Case 1: S ==> ==>nEG x
• Case 2: S ==> ==>nEG x
• Case 3: S ==> ==>nEG x
– One of the cases is impossible. Which one and why?
19
Case 2: S ==> ==>nEG x *
• This means x has the form aubv where– What can we conclude about u (don’t apply IH)?
– What can we conclude about v (don’t apply IH)?
• Apply the inductive hypothesis– u and v belong to EQUAL– Why do we need 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 ==> ==>nEG x
• This means x has the form buav where– What can we conclude about u (no IH)?
– What can we conclude about v (no IH)
• Apply the inductive hypothesis– u and v belong to EQUAL– Why do we need 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?
• 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
• 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– What is the only string x such that |x|=0 and x is in
EQUAL?
– Prove this string belongs to L(EG)
EQUAL subset of L(EG) *
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:– For n >= 0,
– if |x| = n+1 and x is in EQUAL, then x is in L(EG)
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)– Examining S, what are the two possibilities for the first
character in x?• Case 1: first character in x is • Case 2: first character in x is
– In each case, what can we say about the remainder of x?• Case 1: the remainder of x• Case 2: the remainder of x
26
Case 1: x = ay *• What can we say about y in this case?
• 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: – 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: – length 1: y1
– length 2: y1y2
– …
– length n: y1y2 … yn = y
• The first prefix 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– What can we conclude from applying the IH?
– Why did we need a strong inductive hypothesis?
• Conclude x is in L(EG) by constructing a derivation– S ==> aSbS ==>*
EG aubS ==>*EG aubv
• Justify each of the derivation steps in this derivation
29
Case 2: x = buav• x = buav
– u is in EQUAL and has length <= n
– v is in EQUAL and has length <= n
• Apply the induction hypothesis– What can we conclude about u and v?
• Conclude x is in L(EG) by constructing a derivation– S ==> bSaS ==>*
EG buaS ==>*EG buav
• Justify each of the steps in this derivation