Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Lecture 32 Closure Properties for CFL’s –Kleene Closure construction examples proof of correctness –Others covered less thoroughly in lecture union,

Similar presentations


Presentation on theme: "1 Lecture 32 Closure Properties for CFL’s –Kleene Closure construction examples proof of correctness –Others covered less thoroughly in lecture union,"— Presentation transcript:

1 1 Lecture 32 Closure Properties for CFL’s –Kleene Closure construction examples proof of correctness –Others covered less thoroughly in lecture union, concatenation CFL’s versus regular languages –regular languages subset of CFL

2 2 Closure Properties for CFL’s Kleene Closure

3 3 CFL closed under Kleene Closure Let L be an arbitrary CFL Let G 1 be a CFG s.t. L(G 1 ) = L –G 1 exists by definition of L 1 in CFL Construct CFG G 2 from CFG G 1 Argue L(G 2 ) = L * There exists CFG G 2 s.t. L(G 2 ) = L * L * is a CFL

4 4 Visualization L*L* L CFL CFG’s Let L be an arbitrary CFL Let G 1 be a CFG s.t. L(G 1 ) = L –G 1 exists by definition of L 1 in CFL Construct CFG G 2 from CFG G 1 Argue L(G 2 ) = L * There exists CFG G 2 s.t. L(G 2 ) = L * L * is a CFL G1G1 G2G2

5 5 Algorithm Specification Input –CFG G 1 Output –CFG G 2 such that L(G 2 ) = (L(G 1 )) * CFG G 1 CFG G 2 A

6 6 Construction Input –CFG G 1 = (V 1, , S 1, P 1 ) Output –CFG G 2 = (V 2, , S 2, P 2 ) V 2 = V 1 union {T} – T is a new symbol not in V 1 or  S 2 = T P 2 = P 1 union {T --> TS 1 | }

7 7 Closure Properties for CFL’s Kleene Closure Examples

8 8 Input grammar: –V = {S} –  = {a,b} –S = S –P: S --> aa | ab | ba | bb Output grammar –V = {S, T} –  = {a,b} –Start symbol is T –P: T --> TS | S --> aa | ab | ba | bb Example 1 V 2 = V 1 union {T} T is a new symbol not in V 1 or  S 2 = T P 2 = P 1 union {T --> TS | }

9 9 Input grammar: –V = {S, T} –  = {a,b} –Start symbol is T –P: T --> TS | S --> aa | ab | ba | bb Output grammar –V = {S, T, U} –  = {a,b} –Start symbol is U –P: U --> UT | T --> TS | S --> aa | ab | ba | bb Example 2 V 2 = V 1 union {T} T is a new symbol not in V 1 or  S 2 = T P 2 = P 1 union {T --> TS | }

10 10 Closure Properties for CFL’s Kleene Closure Proof of Correctness

11 11 Is our construction correct? How do we prove our construction is correct? –Informal Test some strings Review logic behind construction –Formal First, show every string derived by G 2 belongs to (L(G 1 )) * –That is, show L(G 2 ) is a subset of (L(G 1 )) * Second, show every string in (L(G 1 )) * can be derived by G 2 –That is, show (L(G 1 )) * is a subset of L(G 2 ) Both proofs will be inductive proofs –Inductive proofs and recursive algorithms go well together

12 12 L(G 2 ) is a subset of (L(G 1 )) * We want to prove the following –If x in L(G 2 ), then x is in (L(G 1 )) * This is equivalent to the following –If T ==> * G 2 x, then x is in (L(G 1 )) * –The two statements are equivalent because x in L(G 2 ) means that T ==> * G 2 x We break the second statement down as follows: –If T ==> 1 G 2 x, then x is in (L(G 1 )) * –If T ==> 2 G 2 x, then x is in (L(G 1 )) * –If T ==> 3 G 2 x, then x is in (L(G 1 )) * –...

13 13 L(G 2 ) is a subset of (L(G 1 )) * Statement to be proven: –For all n >= 1, if T ==> n G 2 x, then x is in (L(G 1 )) * –Prove this by induction on n Base Case: –n = 1 –The only string x such that T ==> 1 G 2 x is the string Follows from inspection of G 2 –The string belongs to (L(G 1 )) * Follows from definition of Kleene Closure

14 14 Inductive Case Inductive Hypothesis: –For 1 j G 2 x, then x is in (L(G 1 )) * Note, this is a “strong” induction hypothesis Statement to be Proven in Inductive Case: –For n above, if T ==> n+1 G 2 x, then x is in (L(G 1 )) * Proving this statement –Let x be an arbitrary string such that T ==> n+1 G 2 x –There are two possible first derivation steps Case 1: T ==> G 2 ==> n G 2 x Case 2: T ==> G 2 TS ==> n G 2 x –These 2 cases follow from looking at grammar G 2

