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

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

  • View
    238

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

1

Lecture 31

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

Page 2: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

2

EQUAL language

Designing a CFG

Page 3: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

4

Designing a CFG for EQUAL

• Think recursively• Base Case

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

– Production Rule:• S -->

Page 5: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

10

Final Grammar

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

– = {a,b}

– S = S

– P: S --> | aSbS | bSaS

Page 11: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

11

EQUAL language

Proving CFG is correct

Page 12: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the 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

Page 13: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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

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

• Follows from inspection of EG

– The string belongs to EQUAL

Page 15: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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

Page 17: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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

… …

Page 18: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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 ==> ==>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 19: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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

Page 20: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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

Page 21: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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

Page 22: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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)

• ...

Page 23: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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

– 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 24: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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

Page 25: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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

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

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

Page 26: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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

– length 2: y1y2

– …

– length n: y1y2 … yn = y

Page 27: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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

Page 28: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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

Page 29: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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

Page 30: 1 Lecture 31 EQUAL language –Designing a CFG –Proving the CFG is correct

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)