Chap. 6 Pushdown Automata 6.1 Definition of Pushdown Automata Example 6.1 L = {wcw R w (0+1) * } P c 0P0 1P1 1. Start at state q 0, push input symbol onto stack, and stay in q 0. 2. If input symbol is c in state q 0, go to state q 1. 3. If input symbols is same as top of the stack, pop it and stay in q 1. 4. If no more input symbol and empty stack in state q 1, accept. 11/6/12 Kwang-Moo Choe 1
A pushdown automaton(pda) P = (Q, Σ, Γ, δ, q 0, Z 0, F) is 1. Q is a finite set of states, 2. Σ is a finite set of input symbols, 3. Γ is a finite stack alphabet, 4. δ is a transition function. δ: Q (Σ {ε}) Γ 2 Q Γ*. 5. q 0 Q is an initial state, 6. Z 0 Γ * is an initial stack content, 7. F Q is a set of final states. 11/6/12 Kwang-Moo Choe 2
Example P = ({q 0, q 1, q 2 }, {0, 1, c, $}, {Z, O, Z 0 }, δ, q 0, Z 0, {q 2 }) δ(q 0, 0, Z 0 ) = {(q 0, ZZ 0 )} δ(q 0, 0, Z) = {(q 0, ZZ)} δ(q 0, 1, Z 0 ) = {(q 0, OZ 0 )} δ(q 0, 1, Z) = {(q 0, OZ)} δ(q 0, c, Z 0 ) = {(q 1, Z 0 )} δ(q 0, c, Z) = {(q 1, Z)} δ(q 0, 0, O) = {(q 0, ZO)} If see 0, then push Z in q 0. δ(q 0, 1, O) = {(q 0, OO)} If see 1, then push O in q 0. δ(q 0, c, O) = {(q 1, O)} If see c, go to q 1. δ(q 1, 0, Z) = {(q 1, ε)} If see 0, then pop Z in q 1. δ(q 1, 1, O) = {(q 1, ε)} If see 1, then pop O in q 1. δ(q 1, $, Z 0 ) = {(q 2, ε)} If see $, go to the final state q 2. $: end of string marker 11/6/12 Kwang-Moo Choe 3
Instantaneous description of PDA (current state, remained input string, stack contents) (q, x, γ) Q Σ * Γ *. P (Q Σ * Γ * ) (Q Σ * Γ * ) (q, ax, Xβ) P (p, x, γβ), if (p, γ) δ(q, a, X) (q, x, Xβ) P (p, x, γβ), if (p, γ) δ(q, ε, X) We may use instead of P if P is understood. is a binary relation on (Q Σ * Γ * ). *, reflexive transitive closure of. Recursive definition of *. I Q Σ * Γ *, I * I. If I J and J * K, I * K. 11/6/12 Kwang-Moo Choe 4
Theorem 6.5 If P = (Q, Σ, Γ, δ, q 0, Z 0, F) is a PDA and (q, xy, α) * (p, y, β) for q,p Q, x,y Σ * and α,β Γ *. Then (q, xyw, αγ) * (p, yw, βγ) for any w Σ * and γ Γ *. Theorem 6.6 If P = (Q, Σ, Γ, δ, q 0, Z 0, F) is a PDA and (q, xyw, α) * (p, yw, β) for q,p Q, x,y,w Σ * and α,β Γ *. Then (q, xy, α) * (p, y, β). 6.2 The language of a PDA L(P) = {w Σ * (q 0, w, Z 0 ) * (f, ε, α), f F} language accepted by final state N(P) = {w Σ * (q 0, w, Z 0 ) * (f, ε, ε)} language accepted by null stack 11/6/12 Kwang-Moo Choe 5
6.2.3 From Empty Stack to Final State Theorem 6.9 If L = N(P N ) for some PDA P N. Then there is a PDA P F such that L = L(P F ). Let P N = (Q, Σ, Γ, δ N, q 0, Z N, ). P F = (Q {q 0, q F }, Σ, Γ {Z F }, δ F, q 0, Z F, {q F }) where q 0, q F Q, Z F Γ. δ F : 1. δ F (q 0, ε, Z F ) = {(q 0, Z N Z F )}. push old stack bottom Z N. 2. δ F δ N, simulate P N with δ N. 3. q Q, δ F (q, ε, Z F ) = {(q F, Z F )}. If stack is empty(z F ), go tothe final final state q F. 11/6/12 Kwang-Moo Choe 6
6.2.4 From Final State to Empty Stack Theorem 6.11 If L = L(P F ) for some PDA P F. Then there is a PDA P N such that L = N(P N ). Let P F = (Q, Σ, Γ, δ F, q 0, Z F, F). P N = (Q {q 0, q E }, Σ, Γ {Z N }, δ N, q 0, Z N, ) where q 0, q E Q, Z F Γ. δ N : 1. δ N (q 0, ε, Z N ) = {(q 0, Z F Z N )} push old stack bottom Z F. 2. δ N δ F, simulate P F with δ F. 3. f F, Z Γ {Z N }, δ N (f, ε, Z) {(q E, ε)}. If final state, pop stack symbol and go to the empty state q E. 4. Z Γ {Z N }, δ N (q E, ε, Z) = {(q E, ε)}. Empty stack in q E. 11/6/12 Kwang-Moo Choe 7
6.3.1 From Context-free Grammar to Pushdown Automata Theorem 6.13 If G = (N, Σ, P, S) is a cfg. Then PDA P.. L(G) = N(P). Construct P = ({q}, Σ, N Σ, δ, q, S, ) A N, δ(q, ε, A) = {(q, α) A α P}guess A as α(a α P). a Σ, δ(q, a, a) = {(q, ε)} verify a Σ. guess and verify parser Proof A * lm xα if and only if (q, x, A) * (q, ε, α), x Σ *, α (N Σ) *. (If) If (q, x, A) i (q, ε, α), then A lm * xα. basis i = 0, x = ε, (q, ε, A) 0 (q, ε, A). A * lm A. induction Let i 1, and consider the next-to-last step. i) (q, x, A) i-1 (q, ε, Bγ) Guess (q, ε, βγ) = (q, ε, α) A lm * xbγ by IH and B β P by construction of δ Guess. A lm * xbγ lm xβγ = xα. 11/6/12 Kwang-Moo Choe 8
ii) (q, x, A) = (q, ya, A) i-1 (q, a, aα) Verify (q, ε, α) (q, y, A) i-1 (q, ε, aα) A * lm yaα = xα by IH (Thm 6.6; (q, ε, aα)) (Only if) If A lm i xα, then (q, x, A) * (q, ε, α). basis i = 0, A lm 0 A. (q, ε, A) 0 (q, ε, A). induction Let i 1, and consider the next-to-last step. A lm i-1 ybγ lm yβγ = yy γ γ = xα where β=y γ, y Σ *, γ (N Σ) *. (q, y, A) * (q, ε, Bγ) by IH, (q, yy, A) * (q, y, Bγ) (by T.6.5) G (q, y, βγ) = (q, y, y γ γ) y V (q, ε, γ γ) = (q, ε, α) A lm * xα if and only if (q, x, A) * (q, ε, α). If A = S, α = ε, S lm * x if and only if (q, x, S) * (q, ε, ε) L(G) = N(P). 11/6/12 Kwang-Moo Choe 9
6.3.2 From Pushdown Automata to Context-free Grammar Theorem 6.14 If a PDA P = (Q, Σ, Γ, δ, q 0, Z 0, ). Then there is a CFG G such that L(G) = N(P). proof G = (Q Γ Q {S}, Σ, P, S) P = {S [q 0, Z 0, q] q Q} {[q, A, p m ] a [p, Y 1, p 1 ][p 1, Y 2, p 2 ] [p m-1, Y m, p m ] (p, Y 1 Y m ) δ(q, a, A), a Σ {ε}, p 1,, p m Q} (if m = 0, [q, A, p] a P, a Σ {ε}) [q, A, p] lm * x Σ *, if and only if (q, x, A) * (p, ε, ε). Nonterminal [q, A, p] derives terminal string x if and only if x causes PDA P to pop A from stack starting in the state q and ending in the state p. 11/6/12 Kwang-Moo Choe 10
1) If (q, x, A) i (p, ε, ε), then [q, A, p] * lm x. basis i = 1, (q, x, A) (p, ε, ε), (p, ε) δ(q, x, A), x Σ {ε}. [q, A, p] x P where x Σ {ε}. induction (q, x, A) = (q, ay, A) (p 1, y, Y 1 Y m ) i-1 (p, ε, ε). p 2,, p m, p Q and assume y = y 1 y m Σ *. (p 1,y 1 y m,y 1 Y m ) * (p 2,y 2 y m,y 2 Y m ) * (p m,y m,y m ) (p,ε,ε). 1 i m, (p i, y i, Y i ) * (p i+1, ε, ε). (Thm 6.5 and y i depends only on Y i ) [p i, Y i, p i+1 ] lm * y i by IH. [p 1, Y 1, p 2 ][p 2, Y 2, p 3 ] [p m, Y m, p] lm * y 1 y 2 y m = y Since (q, ay, A) (p 1, y, Y 1 Y m ), (p 1, Y 1 Y m ) δ(q, a, A). [q, A, p] a [p 1, Y 1, p 2 ][p 2, Y 2, p 3 ] [p m, Y m, p] P.( p i Q) [q, A, p] lm a [p 1, Y 1, p 2 ][p 2, Y 2, p 3 ] [p m, Y m, p] lm * ay = x. 11/6/12 Kwang-Moo Choe 11
2) If [q, A, p] i lm x, then (q, x, A) * (p, ε, ε). basis i = 1, [q, A, p] x P, (p, ε) δ(q, x, A) where x Σ {ε}. induction [q, A, p] lm a [p 1, Y 1, p 2 ] [p m, Y m, p] i-1 lm x Σ *. x = ay 1 y m where 1 i m, [p i, Y i, p i+1 ] lm i y i where p m+1 =p. (p i, y i, Y i ) * (p i+1, ε, ε) by IH. Since [q, A, p] a [p 1, Y 1, p 2 ] [p m, Y m, p] P, a [p 1, Y 1, p 2 ] [p m, Y m, p] δ(q, a, A). (q, ay 1 y m, A) (p 1, y 1 y m, Y 1 Y m ) * * ( p, ε, ε). [q, A, p] lm * x, p Q if and only if (q, x, A) * (p, ε, ε). [q 0, Z 0, p] lm * x, p Q if and only if (q 0, x, Z 0 ) * (p, ε, ε). S lm * x, p Q if and only if (q 0, x, Z 0 ) * (p, ε, ε). Q.E.D. 11/6/12 Kwang-Moo Choe 12