\documentstyle[fullpage,11pt]{article} %% MACROS %\newtheorem{theorem}{Theorem} \newcommand{\DS}[1]{{\LARGE{\it [DS: {#1}]}}} %notes to Dan %% NOTATION \newcommand{\paren}[1]{\left({#1}\right)} \newcommand{\Oh}[1]{O\!\paren{#1}} \newcommand{\poly}[1]{{\em poly}\!\paren{#1}} \newcommand{\TM}{\mbox{TM}} \newcommand{\TIME}{\mbox{TIME}} \newcommand{\A}{A} \newcommand{\accept}{{\em accept}} \newcommand{\reject}{{\em reject}} \newcommand{\ppoly}{\mbox{$P/poly$} } \newcommand{\cs}{\mbox{$\cal{C/S}$} } %% FORMATTING \newcommand{\nolineskips}{% \setlength{\parskip}{0pt}% \setlength{\parsep}{0pt}% \setlength{\topsep}{0pt}% \setlength{\partopsep}{0pt}% \setlength{\itemsep}{0pt}} \input{preamble.tex} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} \lecture{5}{February 24, 1998}{Dan Spielman}{David Ratajczak} \section{Introduction} In this lecture we will prove a relationship between the polynomial time hierarchy and another important class we will study: $\ppoly$. First, we will define the class $\ppoly$. We then introduce the notion of circuit complexity and show its relation to $\ppoly$. Finally, we prove the main theorem stating that if NP can be decided by a sequence of polynomial size circuits then the polynomial hierarchy collapses to a very low level. \section{\ppoly and Circuit Complexity} We begin by defining the $\cs$ notation.\footnote{This definition was not covered during this lecture, but touched upon briefly in the previous lecture.} \begin{definition} Let $\cal{C}$ be a class of languages and $\cal{S}$ be a family of sequences of strings. Then define $\cs = \{L | \,\exists A \in \cal{C}$ and $s \in \cal{S}$ s.t.\ $x \in L \Leftrightarrow (x,s_{|x|}) \in A \}$. \end{definition} In other words, \cs is the complexity class computable by Turing machines of complexity class $\cal{C}$, but which can use some appropriately sized {\em advice string} dependent only on the length of the input to aid in computation. Notice that this is more restrictive than being able to use a different advice string for every input. In this lecture, we will restrict our attention to one example of the \cs notation: the class $\ppoly$. \begin{definition} $\ppoly = \{L |\, \exists A \in P$, a sequence of strings $\{s_i\}_{i\in \bf{N}}$, and a constant $k$ s.t.\ $|s_i|=\Oh{i^k}$ and $x \in L \Leftrightarrow (x,s_{|x|}) \in A\}$. \end{definition} This definition follows directly from that of the \cs notation, where $\cal{C} = P$ and our ``advice string'' must be of length polynomial in the length of the input string. Notice that \ppoly is allowing some non-uniformity in its languages. Every language in \ppoly has some ``magic string'' for every input length that simplifies the computation of the rest of the strings. We would like to know if any interesting classes we already know about have this property. For instance, is $\ppoly=NP$? We will soon answer this question, but first we introduce the notion of circuit complexity and its relation to $\ppoly$. \begin{definition} Given a boolean function $$f:\{0,1\}^a\longrightarrow\{0,1\}^b,$$ the {\bf circuit complexity} of $f$, written as $C_f$, is the least number $m$ such that there exists a circuit with $m$ wires that computes $f$ \end{definition} We point out here that our circuit is fixed in size and must be finite. We now define the circuit complexity class analogous to $P$. \begin{definition} A language $L$ has {\bf polynomial circuit complexity} if there exists a constant $k$ such that for all $n$, the function $f_n$ that is $1$ if and only if its input (of length $n$) is in $L$, has circuit complexity $\Oh{n^k}$. \end{definition} We now reveal the somewhat non-intuitive relationship between polynomial circuit complexity and \ppoly. \begin{proposition} The complexity class \ppoly is equivalent to the class of languages with polynomial circuit complexity. In other words $L\in \ppoly$ if and only if $L$ has polynomial circuit complexity. \end{proposition} \begin{proof} $\Leftarrow$: If $L$ has polynomial circuit complexity, then for each $n$, there is a circuit of size polynomial in $n$ that decides membership in $L$ for all words of length $n$. We can encode this circuit in a string, $s_n$, also of size polynomial in $n$. Now we can construct a polynomial time TM that takes a string $x$ and $s_{|x|}$ and simulates the circuit described by $s_{|x|}$ running on input $x$. $\Rightarrow$: Assume $L \in \ppoly$. If the machine $M$ that decides $L$ runs in $\TIME(\Oh{n^k})$, then we can construct a circuit $C_n$ of size at most $\Oh{n^{2k}}$ gates that simulates $M$ running on input strings of length $n$ (as in Cook's construction). Hardwired in each machine will be the advice string $s_n$, which is constant for each input size $n$ and which grows polynomially in $n$. \end{proof} \section{$NP$ and $\ppoly$} We will now state the main theorem of this lecture. \begin{theorem}[Karp-Lipton + Sipser]\label{theorem1} If $NP \subseteq \ppoly$ then $PH \subseteq \Sigma_2^P$. Thus the polynomial hierarchy would ``collapse.'' \end{theorem} To begin a proof of this theorem, we can first note that $NP \subseteq \ppoly$ iff $SAT \in \ppoly$. Therefore $NP \subseteq \ppoly$ is equivalent to: \{$\exists A \in P$, a constant $k$, and a sequence $\{g_i\}_{i\in\bf{N}}$ s.t.\ $|g_i| = \Oh{(ki)^k}$ and $\phi \in SAT \Leftrightarrow (\phi, g{|\phi|}) \in A$\}. So we are now assuming that $NP\subseteq \ppoly$ and that we can obtain $A\in P$ with the above property. For the remaining part of this section we will let $M$ be the polynomial-time Turing machine that decides $A$. \begin{definition} We define a sequence of strings $\alpha$ to be {\em good} if it is of the form $\alpha=(\alpha_1, \ldots, \alpha_l)$ s.t.\ $\forall \phi:|\phi| \leq l, \phi \in SAT \Leftrightarrow (\phi,\alpha_{|\phi|})\in A$ and $|\alpha_i| \leq (ki)^k$. $GOOD$ is the language of all string sequences that are {\em good}. \end{definition} Obviously $\{g_1,g_2,\dots,g_l\}$ as defined above would be a {\em good} sequence, though it is not necessarily unique. For the proof of Theorem \ref{theorem1} we will need to show how to decide $GOOD$ efficiently. As a warm-up, we will first show that $GOOD\in\Pi_2^P$. \begin{lemma} $GOOD \in \Pi_2^P$.\end{lemma} \begin{proof}Assume we are given some sequence $\alpha$. Then we can construct an ATM that performs the following steps:\\ On input $(a_1,\dots,a_l)$ \begin{enumerate} \item{Use $\forall$ to guess all strings $\phi$ s.t.\ $|\phi| \leq l$.} \item{Run $M$ on the input $(\phi,\alpha_{|\phi|})$.} \item{If $M$ accepts then existentially ($\exists$) guess a witness to verify that $\phi\in SAT$. If there is a witness, we accept, if not we reject.} \item{If $M$ rejects then universally ($\forall$) guess all witnesses to verify that $\phi\notin SAT$. If any witness shows that $\phi\in SAT$ then reject. Otherwise accept.} \end{enumerate} The language accepted by this ATM is clearly in $\Pi_2^P$. Since this ATM directly verifies the condition defined above for a sequence to be {\em good}, we have $GOOD\in \Pi_2^P$. \end{proof} Before we can prove Theorem \ref{theorem1}, we will need to prove a slightly stronger result than the one above. We will require one additional concept, {\em self-reducibility}, to accomplish this. \section{Self-reducibility} \begin{definition} We define a language $L$ to be {\em self-reducible} if there exists an oracle polynomial time TM $M^{?}$ that on inputs of length $n$ only asks its oracle questions of length less than $n$ and that accepts a string $w$ iff $w \in L$. In other words a self-reducible language has a well-formed recursive definition. \end{definition} \begin{proposition} $SAT$ is self-reducible. \end{proposition} \begin{proof} To prove this, we note that any instance of $SAT$ is equivalent to deciding the truth of the statement $$\exists x_1 \exists x_2 \dots \exists x_n: \phi(x_1, x_2,\dots, x_n)$$ for a given boolean expression $\phi$. We now fix $x_1$ to be $0$ and $1$ respectively resulting in a union of two smaller expressions $$\{\exists x_2\ldots\exists x_n:\phi(1, x_2, \dots, x_n)\}\cup\{\exists x_2\dots \exists x_n:\phi(0, x_2, \dots, x_n)\}.$$ This expression is equivalent to the first but is composed of two expressions of smaller size which can be fed to the recursive oracle. After receiving the oracle's answer for the two subexpressions, it is easy to accept if one of the queries returns an accept. We reject otherwise. \end{proof} Using the self-reducibility of $SAT$, we can now prove a stronger result for $GOOD$ than we proved above. \begin{proposition} $GOOD \in coNP=\Pi_1^P$.\end{proposition} \begin{proof} The proof involves using self-reducibility to replace the use of $\exists$ in the weaker proof above. Specifically, given a sequence $\alpha$, we decide whether $\alpha\in GOOD$ as follows: \begin{enumerate} \item{Use $\forall$ to pick all strings $\phi$ s.t.\ $|\phi| \leq l$.} \item{Run $M$ on input $(\phi,\alpha_{|\phi|})$. If $|\phi|=1$ then we accept or reject based on whether or not $M$'s answer agrees with $\phi$ (which must be $0$ or $1$). Otherwise we continue.}\label{bs1} \item{If $M$ rejects, then we proceed as we did previously and universally ($\forall$) check all witnesses to be sure that none of them imply that $\phi\in SAT$.} \item{If $M$ accepts, then we use the self-reducibility of $SAT$ to generate $2$ smaller subexpressions $\phi_1$ and $\phi_2$. We use $\forall$ to recursively call line \ref{bs1} with $(\phi_1,\alpha_{|\phi_1|})$ and $(\phi_2,\alpha_{|\phi_2|})$ as inputs. And then accept if either of them accept.} \end{enumerate} Since we only use $\forall$ branching we can agglutinate all universal quantifiers and see that the machine described above starts in a $\forall$ state and never switches to a $\exists$ state. Therefore $GOOD\in\Pi_1^P=co-NP$. \end{proof} \section{Proving the theorem} We can now prove Theorem \ref{theorem1}. First, we restate the theorem as follows: \begin{theorem} If $NP \subseteq \ppoly$ then $\Sigma_3^P \subseteq \Sigma_2^P$. This implies that the polynomial hierarchy would collapse to $\Sigma_2^P$. \end{theorem} \begin{proof} Consider an instance of $QBF_3$, which we will remember is complete in $\Sigma_3^P$. The instance will have the form $\exists x \forall y \exists z: \phi(x,y,z)$. If we assume $NP \subseteq \ppoly$ then we can solve the instance of $QBF_3$ in $\Sigma_2^P$ by the following steps: \begin{enumerate} \item{Use $\exists$ to guess each possible advice sequence $\alpha$.} \item{Use $\exists$ to guess each $x$.} \item{Use $\forall$ to guess every $y$.} \item{Test if $\alpha\in GOOD$.} \item{If so, use $\alpha$ to decide $(\exists z: \phi(x,y,z), \alpha_{|\exists z: \phi(x,y,z)|}) \in A$.} \end{enumerate} As we showed above, $GOOD \in co-NP$. We can therefore decide whether $\alpha$ is good using only $\forall$. Furthermore, $(\exists z: \phi(x,y,z), \alpha_{|\exists z: \phi(x,y,z)|}) \in A$ can be decided in $P$. Therefore, an ATM requires only one alternation starting from $\exists$ to decide an instance of $QBF_3$, showing $\Sigma_3^P \subseteq \Sigma_2^P$. This completes the proof of Theorem \ref{theorem1}. \end{proof} \end{document}