%Proof Complexity Scribe Notes template

% SEE THE "FOR THE SCRIBE SECTION BELOW"

\ifx\CompleteCourse\relax
\ClassScribeSetupA
\else
\documentclass[11pt]{article}
\usepackage{latexsym}
\usepackage{amssymb}

\newtheorem{theorem}{Theorem}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{homework}{Homework}
\newenvironment{definition}{\begin{trivlist}\item[]{\bf Definition}\ }%
{\end{trivlist}}
\newenvironment{fact}{\begin{trivlist}\item[]{\bf Fact}\ }%
{\end{trivlist}}
\newenvironment{example}{\begin{trivlist}\item[]{\bf Example}\ }%
{\end{trivlist}}
\newenvironment{proof}{\begin{trivlist}\item[]{\bf Proof}\ }%
{\end{trivlist}}
\newenvironment{claim}{\begin{trivlist}\item[]{\bf Claim}\ }%
{\end{trivlist}}
\newenvironment{proof-complexity}{\begin{trivlist}\item[]{\bf Proof Complexity}\ }%
{\end{trivlist}}
% Make the page large
\addtolength{\textwidth}{1.50in}
\addtolength{\textheight}{1.00in}
\addtolength{\evensidemargin}{-0.75in}
\addtolength{\oddsidemargin}{-0.75in}
\addtolength{\topmargin}{-.50in}

% \vdashsub{X}  makes a turnstyle with subscript "X"
% \vdashsup{X}  makes a turnstyle with superscript "X"

