# Homework Assignment #3

#### Due on paper in class, Friday 27 March 2009

There are thirteen questions for 100 total points plus 10 extra credit. All but three are from the textbook, Introduction to the Theory of Computation by Michael Sipser (second edition). The number in parentheses following each problem is its individual point value.

• Exercise 3.1, part d only (5)

• Exercise 3.2, part c only (5)

• Problem C-1 (15): Give a complete state diagram for a (deterministic, one-tape) Turing machine that implements the division algorithm as follows. If the machine is started in configuration q00y#0x for some non-negative integer x and some positive integer y, it should terminate in configuration qa0q#0r such that q and r are the unique non-negative integers such that qy + r = x and r < y. (Everybody ought to, once in their life, build a TM to do something non-trivial.)

• Problem C-2 (10): A two-stack PDA is like an ordinary PDA except that it has two stacks, and its Δ relation has transitions of the form "if you are in state q, read a from the input, pop b from stack 1, and pop b from stack 2, you may go to state r, push d onto stack 1, and push e onto stack 2". Here a, b, c, d, and e might be letters or ε.
• (a,5) Indicate how a nondeterministic TM can simulate a two-stack PDA.
• (b,5) Indicate how a two-stack PDA can simulate a deterministic, one-tape TM. What do (a) and (b) indicate about the class of languages defined by two-stack PDA's?

• Problem 3.11 (10)

• Problem 3.13 (10)

• Problem 3.15, part e only (5)

• Problem 3.20 (10)

• Exercise 4.2 (10)

• Exercise 4.5 (5)

• Exercise 4.8 (5)

• Problem 4.10 (10)

• Problem C-3 (10XC) Let Σ = {ai: n ≥ 0} = {a1, a2,...} be a countably infinite alphabet. Prove that the set Σ*, consisting of all finite strings over Σ, is countably infinite.