Question text is in black, my answers in blue.
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.
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.
Last modified 6 March 2010