We popped only 4 (X)’s for 4 (b)’s, but stack had (i+k=5) symbols (X). Remaining (X) on top? No — after 4 pops, stack = (XZ_0) not (Z_0). So ε-transition to (q_3) not allowed because stack top is (X), not (Z_0). So dead. So correct. Corrected, Cleaner PDA States: (q_0) (read a), (q_1) (read c), (q_2) (read b), (q_3) (accept).
Actually better structure:
[ \beginaligned &\delta(q_0, a, Z_0) = (q_0, XZ_0) \ &\delta(q_0, a, X) = (q_0, XX) \ &\delta(q_0, \varepsilon, X) = (q_1, X) \ &\delta(q_0, \varepsilon, Z_0) = (q_1, Z_0) \ \ &\delta(q_1, c, Z_0) = (q_1, XZ_0) \ &\delta(q_1, c, X) = (q_1, XX) \ &\delta(q_1, \varepsilon, X) = (q_2, X) \ &\delta(q_1, \varepsilon, Z_0) = (q_2, Z_0) \ \ &\delta(q_2, b, X) = (q_2, \varepsilon) \ &\delta(q_2, \varepsilon, Z_0) = (q_3, Z_0) \endaligned ]
Start: (q_0), stack (Z_0). Accept: (q_3), stack (Z_0). This PDA accepts ( a^i b^j c^k \mid j = i + k ), with the stack keeping count of (i+k) and popping once per (b) to verify equality.
We popped only 4 (X)’s for 4 (b)’s, but stack had (i+k=5) symbols (X). Remaining (X) on top? No — after 4 pops, stack = (XZ_0) not (Z_0). So ε-transition to (q_3) not allowed because stack top is (X), not (Z_0). So dead. So correct. Corrected, Cleaner PDA States: (q_0) (read a), (q_1) (read c), (q_2) (read b), (q_3) (accept).
Actually better structure:
[ \beginaligned &\delta(q_0, a, Z_0) = (q_0, XZ_0) \ &\delta(q_0, a, X) = (q_0, XX) \ &\delta(q_0, \varepsilon, X) = (q_1, X) \ &\delta(q_0, \varepsilon, Z_0) = (q_1, Z_0) \ \ &\delta(q_1, c, Z_0) = (q_1, XZ_0) \ &\delta(q_1, c, X) = (q_1, XX) \ &\delta(q_1, \varepsilon, X) = (q_2, X) \ &\delta(q_1, \varepsilon, Z_0) = (q_2, Z_0) \ \ &\delta(q_2, b, X) = (q_2, \varepsilon) \ &\delta(q_2, \varepsilon, Z_0) = (q_3, Z_0) \endaligned ] pda for a-ib-jc-k where j i k
Start: (q_0), stack (Z_0). Accept: (q_3), stack (Z_0). This PDA accepts ( a^i b^j c^k \mid j = i + k ), with the stack keeping count of (i+k) and popping once per (b) to verify equality. We popped only 4 (X)’s for 4 (b)’s,