%Proof Complexity Scribe Notes template

% SEE THE "FOR THE SCRIBE SECTION BELOW"

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

\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{Tamsen Dunn}    % Who is the scribe?
\def\classdate{29 January 2002} % Date of the class
\def\classnumber{5}     % 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

\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{The Pigeon Hole Principle}

Last time we finished our introduction to Frege Proof Systems. In this lecture we will give a propositional formulation of and a proof of the Pigeon Hole Principle.  Its an interesting side note that this theorem was considered self evident until it was brought under the scrutiny of discrete mathematicians. Now the Pigeon Hole Principle is considered quite subtle. We will begin by analyzing the familiar form of the theorem. 

\subsection{The Familiar Form of the Pigeon Hole Principle}

\begin{theorem}[Pigeon Hole Principle A]
\[
PHP_n^{n+1}:  \forall n \in N \neg\exists f:\{1,2,...,n+1\} \rightarrow \{1,2,...,n\}
\]
\end{theorem}

The above formulation of the Pigeon Hole Principle is sometimes taken in and of itself as the definition of n being finite.

\subsection{The Pigeon Hole Principle by Induction} 

Now, we want to write the Pigeon Hole Principle as a family of propositional tautologies.  Fix $n \geq 1$ and let our variables be $P_{i,j}$, where $1 \leq i \leq n+1 $ and $1 \leq j \leq n $ and $P_{i,j}$ means $f(i)= j$.  In this way, we no longer have a set of ordered pairs but a set of graphs. 

\begin{theorem}[Pigeon Hole Principle B]
\[
PHP_n^{n+1}:  \Bigwedge\limits_{i=1}^{n+1} \Bigvee\limits_{j=1}^{n} P_{i,j} \rightarrow \Bigwedge\limits_{i=1}^{n} \Bigwedge\limits_{j=i+1}^{n+1} \Bigwedge\limits_{m=1}^{n} ( P_{i,m} \wedge P_{j,m} ) 
\]
\end{theorem}

This ought to be a tautology.  Let's check:

\begin{example}[$PHP_1^2$:] $(P_{1,1} \vee P_{1,2}) \rightarrow (P_{1,1} \vee P_{2,1}$ ) \end{example}	

So that works. Now for $n = 2$.

\begin{example}[$PHP_2^3$:]

Left hand side: $  (P_{1,1} \vee P_{1,2}) \wedge (P_{2,1} \vee P_{2,2}) \wedge (P_{3,1} \vee P_{3,2}  )$ 

should imply

Right hand side: $ (P_{1,1} \wedge P_{2,1}) \vee (P_{1,2} \wedge P_{2,2}) \vee (P_{1,1} \wedge P_{3,1}) \vee (P_{1,2} \wedge P_{3,2}) \vee (P_{2,1} \wedge P_{3,1}) \vee (P_{2,2} \wedge P_{3,2}) $ 

and it does.

\end{example}	

In the above formulation, the Pigeon Hole Principle has been reduced to a family of tautologies, each polynomial in size. 

\begin{proof-complexity}
On the right hand side we see that there are $n^3$ ways to select the mapping, so these formulas have $O(n^3)$ symbols.
\end{proof-complexity}

Cook and Reckhow were the first to show that the Pigeon Hole Principle could be given a polynomial-size $e\mathcal{F}$-proof.

Idea of Proof:  Given a mapping $f: [n+1] \rightarrow [n]$ where $[n]$ and $[n+1]$ are sets such that $[n] = \{1,2, ... , n\}$, we want to show that this mapping causes a contradiction.


