# Questions and Answers on Homework Assignment #4

#### HW#4 is due on paper in class, Monday 8 March 2010.

Question text is in black, my answers in blue.

• Question 4.1, posted 6 March: I'm confused by the hint on page 532-3 for Exercise 4.6 -- why am I concerned with the obliviousness of the TM? Do I need to start worrying about that horrible construction for Exercise 1.6?

The reason you have to worry is that the reduction from X (an arbitrary NP language) to SAT from Lemma 2.11 uses the assumption that the TM M for X is oblivious. It has to check that each snapshot z has the proper relationship to the earlier snapshot zprev from the last time the head was in that position. In the proof of Lemma 2.11, your TM calculating the reduction found out zprev by running M on some input of the right length and noting where it last puts its head there. But this need not be a logspace computation, as M is an arbitrary poly-time TM.

So you have to go back to the reason why M can be assumed to be an oblivious TM. In Exercise 1.5 you showed how to replace an arbitrary TM, running in time T(n), with an oblivious TM running in time O(T2(n)). (The more time-efficient construction from Exercise 1.6 isn't needed here, because our main concern is with space bounds.) In the construction of Exercise 1.5 you made your new machine oblivious by forcing its head to move in a particularly simple way. What you need to do now is show that a logspace TM can compute the time step for snapshot zprev from the time step for z, given that the head is moving in that simple way.

• Question 4.2, posted 6 March: When I am reducing an NL language X to an arbitrary language L in Exercise 4.3, I am worried that the only strings in L might be extremely long -- will my log-space reduction necessarily have time to output such a string? Can I assume that L has a string of length polynomial in the length of my input?

You can't assume anything about L except that it is not the empty language and that it is not the language Σ*. Remember that your log-space reduction takes an input w of length n and produces an output string f(w) that is in L if w is in X and is not in L if w is not in X. Because the log-space reduction is also a poly-time reduction, you are right that the length of f(w) must be polynomial in the length of w. But remember that this is a constraint on the length of f(w) as a function of the length of w -- how hard this is to accomplish depends on the way that f(w) depends on w.