
CUUS063 main CUUS063 Goldreich 978 0 521 88473 0 March 31, 2008 18:49
EXERCISES
Exercise 4.5 (a direct proof of Corollary 4.4): Present a direct proof of Corollary 4.4
by using the ideas that underlie the proof of Theorem 4.3. Furthermore, prove that if t
steps of machine M (in the model at hand) can be emulated by g(|M|, t) steps of a cor-
responding universal machine, then Corollary 4.4 holds for any t
2
(n) ≥ g(log n, t
1
(n)).
Guideline: The function f ∈ DTIME(t
1
) is defined exactly as in the proof of The-
orem 4.3, where here D
TIME denotes the time-complexity classes of the model at
hand. When upper-bounding the time complexity of f in this model, let T
M
(n)de-
note the number of steps used in emulating t
1
(n) steps of machine M, and note that
T
M
(n) = g(|M|, t
1
(n)) and that f ∈ DTIME(T
), where T
(n) = max
x∈{0,1}
n
{T
µ(x )
(n)}.
Exercise 4.6 (tightening Corollary 4.4): Prove that, for any reasonable and general
model of computation, any constant ε>0 and any “nice” function t (e.g., either
t(n) = n
c
for any constant c ≥ 1ort(n) = 2
c
n
for any constant c
> 0), it holds that
D
TIME(t) is strictly contained in DTIME(t
1+ε
).
Guideline: Assuming toward the contradiction that DTIME(t) = DTIME( f ◦ t), for
f (k) = k
1+ε
, derive a contradiction to Corollar y 4.4 by proving that for every constant
i it holds that D
TIME(t) = DTIME( f
i
◦ t), where f
i
denotes i iterative applications of
f . Note that proving that D
TIME(t) = DTIME( f ◦ t ) implies that DTIME( f
i−1
◦ t) =
D
TIME( f
i
◦ t) (for every constant i) requires a “padding argument” (i.e., n-bit long
inputs are encoded as m-bit long inputs such that t(m) = ( f
i−1
◦ t)(n), and indeed
n !→ m = (t
−1
◦ f
i−1
◦ t)(n) should be computable in time t(m)).
Exercise 4.7 (constant amortized-time step-counter): A step-counter is an algorithm
that runs for a number of steps that is specified in its input. Actually, such an algorithm
may run for a somewhat larger number of steps but halt after issuing a number of
“signals” as specified in its input, where these
signals are defined as entering (and
leaving) a designated state (of the algorithm). A step-counter may be run in parallel to
another procedure in order to suspend the execution after a predetermined number of
steps (of the other procedure) have elapsed. Show that there exists a simple deterministic
machine that, on input n, halts after issuing n signals while making O(n) steps.
Guideline: A slightly careful implementation of the straightforward algorithm will do,
when coupled with an “amortized” time-complexity analysis.
Exercise 4.8 (a natural set in E \ P): In continuation of the proof of Theorem 4.5,prove
that the set {(M, x, t):
u
(M, x, t) =⊥}is in E \ P, where E
def
=∪
c
DTIME(e
c
) and
e
c
(n) = 2
cn
.
Exercise 4.9 (EXP-completeness): In continuation of Exercise 4.8, prove that every set
in EX P is Karp-reducible to the set {(M, x, t):
u
(M, x, t) =⊥}.
Exercise 4.10: Prove that the two definitions of N
TIME, presented in §4.2.1.3, are related
up to logarithmic factors. Note the importance of the condition that V has linear (rather
than polynomial) time complexity.
Guideline: When emulating a non-deterministic machine by the verification procedure
V , encode the non-deterministic choices in a “witness” string y such that |y| is slightly
larger than the number of steps taken by the original machine. Specifically, having
|y|=O(t log t), where t denotes the number of steps taken by the original machine,
allows for emulating the latter computation in linear time (i.e., linear in |y|).
141