Lecture 6: Polynomial-time hierarchy

A visit to the polynomial-time hierarchy

\[P ⊆ NP, coNP ⊆ L^{NP} = Θ_2^P ⊆ P^{NP} = Δ_2^P\]


  1. LexicoSAT is $Δ_2^P$-complete
  2. CircuitSAT is $Δ_2^P$-complete

the set of $φ(x_1, ⋯, x_n)$ s.t. $v(x_n) = ⊤$ in the first (lexicographically) valuation $v$ that satisfies $φ$


evaluate $x_n$ in the following program/circuit:

  x_1 = ∃ Y_1; F_1(Y_1)
  x_2 = ∃ Y_2; F_2(Y_2, x_1)
  x_n = ∃ Y_n; F_n(Y_n, x_1, ⋯, x_{n-1})
\[CircuitSAT ∈ Δ_2 = P^{NP}\]

⟶ you call the SAT oracle $n$ times

BUT: you have to store the intermedite $x_i$ (not the the formulas, they’re part of the input), so it’s not trivially in $L^{NP}$

\[LexicoSAT ∈ Δ_2 = P^{NP}\]
  1. ask: is $φ ∈ SAT$
  2. then, set $x_1 = ⊤$, and is $φ(x_1 ← ⊤) ∈ SAT$
  3. then, set $x_n = ⊤$, and is $φ(x_1 ← ⊤, ⋯, x_{n-1} ← ⊤) ∈ SAT$

But again, you have to recall the $x_i$ ⟶ not easily in $L^{NP}$

CircuitSAT is $Δ_2$-hard

NB: Recall that $∃∀SAT$ is $\underbrace{Σ_2}_{= NP^{NP}}$-complete

Let $L ∈ Δ_2$, $ℳ$ a PTIME det. TM calling SAT (or any other NP-complete problem), write its transition table.

Your $x_i$ are here of the form $x_{t,i}^a$, and

\[x_{t+1, i}^a = ∃ y_1, ⋯ , y_{p(n)}; F^{x^i}(y_1, ⋯, y_{p(n)}, (x_{t, j}^{x^i[j]})_{j, i})\]

LexicoSAT is $Δ_2$-hard

Let’s show that \(CircuitSAT ≼_{\rm L} LexicoSAT\)

Given $S ≝$

  • $x_1 ≝ ∃ Y_1, F_1(Y_1)$
  • $x_n ≝ ∃ Y_n, F_n(Y_n, x_1, ⋯, x_{n-1})$

where the $Y_i$ are all disjoint

$S’$ is the conjunction of

  • $\overline{x_1} ∨ F_1(Y_1)$
  • $\overline{x_n} ∨ F_n(Y_n, x_1, ⋯, x_{n-1})$
  • $(\overline{x_n} ∨ z) ∧ (x_n ∧ \overline{z})$

with the ordering

\[x_1 ≤ ⋯ ≤ x_n ≤ Y_1 ≤ ⋯ ≤ Y_n ≤ z\]
  1. $S’$ is satisifiable (set all the $x_i$ and $z$ to $⊥$ (and everything else as well)).
  2. $v_S : x_1, ⋯, x_n$ in $S$ (when you run the program) can be extended to a satisfying assignment (set $z$ to the same value as $x_n$)
  3. any $v$ for $S’$ is smaller or equal (lexicographically) than $v_S$

    By contradiction: assume that:

    • $v$ satisifies $S’$
    • $v$ agrees with $v_S$ on $x_1, ⋯, x_i$
    • $v > v_S$ on $x_{i+1}$ (the first position where they disagree):

      • $v(x_{i+1}) = ⊤$
      • $v_S(x_{i+1}) = ⊥$

      then it means that $v(F_{i+1}(Y_{i+1}, x_1, ⋯, x_i)) = ⊤$, so that there exists indeed a satisfying assignment for the formula $∃Y_{i+1}, F_{i+1}(Y_{i+1}, x_1, ⋯, x_i)$, and by definition of $v_S$, $x_{i+1}$ has to be set to $⊤$: contradiction.


\[\lbrace φ_1, ⋯, φ_n \mid \text{ such that an even number of } φ_i \text{ are satisifiable.} \rbrace\]


  • $ParitySAT ∈ Δ_2$: you use the SAT oracle $n$ times and remember the result
  • But you also have $ParitySAT ∈ θ_2^P = L^{NP}$: you use the SAT oracle $n$ times and each time, you remember the last bit (parity).

NB: counting how many of these valuations are satisfying ones is also in $θ_2^P = L^{NP}$, since counting can be done in logspace.


  1. ParitySAT is $Θ_2^P$-complete
  2. \[Θ_2^P = L^{NP} = P^{NP}_{\vert \vert} = P^{NP[O(\log n)]}\]
$P^{NP}_{\vert \vert}$:

there is just one call to the oracle, but we call all the questions (prepared in advance) in parallel (that is, we can’t use the answer of one question for another question)


you can only call the oracle $≤ r(n)$ times

$ParitySAT ∈ P^{NP[O(\log(n))]}$: call the following oracle $\log n$ times (dichotomic search):

\[L = \lbrace (φ_1, ⋯, φ_n, k) \mid \text{ there are at least } k \text{ satisifiable formulas} \rbrace ∈ NP\]

($L ∈ NP$: guess the $k$ formulas, call SAT)

Lemma: \(P^{NP[O(\log(n))]} = P^{NP}_{\vert\vert}\)


Let $L ∈ P^{NP[O(\log(n))]}$, $ℳ$ does $p(n)$ queries at most $c \log n$ times.

$ℳ’$ can simulate the behavior of $ℳ$ by building a tree, branching each time $ℳ$ call the oracle instead of calling it as well ⟹ the overall size of the time is polynomial, since $ℳ$ calls the oracle a logarithmic number of times.

Then, $ℳ’$ makes all the calls in parallel, and, as a result, knows which path to follow in the tree.


Let $L ∈ P^{NP}$, recognizes by $ℳ$.

With the same trick as the one used to show $ParitySAT ∈ P^{NP[O(\log(n))]}$, $ℳ’$ computes the numbered of satisfied queries.

\[L = \lbrace (w_1, ⋯, w_{p(n)}, k) \mid \text{there exist } k \text{ satisifiable } w_i \text{ in SAT s.t. the rest of the computation is accepting} \rbrace\]
  • guess which ones are part of the $k$ ones
  • if the computation is accepting (in NP, à la Cook-Levin): check in polynomial time that the $k$ $w_i$ guessed are actually satisifiable.

\[θ_k ≝ L^{Σ_{k-1}} = P^{Σ_{k-1}}_{\vert \vert} = L^{Σ_{k-1}[\log n]}\]

NB: \(NP^{NP[1]} = NP^{NP}\)

indeed: as $NP^{NP}$ reduces to $∃∀SAT ∈ NP^{NP[1]}$ (guess the number of times you call the oracle)

Boolean Hierarchy (over $NP$) = Difference Hierarchy

  • First stage: $NP$ and $coNP$
  • Second one: $B_1$ intersection of languages in $NP$ with languages in $coNP$ (by abuse of notation, denoted by $NP ∩ coNP$) and $coB_1$
  • Third one: $B_2 = B_1 ∪ ⋯ ∪ B_1$ and $coB_2$

Alternation of union and intersection (with complementary).

Leave a comment