\newdimen\srbdimenA
\newcommand{\vdashsupsub}[2]{ \mathop{
  \setbox251 = \hbox{$\scriptstyle #1$}
  \setbox252 = \hbox{$\scriptstyle #2$}
  \ifdim \wd251<\wd252 \srbdimenA = \wd252 \else \srbdimenA = \wd251 \fi
  \setbox255 = \hbox {${\srbAvdash \vphantom( \kern -\srbdimenA \kern +.05em}
                  ^{\hbox to\srbdimenA{\hfill \box251\hfill}}
                  _{\hbox to\srbdimenA{\hfill \box252\hfill}}$}
  \box255 \kern .05em}}
\newcommand{\srbAvdash}{\hbox{ \vrule height1.4ex width0.02em
                                \dimen255 = \srbdimenA
                                \advance\dimen255 by 0.1em
                              \vbox{\hrule width\srbdimenA height0.02em
                                    \kern .65ex  }}}
\newcommand{\vdashsup}[1]{\vdashsupsub{{#1}}{\mbox{~}}}
\newcommand{\vdashsub}[1]{\vdashsupsub{\mbox{~}}{#1}}
\fi

%   FOR THE SCRIBE: CUSTOMIZE THE ENTRIES BELOW:
%   Fill in the following information particular to these scribe notes:

\def\scribeone{Bryant Forsgren}    % Who is the scribe?
\def\classdate{11 February 2002} % Date of the class
\def\classnumber{8}     % Is this the first, second, ...?

% Here are some commands that stay the same for the whole class.

\def\classinstructor{Sam Buss}
\def\classtitle{Propositional Proof Complexity}
\def\doctitle{\textup{Math 267a - Propositional Proof Complexity}}
\def\classid{\textup{Lecture \#\classnumber: \classdate}}

%   Put your macros for these scribe notes HERE
%  It is best to use as few as possible.
%  environments for "theorem", "corollary", "lemma", "fact" "definition"
%	"homework", "proof", "example", "proposition"  
%	are already defined above.

\def\Bigwedge{\mathop{\bigwedge\!\!\!\!\!\bigwedge}}
\def\Bigvee{\mathop{\bigvee\!\!\!\!\!\bigvee}}

\newenvironment{question}{\begin{trivlist}\item[]{\bf Open Question}\ }%
{\end{trivlist}}
\newenvironment{encoding}{\begin{trivlist}\item[]{\bf Encoding}\ }%
{\end{trivlist}}
\newenvironment{algorithm}{\begin{trivlist}\item[]{\bf Algorithm}\ }%
{\end{trivlist}}

% Start the document
\makeatletter \def\rddots{\mathinner{\mkern1mu\raise\p@ \vbox{\kern7\p@\hbox{.}}\mkern2mu \raise4\p@\hbox{.}\mkern2mu\raise7\p@\hbox{.}\mkern1mu}} \makeatother


\ifx\CompleteCourse\relax
\ClassScribeSetupB
\else
\def\makeatletter{\catcode`\@=11\relax}
\def\makeatother{\catcode`\@=12\relax}
\makeatletter
\def\ps@scribeheadings{\let\@mkboth\@gobbletwo
\def\@oddhead{\sl\doctitle \hfill \classid}
\def\@oddfoot{\hfil \rm \thepage \hfil}\def\@evenhead{\@oddhead}%
\def\@evenfoot{\@oddfoot}\def\sectionmark##1{}\def\subsectionmark##1{}}
\makeatother
\pagestyle{scribeheadings}
\begin{document}
\bibliographystyle{siam}
\fi

\begin{center}
\Large\bf\doctitle\\[1em]
\Large\bf\classid\\[1em]
{\large\bf Lecturer: \classinstructor}\\[.5em]
{\large\bf Scribe Notes by: \scribeone}
\end{center}

\vspace*{.4in}

% HERE IS WHERE YOUR SCRIBE NOTES SHOULD START
%  DELETE ALL OF ROB'S TEXT AND ENTER YOUR OWN.
\section{Last Time}
In Lecture 7 we proved the ``strong'' Pigeon Hole Principle ($PHP_n^{n+1}$)
by giving a resolution refutation of its negation.  The refutation was
tree-like and had size $2^{O(n\log{n})}$.  We claim without proof that
a non-tree-like refutation of size $2^{O(n)}$ exists.
Today our goal is to prove exponential lower bounds ($2^{\Omega(n)}$) on the
size of any refutation of the $\neg PHP_n^{n+1}$ clauses.

\section{Views of Resolution Refutations}

\subsection{Resolution Proof as a Decision dag}
Any resolution proof starts with a set of initial clauses
$C_1, C_2, \ldots C_k$, and ends with the empty clause $\emptyset$.  Clearly
all of the variables need to be eliminated to reach this conclusion.  For
example, the variable $x$ can be eliminated from two clauses of the
form $D \cup \{x\}$ and $E \cup \{\overline{x}\}$ to derive $D \cup E$.
In particular, there exists some variable $y$ such that the empty clause
$\emptyset$ is derived from $\{y\}$ and $\{\overline{y}\}$.  We
can view this pictorially as follows:

\[
C_1 \qquad \ldots \qquad C_k
\]
\[
\ddots \quad \vdots \quad \rddots
\]
\[
\frac{D \cup \{x\} \quad E \cup \{\overline{x}\}}{D \cup E}
\]
\[
\ddots \quad \vdots \quad \rddots
\]
\[
\frac{\{y\} \ \{\overline{y}\}}{\emptyset}
\]

Given any such refutation and a truth assignment $\tau$, it is clear that
there exists an initial clause $C_i$ such that $\tau$ falsifies $C_i$.  We
wish to use the refutation as a decision dag to find such a $C_i$.  We start
with $\emptyset$, and work toward the initial clauses, making a decision at
each clause we encounter.  Suppose we are at the clause $D \cup E$ in the
diagram.  We do the following:

\begin{verse}
\textbf{If} $\tau (x) = \top$ \\
\setlength{\parindent}{5pt}
go to $E \cup \{\overline{x}\}$ \\
\setlength{\parindent}{-17pt}
\textbf{Else} \\
\setlength{\parindent}{5pt}
go to $D \cup \{x\}$ \\
\end{verse}

Our invariant is the following: we are always at a clause $C$ which is
falsified by $\tau$.  Furthermore, we are guaranteed to eventually reach one
of the initial clauses $C_i$.  By our easily verified invariant, $C_i$ is an
initial clause which is falsified by $\tau$.

\subsection{Resolution Proof as Guiding a Game}
The game is played between a Prover and an Adversary .  The Prover wishes to
find a clause that is false, and the adversary wishes to prevent this from
happening. A round of the game is played as follows:

\begin{enumerate}
\item Prover asks a query ``$y$?''.
\item Adversary answers {\em True} ($\top$) or {\em False} ($\bot$).
\item Prover remembers the answer (but is allowed to forget later).
\end{enumerate}

\begin{claim} There is an exact correspondence between resolution proofs
and winning strategies for the Prover.

This is true because at any particular point in the game,
the Prover and Adversary are at some clause in the refutation.  This clause
contains exactly those literals $\overline{y}$ such that the Prover knows
$y$ holds.
\end{claim}

\section{Exponential Lower Bounds on Refutation Proofs of the Pigeon Hole Principle}

\subsection{The ``weak'' Pigeon Hole Principle}

We now define the ``weak'' Pigeon Hole Principle.  Intuitively, it states
that
\[
\forall m > n \, \nexists f:[m] \stackrel{1-1}{\rightarrow} [n]
\]
over the natural numbers.

\begin{definition}
Let $m>n$; $m,n \in \mathbb{N}$
\[
PHP_n^m:  \Bigwedge\limits_{i=1}^{m} \Bigvee\limits_{j=1}^{n} P_{i,j} \rightarrow \Bigvee\limits_{i=1}^{m-1} \Bigvee\limits_{j=i+1}^{m} \Bigvee\limits_{k=1}^{n} ( P_{i,k} \wedge P_{j,k} )
\]
The clauses of $\neg PHP_n^m$ are as follows:
\[
\begin{array}{ll}
\{P_{i,1}, \ldots , P_{i,n}\} & \textrm{for } i = 1, \ldots , m \\
\\
\{\overline{P_{i,k}}, \overline{P_{j,k}}\} & \textrm{for } 1 \leq i < j \leq m, 1 \leq k \leq n
\end{array}
\]
Note that it is often easier to prove $PHP_n^m$ for $m >> n$, than for $m = n+1$.  
\end{definition}

\begin{definition} The {\em width} of a refutation $R$ is
$\max \{|C| : C \textrm{ is a clause in } R\}$.
\end{definition}

Note that the refutation of $\neg PHP_n^{n+1}$ from the previous lecture
had width $O(n)$.

\begin{theorem}[Dantchev 2002]
Let $m > n >> 0$.  Then any resolution refutation of $\neg PHP_n^m$ of width
$\leq \frac{n^2}{32}$ has size $\geq 2^{\frac{n}{8}}$ (where size is
understood to mean the number of clauses in the proof).
\end{theorem}

\begin{proof}
Suppose we have a refutation $R$ of width $\leq \frac{n^2}{32}$
and size $< 2^{\frac{n}{8}}$, for ``large enough'' $n$.
Let $H_1 = \{1, \ldots , \lfloor \frac{n}{2} \rfloor\}$,
$H_2 = \{\lfloor \frac{n}{2}\rfloor + 1, \ldots , n\}$.  Now fix a $\pi$ which
maps each pigeon $i$ to either $H_1$ or $H_2$.  Denote this by
$i \in H_{\pi (i)}$.

\begin{definition} Pigeon $i$ is {\em busy} if either:
\begin{itemize}
\item[(1)] The Prover knows $P_{i,j} = \top$ for some $j \in H_{\pi (i)}$.
(call this case busy$_1$)
\item[(2)] The Prover knows $P_{i,j} = \bot$ for $\geq \frac{n}{4}$ many
$j \in H_{\pi (i)}$. (call this case busy$_2$)
\end{itemize}
\end{definition}

As described above, the Prover views $R$ as a decision dag and chooses the
queries accordingly.  When the Prover queries  a variable $P_{i,j}$, the
Adversary responds as follows:
\begin{itemize}
\item[(1)] If $j \notin H_{\pi (i)}$, Adversary answers ``$\bot$''.
\item[(2)] If $j \in H_{\pi (i)}$ and $i$ is not busy, Adversary answers
``$\bot$''.
\item[(3)] Otherwise ($j \in H_{\pi (i)}$ and $i$ is busy), the Adversary
chooses an unassigned hole $k \in H_{\pi (i)}$ for which $P_{i,k}$ is not
known and  assigns pigeon $i$ to that hole.  The Adversary then answers
accordingly, and remembers this assignment until (if ever) pigeon $i$ becomes
unbusy.
\end{itemize}

\begin{claim} The Adversary can keep going as long as there are
$< \frac{n}{4}$ busy pigeons.
\end{claim}

The game stops when there are $\geq \frac{n}{4}$ busy pigeons at some clause
$C_{\pi}$.  By assumption, $C_{\pi}$ has width $\leq \frac{n^2}{32}$ and has 
$\frac{n}{4}$ busy pigeons.

Notice that each pigeon of type busy$_2$ contributes $\frac{n}{4}$ literals
into $C_{\pi}$.  Suppose $C_{\pi}$ has $> \frac{n}{8}$ pigeons which are
busy$_2$.  Then $C_{\pi}$ has width $> \frac{n^2}{32}$ which is a
contradiction.  Therefore, at most $\frac{n}{8}$ of the $\frac{n}{4}$ busy
pigeons can be busy$_2$.

So at least $\frac{n}{8}$ $i$'s in $C_{\pi}$ are of type busy$_1$. In other
words, for at least $\frac{n}{8}$ $i$'s there exists a $j \in H_{\pi(i)}$ such
that $\overline{P_{i,j}} \in C_{\pi}$.  We wish to address the following
question: ``For how many $\pi$'s can {\em this} clause be $C_{\pi}$?''  But
this is only possible for $\leq 2^{(m - \frac{n}{8})}$ many $\pi$'s. So there
are $\geq 2^{\frac{n}{8}}$ distinct $C_{\pi}$'s, contradicting the assumption
that size $< 2^{\frac{n}{8}}$.

\end{proof}

\subsection{The ``strong'' Pigeon Hole Principle}

\begin{definition} A {\em restriction} is a partial truth assignment that maps
some variables to $\{ \top, \bot \}$, leaving other variables unassigned
($*$).
A restriction can be expressed in the following way:
\[
\rho(x) = \left\{ \begin{array}{cl}
	\top & \textrm{if } Cond_A(x) \\
	\bot & \textrm{if } Cond_B(x) \\
	\textrm{$*$} & \textrm{if } Cond_C(x)
	\end{array} \right.
\]
Where each $Cond_i$ is an arbitrary condition.

\end{definition}

\begin{definition} If $\Sigma$ is a set of clauses,
$\Sigma_{\upharpoonright \rho}$ is the set of clauses constructed as follows:
\begin{verse}

\setlength{\parindent}{5pt}
\textbf{Foreach} $C = \{x_1, \ldots, x_k \} \in \Sigma$ \\
	\textbf{If} $\exists i$ such that $\rho (x_i) = \top$ \\
\setlength{\parindent}{20pt}
	 discard $C$ \\
\setlength{\parindent}{5pt}
	\textbf{Else} \\
\setlength{\parindent}{20pt}
	put $\{ x_i : \rho (x_i) = * \}$ into $\Sigma_{\upharpoonright \rho}$

\end{verse}

\end{definition}

\begin{theorem}
If $R$ is a refutation of $\Sigma$, then $R_{\upharpoonright \rho}$ is a
refutation of $\Sigma_{\upharpoonright \rho}$ (to be precise, it is a
resolution and subsumption refutation).
\end{theorem}

What this means is that size and width do not increase under restrictions.

\begin{theorem}
For any $\alpha \in (0, \frac{n}{8})$, any refutation of
$\Sigma = \neg PHP_n^{n+1}$ has size $\geq 2^{\epsilon n}$ where
$\epsilon = \frac{1}{8} - \alpha$ (for large enough $n$).
\end{theorem}

\begin{proof}
Assume there is a refutation $R$ of size $< 2^{\epsilon n}$.  We construct a
restriction $\rho$ as follows:

\begin{verse}

Fix $\beta \in (0,1)$ \\
\setlength{\parindent}{5pt}
 (note that $\alpha$ and $\beta$ satisfy this relationship:
	$\beta =1-8 \alpha$) \\
\setlength{\parindent}{-17pt}
\textbf{Foreach} pigeon $i$ \\
\setlength{\parindent}{5pt}
pick $i$ with probability $1 - \beta$ \\
\textbf{If} pigeon $i$ is picked \\
\setlength{\parindent}{20pt}
map it to a unique, randomly selected hole $j_i$ \\
set $\rho (P_{i,j_i}) = \top$ \\
\textbf{Foreach} $k \neq j_i$ \\
\setlength{\parindent}{30pt}
set $\rho (P_{i,k}) = \bot$ \\
\setlength{\parindent}{20pt}
\textbf{Foreach} $k \neq i$ \\
\setlength{\parindent}{30pt}
set $\rho (P_{k,j_i}) = \bot$

\end{verse}

We apply this restriction to $\Sigma$, yielding
$\Sigma_{\upharpoonright \rho}$.  The expected number of holes in
$\Sigma_{\upharpoonright \rho}$ is
\[ n - (1 - \beta)(n + 1) = \beta n - 1 + \beta \]
So with some fixed non-zero probability, the
number of remaining holes is at least $\beta n$.
We also apply $\rho$ to the refutation $R$ which yields
$R_{\upharpoonright \rho}$, a refutation of
$\neg PHP_{\, \lceil \beta n \rceil}^{\lceil \beta n \rceil + 1}$
of size $\leq 2^{\epsilon n}$.

\begin{claim}
$R_{\upharpoonright \rho}$ has
width $\leq \frac{(\beta n)^2}{32}$ with probability approaching $1$ as
$n \to \infty$.  This will be a contradiction, provided
$\epsilon > \frac{\beta}{8}$.
\end{claim}

This last claim will be proved next time, finishing the proof of Theorem 3.
The idea is that any clause in $R$ will get mapped to $\top$ by $\rho$ and
vanish from $R_{\upharpoonright \rho}$.

\end{proof}

\end{document}
