10 Chapter 1. Complexity and Approximation
steps are assumed to happen at the beginning of the computation: M starts by
producing a string of 0s and ls of appropriate length by nondeterministic steps.
After this phase all following steps axe deterministic. We define IQI (P(IWl) + 1)
variables
Vq(q,
t), 21F] (p(Iw])+l) 2 variables
vt(c, l, t),
and 2(P(iwl)§ 2 variables
Vh(C,t)
with q E Q, t E (0,... ,p(IwI)},
c E (-p(iwl),...
,p(iwI)}, and/E F. The
interpretation of the variables is the following. The variable
vq(q, ~)
is true iff
M is in state q after step
t, vt(c, l, t)
is true iff the tape at position c contains
the letter l after step t, and
Vh(C,t)
is true iff the head of M is over the cell c
after step t. We want to build a set of clauses such that all clauses can only be
satisfied simultaneously if and only if M accepts the input w. First, we make sure
that the start configuration is defined adequately. Second, we have to make sure
that for each t the Turing machine is in one well defined state, the head has one
well defined position, and each cell contains one well defined letter of F. Third,
we must assure that the configuration after step t is a proper successor of the
configuration after step t - 1. Fourth, we have to state that the final state must
be the accepting state. All conditions are either of the form "after step t exactly
one of the following possibilities is true" or "if A is the case after step t- 1 then B
is the case after step t". For the first type of condition we consider the state of M
after the first step as an example. The clause
vq (qo,
1)V...Vvq
(qn,
1) is satisfiable
if and only if M is in at least one state after the first step. The (n§ 1)n/2 clauses
(~vq(q2,
1)) V
(~vq(qj,
1)) with 0 ~ i ~ j ~ n are only satisfiable simultaneously
if and only if M is in at most one state after the first step; so the 1 + (n + 1)n/2
clauses can only be satisfied together if and only if M is in exactly one state
after step 1. For the second type of condition we only mention that the Boolean
formula "A ~ B" is equivalent to "-~A V B". It is easy to see, how all conditions
of valid computations can be expressed as clauses. Since the sizes of Q and F
are constant it is obvious that there are only polynomially many variables and
that only polynomially many clauses are formulated. So, the reduction can be
computed in polynomial time. Given an assignment ~- that satisfies all clauses
simultaneously we not only know that the Turing machine M accepts the input
w. We know the exact computation of M, too. For problems L E AlP we can
assume that some "proof" for the membership of the input w in L of polynomial
length can be stated such that a deterministic Turing machine can verify this
proof in polynomial time. So, assuming that we use nondeterministic Turing
machines that "guess" a proof of polynomial length nondeterministically and
verify it deterministically in polynomial time implies that - given T - we are
able to reconstruct the proof for the membership of w in L in polynomial time.
For any class C of languages we define co-C as the set of all languages L = (w E
~* I w ~ L} such that L C_ ~* belongs to C. Obviously P = co-/) holds, while
Af:P = co-N/) is widely believed to be false.
We will now introduce another type of Turing machine that can be even more
powerful than the nondeterministic one. We will use the so called oracle Taring
machine to define an infinite number of complexity classes that contain the
classes P and Af:P and put them in a broader context.