\documentstyle{article}  % [12pt, times, doublespace]
%\usepackage{amsmath, amssymb}
\input{preamble.tex}

\begin{document}

\lecture{4}{February 10, 2000}{Dan Spielman}{David Manz}

\section{Review}

We are discussing the definitions of the polynomial hierarchy.  The first 
thing to do in this lecture is to show that Definition 3 is equivalent to 
Definition 1.  To review, the definitions are:

\begin{description}

\item[Definition 1]

$\Sigma_{k}P = $ a language L that is recognized by an ATM, which begins 
in an $\exists$ state and alternates at most $k-1$ times.

\item[Definition 3]

$\Sigma_{k}P = NP^{TQBF_{k-1}^{\forall}} = NP^{TQBF_{k-1}^{\exists}}$

\end{description}

\section{Equivalence of Definitions}

{\bf Terminology Note:}\\
$QBF$ is a set of things, $TQBF$ is the language of true $QBF$s.\\
$QBF_{k}^{\exists}$ is a set of things, $TQBF_{k}^{\exists}$ is the language of true $QBF_{k}^{\exists}$s.

\begin{theorem}Definition 1 $\subseteq$ Definition 3\end{theorem}

%We gave $TQBF_{k}^{\exists(\forall)}$ complete for $\Sigma_{k}P$ ($\Pi_{k}P$)

\begin{claim}
$TQBF_{k}^{\exists} \subseteq NP^{TQBF_{k-1}^{\forall}}$
\end{claim}

\begin{proof}
Consider a $QBF_{k}^{\exists}:  \exists x_{1} \forall x_{2} \ldots \exists 
x_{k}  A(x_{1}, x_{2}, \ldots x_{k})$.  The NP machine can guess an 
assignment for $x_{1}$ and accept if $A(\underline{x_{1}}, x_{2}, \ldots x_{k})
\in TQBF_{k-1}^{\forall}$, which is determined by a call to the 
oracle.
\end{proof}

\begin{theorem}Definition 1 $\supseteq$ Definition 3\end{theorem}

The problem is that a NOTM $M^{?}$ can ask the oracle many questions.  We
need to condense this down to just one question.  First, we will prove the 
special case, $NP^{TQBF_{1}^{\forall}} \subseteq \Sigma_{2}P$ (this is co-SAT).

\begin{claim}We can combine instances of calls to a $TQBF_{1}^{\forall}$ 
oracle.\end{claim}

We want to know if $\forall \overline{x} \Phi(x)$ is true ($\Phi(x)$ is some 
boolean formula).  However, we also want to find out if $\Theta(y)$ is true.
We can ask both as:
$\forall \overline{x}, \overline{y} (\Phi(x) \bigwedge \Theta(y))$.  This is
not enough to prove the theorem.  There are two problems with this approach:
\begin{enumerate}
\item {\bf Problem:} It could be that $M^{?}$ accepts {\it iff} first is true and second
is false  ($\neg \forall y \Theta(y) \rightarrow \exists y \neg \Theta(y)$)\\
{\bf Solution:}  We want to know $\forall x \Phi(x) \bigwedge \exists y (\neg 
\Theta(y))$.  The NP machine can guess y.

\item {\bf Problem:} We don't know the questions in advance, and one can depend on another.\\
{\bf Solution:} Guess what all questions to the oracle will be, and guess their
answers;  simulate the original machine, reject if you guessed the wrong 
questions, else use your answers guessed.  At the end, we need to verify the
answers and accept if they were correct and the simulated machine accepted.
So, we get a polynomial number of questions and answers to verify.  We need to
verify
$\forall x \Phi_{1}(x) \bigwedge
\forall x \Phi_{3}(x) \bigwedge \ldots
\forall x \Phi_{k}(x) \bigwedge
\neg (\forall x_{2} \Theta(x)) \bigwedge \ldots
\neg (\forall x_{j} \Theta)$
\end{enumerate}.  The formulae subject to the universal quantifiers can be 
lumped together with ANDs, and a negated universal formula translates into
the equivalent existential expression with the formula negated (as described
in the solution to the preceding problem).

