1 / 14

Theorem 1 Context-free languages are closed under union, concatenation and Kleene closure.

6.2 Closure Properties of CFL's. Theorem 1 Context-free languages are closed under union, concatenation and Kleene closure. Proof Let L1= L (G1) and L2 = L (G2) be CFL’s, where G1 = (V1, T1, P1, S 1 ) and G2 = (V2, T2, P2, S 2 ). For union, L1  L2, Construct G = (V, T, P, S), where.

mingan
Download Presentation

Theorem 1 Context-free languages are closed under union, concatenation and Kleene closure.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 6.2 Closure Properties of CFL's Theorem 1 Context-free languages are closed under union, concatenation and Kleene closure. Proof Let L1= L(G1) and L2 = L(G2) be CFL’s, where G1 = (V1, T1, P1, S1) and G2 = (V2, T2, P2, S2) • For union, L1L2, Construct G = (V, T, P, S), where P = P1P2 {SS1, SS2}, V = V1 V2 {S}

  2. For concatenation, L1.L2, Construct G = (V, T, P, S), where P = P1P2 {SS1S2}, V = V1 V2 {S} • For Kleene closure, L1*, Construct G = (V, T, P, S), where P = P1{SS1S, S}, V = V1{S}

  3. Theorem 2 Context-free languages are closed under substitution. Proof Let L be a CFL, L  *, and for each a in  let La be a CFL. Let L = L(G), G = (V, T, P, S), and for each a in  let La = L(Ga), where Ga=(Va, Ta, Pa, Sa). Assume that VVa = , for all a in . And VaVb = , for all a≠ b in . Construct G’=(V’, T’, P’, S), where V’ = a in Va V, T’ = a in  Ta , P’ = a in  Pa {Af() | A  is in P, and f(a) = Sa for each a in }

  4. Example 6 L = {0n1m | n ≠m } is a CFL. Let L = L(G), G = ({S, A, B}, {0, 1}, P, S), where P contains the following production rules: S  0S1 | 0A | 1B, A  0A | , B  1B | . Let L0 = L(G0), G = ({S0}, { (, ), [, ]}, P, S0), where P contains the following production rules: S0 S0S0 | [S0] | (S0) | [] | () • L0 can be defined recursively as follows: • () and [] are in L0. • If R and S are in L0, then (R), [R], and RS are in L0. • And L0 contains only the strings described in 1 and 2.

  5. Let L1 = L(G1), G = ({S1, C, D}, {c, d}, P, S1), where P contains the following production rules: S1 dC | cD C  dCC | cS | c D  cDD | dS | d Let L1 consists of strings over {c, d} with the property that the number of c’s is equal to the number of d’s in the strings. If f is the substitution f(0) = L0 and f(1) = L1, then f(L) is generated by the grammar S  S0SS1 | S0A | S1B, A  S0A | , B  S1B | . S0 S0S0 | [S0] | (S0) | [] | () S1 dC | cD C  dCC | cS | c D  cDD | dS | d

  6. Corollary Context-free languages are closed under homomorphism. Proof homomorphism is a special case of substitution.

  7. Theorem 3 Context-free languages are closed under inverse homomorphism. Proof Let h : Δ* be a homomorphism and L be a CFL.. Let L = L(M), PDA M = (Q, Δ, Γ, , q0, Z0, F). An idea of constructing a PDA M’ to accept h-1(L) is as follows: What M’ does is the following: On reading an input symbol a, M’ generates the string h(a) and stores h(a) in a buffer, then simulates M on h(a). Only when the buffer is empty, M’ is allowed to read in next input. And the buffer holds only a suffix of h(a) for some input a at all time. M’ accepts an input w if the buffer is empty and M enters a final state.

  8. Construct a PDA M’ = (Q’, , Γ, ’, [q0, ], Z0, F{}) to accept h-1(L) as follows: Q’ = { [q, x] | q Q and x is a suffix of some h(a) for a .} ’ is defined as follows: • ’ ([q, x], , Y) contains all ([p, x], γ) if (q, , Y) contains (p, γ). The move M’ simulates -move of M ignoring the buffer. • ’ ([q, ax], , Y) contains all ([p, x], γ) if (q, a, Y) contains (p, γ). M’ simulates moves of M on reading a Δ, then removes a from the front of the buffer. • ’ ([q, ], a, Y) contains all ([q, h(a)], γ) for all a  and Y  Γ. When the buffer is empty, M’ reads an input a and loads the buffer with h(a).

  9. (q, h(a), ) (p, , )  ([q, ,], a, ) (q, h(a), ) ([p, ], ,). If M accepts h(w), i.e., (q0, h(w), Z0) (p, , ) for some p in F and  in Γ*, then ([q0,  ], w, Z0) ([p, ], ,). So M’ accepts w. We have that h-1(L(M)) L(M’)

  10. ([q0, ], a1a2 … an, Z0) ([p1, ], a2 … an, 1), ([p1, h(a1)], a2a3 … an, 1), ([p2, ], a2a3 … an, 2), ([p2, h(a2)], a3 … an, 2), ([pn, ], , n+1), . . . If M’ accepts w = a1a2 … an. where pn is a final state.

  11. (pi, h(ai), i) (pi+1, , i+1). (q0, h(a1a2 …an), Z0) (pn, , n+1). For all i, we have So, for these moves altogether we have Hence, h(a1a2…an) is in L(M). And L(M’)  h-1(L(M)}. End of Theorem 3.

  12. Theorem 4 Context-free languages are not closed under intersection. Proof L1 = {0n1n0m | n, m = 0, 1, 2, …} and L2 = {0n1m0m | n, m = 0, 1, 2, …} are CFL’s. L1L2 = {0n1n0n | n = 0, 1, 2, …} is not CFL.

  13. Corollary Context-free languages are not closed under complementation. L1  L2 = (L1cL2c)c , where c stands for complement. If CFL’s are closed under complement, then CFL’s are closed under intersection.

  14. Theorem 5 The intersection of a context-free language and a regular language is context-free. Proof Let L be a CFL, and let R be a regular language. L = L(ML) for PDA ML = (QL, , Γ, L, q0, Z0, FL), and R = L(MR) for DFA MR = (QR, , R, p0, FR). Construct a PDA M’ for L  R by simulating ML and MR in parallel. M = (QLQR, , Γ, , [p0, q0], Z0, FLFR), where  ([p, q], a, X) contains ([p’, q’], ) if and only if R(p, a) = p’, L(q, a, X) contains (q’, ).

More Related