15 15 Case Analysis Case 1: T ==> G 2 is not possible –n >= 1 which means n+1 >= 2 Case 2: T ==> G 2 TS ==> n G 2 x –This means x has the form uv where T ==> <n u S ==> <n v –This follows because in n steps, we go from TS to x –Thus, T can take at most n-1 steps to generate u –Likewise for S generating v –String u belongs to (L(G 1 )) * Follows from the inductive hypothesis

16 16 Concluding Case 2: T ==> G 2 TS ==> n G 2 x –String v belongs to L(G 1 ) Follows from S ==> * G 2 v and Our construction insures that all strings derived from S in L(G 2 ) are also in L(G 1 ) –Conclude x belongs to (L(G 1 )) * x = uv where u belongs to (L(G 1 )) * and v belongs to L(G 1 ) By definition of Kleene closure, this means x=uv belongs to (L(G 1 )) * Wrapping up inductive case –In all possible derivations of x, we have shown that x belongs to (L(G 1 )) * –Thus, we have proven the inductive case Conclusion –By the principle of mathematical induction, we have shown that L(G 2 ) is a subset of (L(G 1 )) *

17 17 (L(G 1 )) * is a subset of L(G 2 ) We want to prove the following –If x is in (L(G 1 )) *, then x is in L(G 2 ) This is equivalent to the following –If x is in (L(G 1 )) *, then T ==> * G 2 x –The two statements are equivalent because x in L(G 2 ) means that T ==> * G 2 x We break the second statement down as follows: –If x is in (L(G 1 )) 0, then T ==> * G 2 x –If x is in (L(G 1 )) 1, then T ==> * G 2 x –If x is in (L(G 1 )) 2, then T ==> * G 2 x –...

18 18 (L(G 1 )) * is a subset of L(G 2 ) Statement to be proven: –For all n >= 0, if x is in (L(G 1 )) n, then x is in L(G 2 ) –Prove this by induction on n Base Case: –n = 0 –The only string x such that x is in (L(G 1 )) 0 is the string Follows from definition of (L(G 1 )) 0 –The string belongs to L(G 2 ) Follows from production T -->

19 19 Inductive Case Inductive Hypothesis: –For 0 * G 2 x Note, this is a “strong” induction hypothesis Statement to be Proven in Inductive Case: –For n above, if x is in (L(G 1 )) n+1, then T ==> * G 2 x Proving this statement –Let x be an arbitrary string in (L(G 1 )) n+1 –This means x = uv where u is a string in (L(G 1 )) n v is a string in L(G 1 ) –This follows from definition of (L(G 1 )) n+1 and that n>=0

20 20 Deriving x –x = uv where u is a string in (L(G 1 )) n v is a string in L(G 1 ) –T ==> G 2 TS ==> * G 2 uS ==> * G 2 uv = x The first derivation step is possible from our grammar The second sequence of derivation steps follows from T ==> * G 2 u –This follows from applying the induction hypothesis Third sequence of derivation steps follows from S ==> * G 2 v –This follows from the fact that v is in L(G 1 ) and –Our construction includes all productions from G 1 –Thus T ==> * G 2 x The inductive case follows The result is proven by the principle of mathematical induction

21 21 Construction for Set Union Input –CFG G 1 = (V 1, , S 1, P 1 ) –CFG G 2 = (V 2, , S 2, P 2 ) Output –CFG G 3 = (V 3, , S 3, P 3 ) V 3 = V 1 union V 2 union {T} –Variable renaming to insure no names shared between V 1 and V 2 – T is a new symbol not in V 1 or V 2 or  S 3 = T P 3 = P 1 union P 2 union {T --> S 1 | S 2 }

22 22 Construction for Set Concatenation Input –CFG G 1 = (V 1, , S 1, P 1 ) –CFG G 2 = (V 2, , S 2, P 2 ) Output –CFG G 3 = (V 3, , S 3, P 3 ) V 3 = V 1 union V 2 union {T} –Variable renaming to insure no names shared between V 1 and V 2 – T is a new symbol not in V 1 or V 2 or  S 3 = T P 3 = P 1 union P 2 union {T --> S 1 S 2 }

23 23 CFL’s and regular languages

24 24 CFL Closure Properties CFL’s are closed under Kleene closure –Just proven, proof also in book CFL’s are closed under set union –Proof in book CFL’s are closed under set concatenation –Proof in book What can we conclude from these 3 results? –It follows that regular languages are a subset of CFL’s

25 25 Regular languages subset of CFL Recursive definition of regular languages –Base Case: {}, { }, {a}, {b} are regular languages over {a,b} P={}, P={S --> }, P={S --> a}, P={S --> b} –Inductive Case: If L and L’ are are regular languages, then L*, LL’, L union L’ are regular languages Use previous constructions to see that these resulting languages are also context-free

26 26 Other CFL Closure Properties We will show that CFL’s are NOT closed under many other set operations Examples include –set complement –set intersection –set difference

27 27 Language class hierarchy All languages over alphabet  RE REG H H Equal CFL REC ?


Download ppt "1 Lecture 32 Closure Properties for CFL’s –Kleene Closure construction examples proof of correctness –Others covered less thoroughly in lecture union,"

Similar presentations


Ads by Google