Now for the general case.
\begin{claim}$NP^{TQBF_{k-1}^{\forall}} \subseteq \Sigma_{k} P$.\end{claim}
We did $k=2$.  In the general case, the first step of combining ``yes'' 
instances is fine, so we just have to get answers to $QBF_{k-1}^{\exists}$.  
We will use the NP OTM to guess first quantifier, and then the rest gets 
globbed into the one question--we do a lot of pre-guessing and then reject 
where guesses were incorrect.

\section{Circuit Complexity}

\begin{definition}
For a function $f:\{0,1\}^{n} \rightarrow \{0,1\}^{b}$ the circuit complexity
of $f$, $C(f)$, is the least $m$ such that there exists a circuit (boolean,
binary, $\bigvee$, $\bigwedge$, $\neg$) with $m$ gates that computes $f$.
\end{definition}

%\begin{definition}
%A language L has polynomial circuit complexity if there exists $k$ such
%that the functions
%
%$f_{n}: \{0, 1\}^{n} \rightarrow \{0, 1\}$\\
%$f_{n}(x) = 
%   \left\{ \begin{array}{l} 
%	1 {\rm if} |x| = n {\rm and} x \in L\\
%	0 {\rm otherwise}
%\end{array} \right.$\\
%$C(f_{n}) = O(n^{k})$
%\end{definition}

\begin{definition}
A language L has polynomial circuit complexity if there exists $k$ such
that the functions 
  $f_{n}: \{0, 1\}^{n} \rightarrow \{0, 1\}$ such that
\[f_{n}(x) = 
   \left\{ \begin{array}{l} 
        \hbox{1  $|x| = n$  and $x \in L$}\\
        \hbox{0  otherwise}
\end{array} \right. 
\]\\
\[C(f_{n}) = O(n^{k}) 
\]
\end{definition}


\begin{theorem}(Karp-Lipton-Sipser)\\
If an NP-complete language has polynomial circuits, then $\Sigma_{2}P = \Pi_{2}P$.\end{theorem}

\begin{definition}$L \in P/poly$ if there exists a constant $k > 0$ and
an infinite sequence of strings $\{S_{i}\}_{i \in N}$ and $A \in P$
and $|S_{i}| = O(i^{k})$ such that $w \in L \leftrightarrow (w, S_{|w|})
\in A$. ($S_{i}$ is an ``advice string'')\end{definition}

\begin{proposition}
$L \in P/poly \leftrightarrow$ P has polynomial circuit complexity.
\end{proposition}

\begin{proof}$\leftarrow$\\
Let $S_{i}$ be an encoding of a circuit that computes $f_{n}$ of size
$O(n^{k})$ and $A = \{(w, S)$ such that the circuit encoded by $S$ accepts
string $w$\}.\end{proof}

\begin{proof}$\rightarrow$\\
Consider M that accepts A.  Consider the computation tableau of M accepting
A, convert it into a circuit (a different circuit for each different size
input), and hardwire in the advice string, S.\end{proof}

\begin{theorem}
If $NP \subseteq P/poly$, then $\Sigma_{2} P = \Pi_{2} P$.
\end{theorem}

\begin{proof}
$NP \subseteq P/poly \rightarrow SAT \subseteq P/poly \rightarrow
\exists k, A \in P, \{S_{n}\}_{n \in N}$ such that $|S_{n}|
\leq (kn)^{k}$ and $w \in SAT \leftrightarrow (w, S_{|w|}) \in A$.
\end{proof}

\begin{definition}
Let $(g_{1}, \ldots g_{l})$ be a sequence of strings.
$(g_{1}, \ldots g_{l})$ is \underline{good} if:\\
\begin{enumerate}

\item $|g_{i}| \leq (ki)^{k}$
\item $\forall w: |w| \leq l,\\
	w \in SAT$ {\rm iff} $(w, g_{w}) \in A$

\end{enumerate}
\end{definition}

\section{For Next Time}

Define $GOOD =$ the language of {\it good} strings.

What is the complexity of $GOOD$?

$GOOD \in \Pi_{1} P = co\-NP$

First, prove $GOOD \in \Pi_{2} P$  (easy)

\end{document}


