\documentclass{article}
\usepackage{amsmath}
\input{preamble.tex}
\newcommand{\p}{{\rm P}}
\newcommand{\pspace}{{\rm PSPACE}}
\newcommand{\exptime}{{\rm EXPTIME}}
\newcommand{\ppoly}{{\rm P/poly}}
\newcommand{\plog}{{\rm P/log}}
\newcommand{\np}{{\rm NP}}
\newcommand{\sat}{{\rm SAT}}
\newcommand{\good}{{\rm GOOD}}
\newcommand{\true}{{\rm TRUE}}
\newcommand{\false}{{\rm FALSE}}
\newcommand{\conp}{{\rm coNP}}
\begin{document}
\lecture{5}{February 22, 2001}{Dan Spielman}{Adam Winkel}
In this lecture, we will prove a major theorem in Complexity
Theory which states that if NP is contained in P/poly,
then the polynomial hierarchy collapses. Because it is currently
thought that the polynomial hierarchy is incollapsable, this leads
us to believe
that NP problems cannot be solved with polynomial sized circuits.
The proof of the theorem will illustrate some interesting techniques
in Complexity Theory.
%In the original paper \cite{kls}, the same techniques were used
%to show the following results:
%\begin{enumerate}
%\item $\pspace \subseteq \p/poly \implies \pspace = \Sigma_2^P \cap \Pi_2^P$
%\item $\pspace \subseteq \p/log \iff \pspace = \p$
%\item $\exptime \subseteq \pspace/poly \iff \exptime = \pspace$
%\item $\np \subseteq \p/log \iff \p=\np$
%\item $\exptime \subseteq \p/poly \implies \exptime = \Sigma_2^P \implies \p \neq \np$
%\end{enumerate}
Toward the end of the lecture, we will consider some general
results in circuit complexity starting with Claude Shannon's initial
result on the number of hard functions.
\begin{section}{NP and P/poly }\end{section}
First, recall the definition of P/poly :
\begin{eqnarray*}
\mbox{P/poly} = \{ \mbox{ all languages, $L$, where } \exists k>0, A \in \mbox{P}, \mbox{ and a sequence of strings } \\
\{s_n\}_{n \in {\cal N}} \mbox{ such that } |s_n|=O(n^k) \mbox{ and }
w \in L \iff (w,s_{|w|}) \in A \}
\end{eqnarray*}
The $s_n$ strings can be thought of as input-size dependent advice given
to a Turing machine. We will start by assuming that the canonical
NP-complete problem, SAT $\in$ P/poly, and then define what it
means to for a sequence of strings to be a {\em good} sequence of advice
strings for SAT. In turn, we will define the language, GOOD, of
good advice sequences, and then we will show that
$\good \in \conp$. This allows us to construct a
$\Sigma_2 P$ TM that can guess a {\em good} sequence, then verify that the
sequence is {\em good}, and finally use the sequence to decide complete
problems for $\Sigma_3 P$. Therein lies the collapse of PH.
\begin{theorem}[Karp, Lipton, Sipser]If $\np \subset \mbox{P/poly}$ then $\Sigma_3 P \equiv \Sigma_2 P$ (PH collapses)\end{theorem}
Take the $\np$ complete problem $\sat$.
Since $\sat \in \mbox{P/poly}$, then there is some constant $k$,
some polynomial language, $A\in P$, and a sequence of strings $\{s_n\}_{n \in {\cal N}}$ such that $|s_n| < {kn^k}$ and $ w \in SAT \iff (w,s_{|w|}) \in A$. We fix the language $A$ for the rest of this lecture.
\begin{definition} The sequence of strings $(g_1,...,g_l)$ is a {\em good } sequence if
\begin{enumerate}
\item $\forall i, \ |g_i| \leq ki^k$
\item $\forall \phi, \ |\phi|\frac{2^n}{2n}$. There are some more complicated
methods to eliminate the $2$ in the denominator.
\end{proof}
%\begin{thebibliography}{99}
%\bibitem{kls} Richard M. Karp and Richard J. Lipton. Some connections between nonuniform and uniform complexity classes. In {\em Conference Proceedings of the Twelfth Annual ACM Symposium on Theory of Computing}, pages 302-309, Los
% Angeles, California, 28-30 April 1980.
%\end{thebibliography}
\end{document}