+ All Categories
Home > Documents > 1 Module 30 EQUAL language –Designing a CFG –Proving the CFG is correct.

1 Module 30 EQUAL language –Designing a CFG –Proving the CFG is correct.

Date post: 20-Dec-2015
Category:
View: 240 times
Download: 5 times
Share this document with a friend
30
1 Module 30 • EQUAL language – Designing a CFG – Proving the CFG is correct
Transcript

1

Module 30

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

2

EQUAL language

Designing a CFG

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?

10

Final Grammar *

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

– = {a,b}

– S = S

– P:

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

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)


Recommended