Transcript Module 30

Module 30
• EQUAL language
– Designing a CFG
– Proving the CFG is correct
1
EQUAL language
Designing a CFG
2
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
3
Designing a CFG for EQUAL
• Think recursively
• Base Case
– What is the shortest possible string in EQUAL?
– Production Rule:
4
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?
5
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 λ
6
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λ, λbabba, aabbbab, aaabbbbλ
7
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?
8
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?
9
Final Grammar
• EG = (V, S, S, P)
–
–
–
–
V = {S}
S = {a,b}
S=S
P:
10
EQUAL language
Proving CFG is correct
11
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
12
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
...
13
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
– What is the set of strings {x | S ==>1EG x}?
– What do we need to prove about this set of strings?
14
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
15
“Regular” induction vs Strong
induction
• Infinite Set of Facts • Base Case
–
–
–
–
–
–
–
Fact 1
Fact 2
Fact 3
Fact 4
Fact 5
Fact 6
…
– 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
16
Visualization of Induction
Regular Induction
Strong Induction
Fact 1
Fact 2
Fact 3
Fact 4
Fact 5
Fact 6
Fact 7
Fact 8
Fact 9
…
Fact 1
Fact 2
Fact 3
Fact 4
Fact 5
Fact 6
Fact 7
Fact 8
Fact 9
…
17
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 ==>
• Case 2: S ==>
• Case 3: S ==>
==>nEG x
==>nEG x
==>nEG x
– One of the cases is impossible. Which one and why?
18
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
19
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
20
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
21
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)
...
22
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
– What is the only string x such that |x|=0 and x is in
EQUAL?
– Prove this string belongs to L(EG)
23
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)
24
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
25
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
26
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
27
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
28
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
29
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)
30