lecture 28

28
1 Lecture 28 • EQUAL language – Designing a CFG – Proving the CFG is correct

Upload: zandra

Post on 20-Jan-2016

19 views

Category:

Documents


0 download

DESCRIPTION

Lecture 28. 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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Lecture 28

1

Lecture 28

• EQUAL language– Designing a CFG– Proving the CFG is correct

Page 2: Lecture 28

2

EQUAL language

Designing a CFG

Page 3: Lecture 28

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

Page 4: Lecture 28

4

Designing a CFG for EQUAL

• Think recursively• Base Case

– What is the shortest possible string in EQUAL?• Answer:

– Production Rule:• S -->

Page 5: Lecture 28

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

Page 6: Lecture 28

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?

Page 7: Lecture 28

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– b, aabbbab, babba, aaabbbb

Page 8: Lecture 28

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

Page 9: Lecture 28

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

Page 10: Lecture 28

10

Final Grammar

• EG = (V, , S, P)– V = {S}

– = {a,b}

– S = S

– P: S --> | aSbS | bSaS

Page 11: Lecture 28

11

EQUAL language

Proving CFG is correct

Page 12: Lecture 28

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

Page 13: Lecture 28

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

• ...

Page 14: Lecture 28

14

L(EG) subset of EQUAL

• 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

– The only string x such that S ==>1EG x is the string

• Follows from inspection of EG

– The string belongs to EQUAL

Page 15: Lecture 28

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

Page 16: Lecture 28

16

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 ==> ==>n

EG 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

Page 17: Lecture 28

17

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

Page 18: Lecture 28

18

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

Page 19: Lecture 28

19

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

Page 20: Lecture 28

20

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)

• ...

Page 21: Lecture 28

21

• 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

• Follows from definition of EQUAL

– The string belongs to L(EG)• Follows from production S -->

EQUAL subset of L(EG)

Page 22: Lecture 28

22

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

Page 23: Lecture 28

23

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

– Case 1: x = ay where y has one extra b

– Case 2: x = bz where z has one extra a

Page 24: Lecture 28

24

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: – length 1: y1

– length 2: y1y2

– …

– length n: y1y2 … yn = y

Page 25: Lecture 28

25

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

Page 26: Lecture 28

26

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

Page 27: Lecture 28

27

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

Page 28: Lecture 28

28

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)