Define $f^n = f$ and 
\[
f^m(i) = 
  \left\{
    \begin{array}{ll}
       f^{m+1}(i) & \mbox{when  $f^{m+1}(i)< m+1$} \\
       f^{m+1}(m+2) & \mbox{otherwise}
    \end{array}		 
  \right. \]

So, given an $f^{m+1}$ we want to find an $f^m$.  Suppose the mapping is as follows:
\[
domain ----- range
\]
\[
m+2 \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; ---
\]
\[
m+1 \;\;\;\;\;\;\;\; \searrow \;\;\;\;\;\;\;\; m+1 
\]
\[
m \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  m
\]
\[
\vdots \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; \vdots 
\]
\[
2 \;\;\;\;\;\;\;\;\;\;\; \nearrow \;\;\;\;\;\;\;\;\;\;\; 2 
\]
\[
1 \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  1 
\]

The idea of this proof is to successively use induction to prove $f^m:[m+1] \rightarrow [m]$ is a one-to-one mapping. At each inductive step drop a pair, such as $m+2$ from the domain and $m+1$ from the range, and reconnect the respective arrows to which ever empty slots are available.

Assuming $f^m+1:[m+2] \rightarrow [m+1] $, we use the inductive claims that
\begin{description}
\item[(1)] $f^{m+1}$ is one-to-one $\rightarrow f^m$ is one-to-one, and  
\item[(2)] $f^{m+1}:[m+1] \rightarrow [m] $
\end{description}
The induction will finally stop at the bottom, at $ m = 1 $ where
\[
f^1:[2] \rightarrow [1]
\]
It is reasonable to claim this is impossible, a contradiction by definition.


Now, let's translate this into an $e\mathcal{F}$-proof:

\subsection{ $e\mathcal{F}$-Proof of the Pigeon Hole Principle}

\begin{proof}

Idea of Proof: We begin by presuming the hypothesis $\neg PHP_n^{n+1}$. Then we derive some instance of $\neg PHP_1^2$ which can be disproved, and allow that to negate the hypothesis. 

First introduce some new variables:  For $\neg PHP_n^{n+1}$, we need to have at least the set of $\{ P_{i,j} \}$ variables. 

Define $\neg PHP_m^{m+1}(q^m)$ to have new variables $ q_{i,j}^m $ for $m=n,...,2,1$.  Let $ q_{i,j}^n \leftrightarrow P_{i,j}$. Now the extension rule is used to introduce $q_{i,j}^m$ by
\[
q_{i,j}^{m}\leftrightarrow ( q_{i,j}^{m+1} \vee (q_{i,m+1}^{m+1} \wedge q_{m+2,j}^{m+1}))
\] 
where $1 \leq i \leq m+1 $, and $1 \leq j \leq m$. Since each $q^m$ is so defined by the previous $q^{m+1}$, they are allowed by the extension rule.
   
Now we claim that $e\mathcal{F}$ has polynomial size proofs of $\neg PHP_{m+1}^{m+2} \rightarrow \neg PHP_m^{m+1}$. Proving this claim below is equivalent to proving the main theorem.
\[
\neg PHP_{m+1}^{m+2}(q^{m+1}) \rightarrow \neg PHP_m^{m+1}(q^m)
\]

To finish, we need to give an $e\mathcal{F}$-proof of the conjuncts of $\neg PHP_m^{m+1}(q^m)$ from the conjuncts of $\neg PHP_{m+1}^{m+2}(q^{m+1})$.  This is basically a brute-force case analysis. The idea of the case analysis comes back to the picture we drew earlier.  Its simply not possible to map two (or more) elements of the domain to a single slot in the range. Any time it did would violate one-to-oneness. The full proof can be found in Cook and Reckhow, JSL 1979.

\begin{proof-complexity}
 All formulas given in this $e\mathcal{F}$-proof are of $O(n^3)$ since in the PHP there are $n^3$ steps for that many conjuncts.  We step down from $n$, so that gives us $O(n^4)$ lines, and each line had $O(n^3)$ symbols.

 Suppose we were instead thinking of an ordinary $\mathcal{F}$-proof. Straightforward conversion fails with exponential blow up. We have to re-express every $q_{i,j}$ in terms of its original variables, thus eliminating all the extension variables from $m=n$ to $m=1$.  That means we would have roughly 3 times as many symbols. For example,  $q^m$ uses three $q^{m+1}$ 's, so by straightforward replacement substitution the formulas increase in size by a factor of $3^n$. 

For a different $\mathcal{F}$-proof which is polynomial in size, see Buss, JSL 1978. Buss's proof rests on a counting argument:  ``The idea behind the proof is that one can't [not have the PHP] because then one set would have more than the other.''
\end{proof-complexity}

We have very few examples of $e\mathcal{F}$ and $\mathcal{F}$ size comparisons. However, we still tend to believe the separation is maintained from arguments made in circuit theory. We will come back to this.
\end{proof}

\section{Tree-Like versus Non-Tree-Like Proofs}

\begin{definition}
A $\mathcal{F}$ or $e\mathcal{F}$-proof is {\em tree-like} if each formula in the proof is used at most once as a hypothesis of an inference.  Other proofs may be dag-like or sequence-like.
\end{definition}

\begin{theorem}[Kraj\'\i\v cek]
Tree-like (extended) $\mathcal{F}$-proofs p-simulate ordinary (extended) $\mathcal{F}$-proofs.
\end{theorem}  

Intuitively, you might expect the transition to tree-like proofs would cause an an exponential blow up. But that is not the case.

\begin{proof}
Given a sequence-like proof, $\phi_1,\phi_2,...,\phi_n = \phi$ one wants to create a tree-like proof from $\psi_1,\psi_2,...,\psi_n$ where $ \psi_i = \Bigwedge_{j=1}^{i} \phi_i $ .  We hope that if multiple formulas are necessary we can use conjunctions for it once and only once. Now, we claim that the sequence $\psi_1,\psi_2,...,\psi_n$ can be ``patched up'' to be a tree-like proof. The patching is done by cases:

Case (1) : $\phi_i$  is an axiom.

Assume $\psi_{i-1}$ has already been derived.  We have the axiom $\phi_i$. We can derive
\[
\psi_{i-1} \rightarrow \phi_i \rightarrow (\psi_{i-1} \wedge \phi_i)
\]
as an instance of $A \rightarrow B \rightarrow (A \wedge B)$. So MP twice gave us
\[
\psi_{i-1} \wedge \phi_i
\]
which is equivalent to $\psi_i$. And case (1) is proven.

Case (2) :   

$\phi_i$ is inferred from $\phi_j$ and $\phi_k$ by MP. $\phi_k$ is $(\phi_j \rightarrow \phi_i)$.  By assuming we have a proof of $\psi_{i-1}$, we can complete the rest of the proof by a straightforward unwinding of conjunctions. See the example below to see how this will work: 

\begin{example}
The following are tautologies:   $A \wedge B \rightarrow A$ and $A \wedge B \rightarrow B$, $(A \rightarrow B) \wedge (B \rightarrow C) \rightarrow (A \rightarrow B)$.  Given an instance  
\[
(\alpha \wedge \beta) \wedge \gamma \rightarrow (\alpha \wedge \beta) \rightarrow \alpha.
\]
\[
(\alpha \wedge \beta) \wedge \gamma \rightarrow (\alpha \wedge \beta) \rightarrow ((\alpha \wedge \beta) \rightarrow \alpha) \rightarrow ((\alpha \wedge \beta) \wedge \gamma) \rightarrow \alpha.
\]
Using MP twice, for two conjuncts we have
\[
((\alpha \wedge \beta) \wedge \gamma) \rightarrow \alpha.
\]
\end{example}
Substituting the above equations into our proof, we now have the desired
\[
\psi_{i-1} \rightarrow \phi_j
\]
 and
\[
 \psi_{i-1} \rightarrow \phi_k
\]
Each of the above is tree like.  Now, using a substitution instance of the following tautology:
\[
A \rightarrow (A \rightarrow B) \rightarrow (A \rightarrow (B \rightarrow C)) \rightarrow (A \wedge C)
\]
we can derive from the 3 MP's that
\[\psi_{i-1} \rightarrow (\psi_{i-1} \rightarrow \phi_j) \rightarrow (\phi_{j-1} \rightarrow \phi_k) \rightarrow (\psi_{i-1} \wedge \phi_i)
\]
We are done with case (2) because
\[
\psi_{i-1} \wedge \phi = \psi_i
\]
Therefore, in either case, each $\psi_i$ can be created for the tree-like proof.  That concludes our proof and this lecture.
\end{proof}

\end{document}
