More on the Polynomial-Time Hierarchy 63
configurations of M be encoded as strings over a finite alphabet ∆ in some
reasonable way. We can assume that all configurations reachable from the
start configuration on any input x, |x| = n, are represented as strings in
∆
n
c
.
Now consider the set
D
def
= {α | α is an ∧-configuration of M, |α| = n
c
,andα leads to
acceptance via a Π
k
computationintimeatmostn
c
}.
Membership in D can be determined by a polynomial-time-bounded Π
p
k
machine that just simulates M starting from the configuration α; therefore,
D ∈ Π
p
k
and ∼D ∈ Σ
p
k
.Moreover,M accepts x iff there exists a computation
path leading from the start configuration through only ∨-configurations to
some α ∈ D.
Thus A can be accepted by a nondeterministic polynomial-time-
bounded oracle machine with oracle ∼D that on input x guesses a computa-
tion path from the start configuration of M through only ∨-configurations
to some ∧-configuration α, then consults the oracle to check whether α ∈ D.
( ⊆) For this inclusion, assume that we have a nondeterministic n
c
-
time-bounded oracle machine M with oracle B ∈ Σ
p
k
, and let A = L(M).
We wish to show that A ∈ Σ
p
k+1
.
Build a Σ
k+1
machine N that works as follows. On input x, N will begin
by simulating M on input x, except that every time M wants to query the
oracle on some string y, N nondeterministically guesses the answer that
the oracle would return (that is, whether y ∈ B) and remembers y and the
guessed answer. It continues the simulation until M arrives at an accept
or reject state, which must happen by time n
c
.IfM wants to reject at
that point, N just rejects. If M wants to accept, N has to verify that the
guessed oracle answers were correct.
So far the computation tree of N looks like the computation tree of M,
exceptthatateachoraclequery,N has a nondeterministic branch for the
two possible responses of the oracle. Up to this point N has made only
existential branches. At each leaf there is a process with a list of oracle
queries and guessed responses that need to be verified. The lists may be
different for different computation paths, because later queries may depend
on the responses to earlier queries, but all lists are at most n
c
in length.
Thus each process has a list y
1
,... ,y
m
of oracle queries for which the
guessed response from the oracle was positive and a list z
1
,... ,z
for which
the guessed response was negative. The total combined length of the y
i
and
z
j
concatenated together is at most n
c
, because the machine had to write
them all down on its oracle query tape. It must now verify with a Σ
k+1
computation in polynomial time that y
i
∈ B,1≤ i ≤ m,andz
j
∈ B,
1 ≤ j ≤ .ThatΣ
k+1
computation combined with the Σ
1
computation up
to this point is still a Σ
k+1
computation.