\documentclass[11pt]{article}
\usepackage{latexsym}
\usepackage{amsmath,amssymb,amsthm,xspace}
\usepackage{tikz}
\usetikzlibrary{positioning, shapes}
\usepackage{epsfig}
\usepackage[right=0.8in, top=1in, bottom=1.2in, left=0.8in]{geometry}
\usepackage{setspace}
\spacing{1.06}

\newcommand{\handout}[5]{
  \noindent
  \begin{center}
  \framebox{
    \vbox{\vspace{0.25cm}
      \hbox to 5.78in { {COMS 6998:\hspace{0.25cm}Proof Complexity and Applications (Spring '25)} \hfill #2 }
      \vspace{0.48cm}
      \hbox to 5.78in { {\Large \hfill #5  \hfill} }
      \vspace{0.25cm}
      \hbox to 5.78in { {#3 \hfill #4} }\vspace{0.25cm}
    }
  }
  \end{center}
  \vspace*{4mm}
}

\newcommand{\lecture}[4]{\handout{#1}{#2}{#3}{Scribes:\hspace{0.08cm}#4}{#1}}

\newtheorem{theorem}{Theorem}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{observation}[theorem]{Observation}
\newtheorem{example}[theorem]{Example}
\newtheorem{exercise}[theorem]{Exercise}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{claim}[theorem]{Claim}
\newtheorem{fact}[theorem]{Fact}
\newtheorem{assumption}[theorem]{Assumption}

\newcommand{\E}{{\mathbb E}}
\newcommand{\Res}{\ensuremath{\mathsf{Res}}\xspace}
\newcommand{\cty}[1]{\ensuremath{\mathrm{complexity}(#1)}\xspace}
\newcommand{\Search}[1]{\ensuremath{\mathsf{Search}_{#1}}\xspace}
\newcommand{\PHP}[2][]{\ensuremath{\mathrm{PHP}^{#1}_{#2}}\xspace}
\DeclareMathOperator{\var}{Var}

\begin{document}

\lecture{Lecture 2: Resolution Lower Bounds Via The Pigeonhole Principle}{February 6, 2025}{Instructor:\hspace{0.08cm}\emph{Toniann Pitassi}}{\emph{Leo Orshansky}}

\section{Review: The Resolution Proof System}

To start, we'll give a brief review of Resolution, one of the most classic and heavily-studied proof systems, which in the last lecture we proved to be sound and complete for refuting unsat CNF formulae. Today's lecture will be focused on proving exponential lower bounds in this proof system, but to start, let's remind ourselves of the definition:
\begin{definition}[Resolution]
    A refutation in \Res starts with a CNF formula $f=C_1\land C_2\land\dots\land C_m$, and derives additional clauses with the following rule:
    \[(A\lor x),(B\lor\bar{x})\to(A\lor B)\]
    where both items on the left hand side were either clauses in $f$, or clauses derived from previous applications of the \Res rule. A refutation is complete when the empty clause $\phi$ is derived. We sometimes refer to the $\textbf{graph representation}$ of a refutation, which is the DAG formed by having one node per clause, and drawing each rule application with a directed edge from the parent clauses to the child clause. A refutation is called $\textbf{tree-like}$ if each clause is used in at most one application of the rule (and as such, its graph representation is a tree).
\end{definition}
\begin{observation}
    A tree-like refutation of an unsat formula $f$ corresponds to a decision-tree solution to $\textsf{Search}_f$, where for an assignment $x$, $\textsf{Search}_f(x)$ outputs a clause in $f$ which is violated by $x$. 
\end{observation}
We will also define a game which plays out very similarly to the \Res proof system, and can sometimes help us better capture the behavior of (non-necessarily-tree-like) \Res refutations.
\begin{definition}[Prover-Delayer Game]
    The prover-delayer game for formula $f$ takes place over a series of rounds between a prover, $P$, and a delayer, $D$. $P$ is trying to find a falsifying assignment to $f$, whereas $D$ is trying to stretch the game to as many rounds as possible. In each round, the players do the following:
    \begin{enumerate}
        \item The prover chooses a variable $x_i$
        \item The delayer chooses an assignment $b\in\{0,1\}$, and tells the prover that $x_i=b$
        \item The prover may declare that $f$ is falsified, or may choose to ``forget" the assignment of a variable, or may continue to the next round
    \end{enumerate}
\end{definition}
\begin{observation}
    There is a one-to-one correspondence between \Res refutations of a formula $f$, and game graphs for the prover-delayer game on $f$. Tree-like proofs correspond to game trees, and non-tree-like structures correspond to prover strategies which are ``forgetful". This correspondence is pictured in Figure \ref{fig:godforsaken-tikz}.
\end{observation}
\begin{figure}
\begin{tikzpicture}[
    node distance=1cm,
    every node/.style={rectangle, draw, fill=blue!10, minimum width=1cm, align=center},
    level/.style={sibling distance=4cm/#1}
]

% Original clauses (leaves of the tree)
\node (C1) {\( x_1 \)};
\node (C6) [above right=1.25cm and 0.25cm of C1] {\( \bar{x}_2 \lor x_3 \)};
\node (C2) [right=1.25cm of C6] {\( x_2 \)};
\node (C3) [right=1.25cm of C1] {\( \bar{x}_1 \lor \bar{x}_2 \lor x_3 \)};
\node (C7) [above right=1.25cm and 0.25cm of C6] {\( x_3 \)};
\node (C4) [right=1.25cm of C7] {\( \bar{x}_3 \lor x_4 \)};
\node (C5) [left=1.25cm of C7] {\( \bar{x}_3 \lor \bar{x}_4 \)};
\node (C8) [above right=1.25cm and 0.25cm of C7] {\( x_4 \)};
\node (C10) [above right=1.25cm and 0.25cm of C5] {\( \bar{x}_4 \)};
\node (C9) [above=3cm of C7] {\( \phi \)};

% Arrows for resolutions
\draw[->, thick] (C1) -- (C6);
\draw[->, thick] (C3) -- (C6);
\draw[->, thick] (C2) -- (C7);
\draw[->, thick] (C6) -- (C7);
\draw[->, thick] (C4) -- (C8);
\draw[->, thick] (C5) -- (C10);
\draw[->, thick] (C7) -- (C8);
\draw[->, thick] (C7) -- (C10);
\draw[->, thick] (C8) -- (C9);
\draw[->, thick] (C10) -- (C9);

\node (D1) [right=8cm of C1] {\( 0*** \)};
\node (D6) [above right=1.25cm and 0.25cm of D1] {\( *10*\ (x_1) \)};
\node (D2) [right=1.25cm of D6] {\( *0** \)};
\node (D3) [right=1.25cm of D1] {\( 110* \)};
\node (D7) [above right=1.25cm and 0.25cm of D6] {\( **0*\ (x_2) \)};
\node (D4) [right=1.25cm of D7] {\( **10 \)};
\node (D5) [left=1.25cm of D7] {\( **11 \)};
\node (D8) [above right=1.25cm and 0.25cm of D7] {\( ***1\ (x_3) \)};
\node (D10) [above right=1.25cm and 0.25cm of D5] {\( ***0\ (x_3)\)};
\node (D9) [above=3cm of D7] {\( **** (x_4)\)};

% Arrows for resolutions
\draw[<-, thick] (D1) -- (D6);
\draw[<-, thick] (D3) -- (D6);
\draw[<-, thick] (D2) -- (D7);
\draw[<-, thick] (D6) -- (D7);
\draw[<-, thick] (D4) -- (D8);
\draw[<-, thick] (D5) -- (D10);
\draw[<-, thick] (D7) -- (D8);
\draw[<-, thick] (D7) -- (D10);
\draw[<-, thick] (D8) -- (D9);
\draw[<-, thick] (D10) -- (D9);

\end{tikzpicture}
\caption{\Res resolution (left) and prover-delayer game graph (right) for the unsat CNF formula\\ $f=x_1\land x_2\land (\bar{x_1}\lor\bar{x_2}\lor x_3)\land (\bar{x_3}\lor x_4)\land(\bar{x_3}\lor\bar{x_4})$. The diamond-shaped behavior near the top of the graph represents the prover forgetting the value of $x_4$. Note that in each leaf, one of the clauses of the original formula is falsified.}
\label{fig:godforsaken-tikz}
\end{figure}
\section{Resolution Lower Bounds}
We will now turn our focus to proving that \Res does not contain short proofs for all unsat formulae -- i.e. our goal is to find lower bounds on the size of a refutation for specific classes of formula. The class we will first focus on is that of Pigeonhole Principle statements (defined shortly below), and the primary technical step will be to lower bound the width of clauses in a refutation, which we define to be the number of literals in the clause. The analysis will be in two parts.
\begin{enumerate}
    \item Proving that width lower bounds $\to$ size lower bounds: through a restriction argument, we will show that refutations with small size must also have small width throughout.
    \item Proving width lower bounds: for Pigeonhole Principle refutations, we will show that there must be at least one wide clause by reasoning about the particular constraints and axioms of those formulae. We'll later take a look at a more general proof technique for width lower bounds in K-CNF refutations, which uses boundary expansion of clause-variable graphs.
\end{enumerate}
\subsection{Propositional Pigeonhole Principle}
We will narrow our focus to a concrete family of unsat formulae on $n$ variables, which we will call the Pigeonhole Principle statements.
\begin{definition}
    The Pigeonhole Principle statement with $n+1$ pigeons and $n$ holes, denoted with $\PHP[n+1]{n}$, is the following CNF formula over variables $P_{i,j}$ (with $i\in[n+1]$ and $j\in[n]$):
    \[\PHP[n+1]{n}=\underbrace{\bigwedge\limits_{i=1}^{n+1}(P_{i,1}\lor\dots\lor P_{i,n})}_{\text{Pigeon clauses}}\land \underbrace{\bigwedge\limits_{\substack{i_1<i_2\leq n+1\\j\leq n}}(\overline{P_{i_1,j}}\lor \overline{P_{i_2,j}})}_{\text{Hole clauses (one-to-one)}}\land \underbrace{\bigwedge\limits_{\substack{i\leq n+1\\j_1<j_2\leq n}}(\overline{P_{i,j_1}}\lor \overline{P_{i,j_2}})}_{\text{Functional}}\land\underbrace{\bigwedge\limits_{j=1}^{n}(P_{1,j}\lor\dots\lor P_{n+1,j})}_{\text{Onto}}\]
    Here, each variable $P_i,j$ represents the claim ``pigeon $i$ will sit in hole $j$", as pictured in Figure \ref{fig:pigeonhole}.
\end{definition}
We'll briefly illustrate how this formula encodes the statement of the pigeonhole principle, section by section:
\begin{enumerate}
    \item The pigeon clause for pigeon $i$ is the OR of $P_{i,1}\dots P_{i,n}$. This says, ``pigeon $i$ must have some hole".
    \item The hole clause for hole $j$ and a pair of pigeons $i_1,i_2$, is essentially the negation of $P_{i_1,j}\land P_{i_2,j}$, thus implying that those two pigeons cannot both sit in hole $j$. ANDed over all pairs of pigeons, this says that hole $j$ can contain at most one pigeon.
    \item The ``functional" clause for pigeon $i$ and a pair of holes $j_1,j_2$ is similar to a hole clause, but with the reverse statement: that the pigeon cannot sit in both holes at once. ANDed over all pairs of holes and all pigeons, this says that we have a mapping from pigeons to holes.
    \item The ``onto" clause for hole $j$ says that at least one pigeon will sit in it. ANDed over all holes, (and combined with the previous), this says that we have a surjective mapping from pigeons to holes.
\end{enumerate}
\begin{figure}[b]
    \centering
\begin{tikzpicture}[scale=1.25, pigeon/.style={draw, rectangle, minimum size=1cm, align=center}, hole/.style={draw, circle, minimum size=1cm, align=center}]
    % Pigeons
    \node[pigeon] (P1) at (0,2) {Pigeon 1};
    \node[pigeon] (P2) at (1.5,2) {Pigeon 2};
    \node[pigeon] (P3) at (3,2) {Pigeon 3};
    \node[pigeon] (P4) at (4.5,2) {Pigeon 4};
    \node[pigeon] (P5) at (6,2) {Pigeon 5};
    
    % Holes
    \node[hole] (H1) at (0.75,0) {Hole 1};
    \node[hole] (H2) at (2.25,0) {Hole 2};
    \node[hole] (H3) at (3.75,0) {Hole 3};
    \node[hole] (H4) at (5.25,0) {Hole 4};
    
    % Arrows (assignments)
    \draw[->] (P1) -- (H1) node[midway, left] {$P_{1,1}$};
    \draw[->] (P2) -- (H2) node[midway, left] {$P_{2,2}$};
    \draw[->] (P3) -- (H3) node[midway, left] {$P_{3,3}$};
    \draw[->] (P4) -- (H4) node[near start, left] {$P_{4,4}$};
    \draw[->] (P5) -- (H3) node[near start, right=5pt] {$P_{5,3}$}; % Collision in Hole 3

\end{tikzpicture}
    \caption{The pigeonhole principle, with corresponding literals in \PHP[5]{4} indicated}
    \label{fig:pigeonhole}
\end{figure}
We note that the last two groups of clauses are optional, in the following sense. Clearly the formula is unsat just with the pigeon clauses and hole clauses by, well, the pigeonhole principle. Since the additional clauses are being ANDed with an unsat formula, any assignment that falsified the original formula will also falsify the combined formula, and so they are making it strictly ``more unsat". However, there is also a sense in which they make it ``less unsat" -- if a pigeon can only be mapped to one hole, and every hole is mapped to by some pigeon, we guarantee that there is exactly one collision in the mapping, which seems to bring us closer to finding a (still nonexistent) injection from pigeons to holes. We will later see how this is useful for the proof.
\begin{observation}
    Any refutation for \PHP[n+1]{n} (without the functional/onto clauses) is also a refutation for the full \PHP[n+1]{n}. Thus, if $s(n)$-size refutations are possible for the former, then they are also possible for the latter.
\end{observation}
\begin{corollary}
    Proving $\Omega(s(n))$ lower bounds for the ``raw" pigeonhole principle formula on $n+1$ pigeons, without the functional or onto clauses, reduces to proving $\Omega(s(n))$ lower bounds on \PHP[n+1]{n}. 
\end{corollary}
\subsection{Warm-Up: Tree-Like \Res Lower Bounds for \PHP[n+1]{n}}
Before we go into proving that \PHP[n+1]{n} requires exponentially large \Res refutations, we will show a much simpler proof of the fact that this is true for the sub-class of tree-like \Res refutations.

Actually, even before we do this, let's consider a naive upper bound for a tree-like refutation of \PHP[n+1]{n}. Recall that tree-like refutations are in one-to-one correspondence with decision trees for \Search{f}, so let's try to construct a decision tree which solves \Search{\PHP[n+1]{n}}. At the root of the tree, we'll start by querying for the location of pigeon 1 -- if $P_{1,1}$ is true then we've found it in hole 1, but if not we ask for $P_{1,2}$, and so on until we've asked down to $P_{1,n}$, where if the answer is no then we can reject with the first pigeon clause. The key observation now is that at each location in the tree where we've ``found" pigeon 1 in hole $j$, we can start solving the subproblem of placing pigeons $2\dots n+1$ in holes $[n]\setminus\{j\}$ (an instance of \PHP[n]{n-1}) -- and recursing down all the way until \PHP[2]{1} where we reject on the corresponding hole clause. Since at each recursive level we have $O(n)$ nodes, and create $O(n)$ recursive subproblems, this decision tree has $O(n^n)=2^{O(n\log n)}$ nodes.
\begin{theorem}
    Any decision tree solving \Search{\PHP[n+1]{n}} requires $2^{\Omega(n)}$ size.
\end{theorem}
\begin{proof}
    We will start by introducing a helpful subset of assignments, which we will call the \emph{critical assignments}.
\begin{definition}[Critical Assignments]
    For \PHP[n+1]{n}, an assignment $x$ to the variables $P_{i,j}$ is called $\mathbf{i}$\textbf{-critical} if it satisfies all clauses besides the $i^{th}$ pigeon clause. In other words, an $i$-critical assignment finds a hole for the $n$ pigeons besides $i$, and leaves pigeon $i$ unmapped. Note that there are $n!$ critical assignments for each $i$, so $(n+1)!$ in total.
\end{definition}
\begin{lemma}
    Any decision tree for \Search{\PHP[n+1]{n}} that gives correct answers for all critical assignments has size at least $2^n$.
\end{lemma}
\begin{proof}
    Induction on $n$. For $n=1$, clearly at least $2$ nodes are required since the function is not constant (we could violate either one of the pigeon clauses). For $n>1$, assume that the claim is true for $n-1$. Then, consider what happens when we query the value of $P_{i,j}$ at the root of our decision tree $T$. 
    
    If we see a 1, then we know that pigeon $i$ goes to hole $j$, and the subtree $S_1$ rooted at this node is now a decision tree for the problem \PHP[n]{n-1}. Take a critical assignment $x$ for \PHP[n]{n-1}, and assume that $S_1(x)$ is an incorrect answer for the search problem. Then, $x$ plus $P_{i,j}=1$ is a critical assignment for \PHP[n+1]{n}, and $T(x)=S_1(x)$ is once again wrong. So by the inductive hypothesis, $S_1$ must have size at least $2^{n-1}$ for $T$ to be correct on all critical assignments.

    If $P_{i,j}$ is instead taken to be zero, then we can imagine that pigeon $i$ is mapped to $k$ for an arbitrary $k\neq j$. We can then extend the exact same argument as in the case above, where a critical assignment on $n$ pigeons plus $P_{i,k}=1$ is also critical for \PHP[n+1]{n}, to prove that $S_0$ must have size at least $2^{n-1}$ for $T$ to be correct on all critical assignments.

    $T$ has two subtrees of size $2^{n-1}$, so its size must be at least $2^n$.
\end{proof}
The theorem follows immediately, since a solution to \Search{\PHP[n+1]{n}} must be correct on all assignments, and in particular, all critical assignments.
\end{proof}
\begin{exercise}
    Remove the gap between the upper and lower size bounds for tree-like refutations of \PHP[n+1]{n}.
\end{exercise}
\usetikzlibrary{decorations.pathreplacing}
\begin{figure}
    \centering
    \scalebox{0.8}{
    \begin{tikzpicture}
        \begin{scope}[shift={(0,1.25)}, scale=0.5] % Scale down and
            % Left Section - Pigeon Axioms
            % Matrix 1
            \draw (0,0) grid (5,4);
            \node at (0.5,3.5) {\texttt{+}};
            \node at (0.5,2.5) {\texttt{+}};
            \node at (0.5,1.5) {\texttt{+}};
            \node at (0.5,0.5) {\texttt{+}};
            
            % Matrix 2
            \draw (6,0) grid (11,4);
            \node at (7.5,3.5) {\texttt{+}};
            \node at (7.5,2.5) {\texttt{+}};
            \node at (7.5,1.5) {\texttt{+}};
            \node at (7.5,0.5) {\texttt{+}};
            
            % Labels
            \node at (2,-1) {$p_1$=\small $P_{1,1}\vee P_{1,2}\dots$};
            \node at (8.5,-1) {$p_2$=\small $P_{2,1} \vee P_{2,2}\dots$};
        \end{scope}

        \node at (2.5,5) {(a)};
        \node at (9,5) {(b)};
        \node at (16.5,5) {(c)};
        
        % Vertical Divider
        \draw [thick] (6,-0.5) -- (6,4.5);

        \begin{scope}[shift={(6.5,-0.25)}, scale=0.5] % Scale down and
            % Left Section - Pigeon Axioms
            % Matrix 1
            \draw (0,5) grid (5,9);
            \node at (0.5,6.5) {\texttt{+}};
            \node at (1.5,6.5) {\texttt{+}};
            \node at (3.5,6.5) {\texttt{+}};
            \node at (3.5,7.5) {\texttt{+}};
            
            % Matrix 2
            \draw (6,5) grid (11,9);
            \node at (6.5,8.5) {\texttt{+}};
            \node at (8.5,8.5) {\texttt{+}};
            \node at (6.5,6.5) {\texttt{+}};
            \node at (10.5,6.5) {\texttt{+}};

            \fill[blue!40!white, fill opacity=0.2] (0,6) rectangle (5,7);
            \fill[blue!40!white, fill opacity=0.2] (6,6) rectangle (11,7);
            \fill[blue!40!white, fill opacity=0.2] (3,0) rectangle (8,1);

            \draw[->,thick] (2.5,4.75) -- (4.5,3.25);
            \draw[->,thick] (8.5,4.75) -- (6.5,3.25);

            \draw (3,-1) grid (8,3);
            \node at (3.5,2.5) {\texttt{+}};
            \node at (3.5,0.5) {\texttt{+}};
            \node at (5.5,2.5) {\texttt{+}};
            \node at (6.5,1.5) {\texttt{+}};
        \end{scope}
        
        \draw [thick] (12.5,-0.5) -- (12.5,4.5);
        
        % Right Section - Scaled Matrices for Implication Structure
        \begin{scope}[shift={(13,-0.25)}, scale=0.5] % Scale down and shift to fit nicely
            % Row 1: Matrix + Matrix => Matrix
            % Matrix 1
            \draw (0,5) grid (5,9);
            \node at (0.5,8.5) {\texttt{+}};
            \node at (0.5,7.5) {\texttt{+}};
            \node at (0.5,6.5) {\texttt{+}};
            \node at (0.5,5.5) {\texttt{+}};

            % Matrix 2
            \draw (6,5) grid (11,9);
            \node at (6.5,8.5) {\texttt{-}};
            \node at (7.5,8.5) {\texttt{-}};

            % Implication Arrow
            \node at (12,7) {\Huge $\Rightarrow$};

            % Matrix 3
            \draw (13,5) grid (18,9);
            \node at (14.5,8.5) {\texttt{-}};
            \node at (13.5,7.5) {\texttt{+}};
            \node at (13.5,6.5) {\texttt{+}};
            \node at (13.5,5.5) {\texttt{+}};

            % second row

            % Matrix 1
            \draw (0,0) grid (5,4);
            \node at (0.5,3.5) {\texttt{+}};
            \node at (0.5,2.5) {\texttt{+}};
            \node at (0.5,1.5) {\texttt{+}};
            \node at (0.5,0.5) {\texttt{+}};

            % Matrix 2
            \draw (6,0) grid (11,4);
            \node at (6.5,3.5) {\texttt{+}};
            \node at (7.5,3.5) {\texttt{+}};
            \node at (8.5,3.5) {\texttt{+}};
            \node at (9.5,3.5) {\texttt{+}};
            \node at (10.5,3.5) {\texttt{+}};

            % Implication Arrow
            \node at (12,2) {\Huge $\Rightarrow$};

            % Matrix 3
            \draw (13,0) grid (18,4);
            \node at (13.5,3.5) {\texttt{+}};
            \node at (15.5,3.5) {\texttt{+}};
            \node at (16.5,3.5) {\texttt{+}};
            \node at (17.5,3.5) {\texttt{+}};
            \node at (13.5,2.5) {\texttt{+}};
            \node at (13.5,1.5) {\texttt{+}};
            \node at (13.5,0.5) {\texttt{+}};
        \end{scope}

    \end{tikzpicture}}
    \caption{(a) Starting clauses of the monotone resolution refutation (pigeon clauses). (b) An example of the monotone resolution applied, in this case on the third row, or hole 3. (c) Example of a \Res step transformed into a monotone resolution step. Note that on the bottom, we are not applying the monotone resolution rule -- just translating the derived clause to a monotone clause.}
    \label{fig:matrices}
\end{figure}
\subsection{Resolution Lower Bounds for \PHP[n+1]{n} (The General Case)}
In this subsection we will prove that \emph{all} \Res refutations for \PHP[n+1]{n} require size exponential in $n$, not just tree-like ones as shown previously. This will require substantially more work, and so we'll split it into sections roughly as outlined at the beginning of Section 2.
\subsubsection{Monotone Transformation of \PHP[n+1]{n}}
We'll start by transforming \Res refutations of \PHP{} into a nice combinatorial form. Once we prove that the transformed refutations are equivalent logically, and have the same asymptotic size, we can go on to achieve lower bounds against the size of \Res refutations by proving lower bounds against the transformed, nicer version. All definitions are given below, but there is also a standard visual interpretation through matrices, which is pictured in Figure \ref{fig:matrices}. In this representation, there is one matrix cell per variable $P_{i,j}$, and the row/column indices are flipped such that each row is a hole and each pigeon is a column. As such, there is one more column than row.
\begin{definition}[Monotone Resolution for ${\rm PHP}^{n+1}_n$]
A monotone resolution refutation of \PHP[n+1]{n} starts with the $n+1$ pigeon clauses, which are all monotone. Additional clauses are derived using the following rule, which is parameterized by a particular hole $j$:
\[C_1,C_2\to\bigvee\left(\{P_{i,k}:P_{i,k}\in C_1\cup C_2,k\neq j\}\cup\{P_{i,k}:P_{i,k}\in C_1\cap C_2,k=j\}\right)\]
\end{definition}
In simple terms, when the monotone resolution rule for hole $j$ is applied to $C_1$ and $C_2$, the resulting disjunction contains all variables outside of hole $j$ from either clause, but only contains variables for hole $j$ if they were contained in $C_1$ and $C_2$. Intuitively, this rule encodes the fact that an assignment can satisfy $C_1$ and $C_2$ either by variables outside of hole $j$ (in which case the resulting clause is satisfied by the inclusion of those variables), or by \emph{the same} variable $P_{i,j}$ (by one-to-oneness of \PHP[n+1]{n}).
\begin{definition}[Clause Transformation from \Res to Monotone]
    For a given clause $c=\bigvee\limits_{k=1}^m l_k$ (where literals $l_k$ are variables in \PHP[n+1]{n} or their negations), the transformed monotone version of $c$ is given as follows:
    \[M(c)=\bigvee\left(\{P_{i,j}:\exists k.\ l_k=P_{i,j}\}\cup\{P_{h,j}:\exists k.\ \exists i\neq h.\  l_k=\overline{P_{i,j}}\}\right)\]
\end{definition}
In other words, $M(c)$ is the disjunction over:
\begin{itemize}
    \item All positive variables $P_{i,j}$ in $c$
    \item For any negated variable $\overline{P_{i,j}}$ (stating that pigeon $i$ does not go into hole $j$) in $c$, we add all other variables in the onto clause for hole $j$, to the disjunction. This essentially says ``some pigeon that isn't $i$ will go into hole $j$".
\end{itemize}
\begin{claim}\label{restomonotone}
    Any size-s \Res refutation $\pi$ of \PHP[n+1]{n} can be transformed into a monotone resolution refutation of size $O(s)$.
\end{claim}
\begin{proof}
    A full proof will not be given, but a sketch is as follows: let's ignore the fact that the monotone-transformed initial clauses of $\pi$ are not all legal starting clauses in the monotone resolution system (only the pigeon clauses are allowed). Next, we want to show that a monotone-transformed clause is logically equivalent to its precursor, given the pigeonhole axioms. This can easily be done by inspection, as illustrated in a note above. Finally, we simply need to convince ourselves that for any rule application $C_1,C_2\to C_3$ in $\pi$, $M(C_3)$ can be derived from $M(C_1)$ and $M(C_2)$ using the monotone resolution rule at most a constant number of times. Once this is done, and the problem of initial clauses is fixed, the claim will follow.
\end{proof}
Now that we have a size-preserving transformation, we now know that lower bounds on monotone refutations of \PHP[n+1]{n} are sufficient to achieve our overall goal.
\subsubsection{\PHP{} Lower Bound for Monotone Refutations}
\begin{observation}
    Loosely speaking, a reason that we should expect monotone refutations of \PHP[n+1]{n} to be large is that, to get from the initial set of clauses to the empty clause, we need to reduce the number of holes represented from $n$ to 0, but the monotone resolution rule only allows us to ``clear" one hole at a time. Additionally, clearing the $k^{th}$ hole would seem to require a large amount of clauses with $k-1$ holes cleared -- this is because as each holes is cleared, the resulting clauses must each have at least one more pigeon represented than in the previous step. Once there are many pigeons per clause, more combinations of clauses from the previous layer are needed in order to clear all variables from hole $k$. Overall, we expect to need roughly $n$ layers with $O(\binom{n}{k})$ clauses in the $k^{th}$ layer, which is a total size exponential in $n$.
\end{observation}
Motivated by the above observation, we prove the formal lower bound.
\begin{theorem}\label{monotonelb}
    Any monotone refutation of \PHP[n+1]{n} must have size $\exp(\Omega(n))$.
\end{theorem}
\begin{proof}
We will proceed in two parts: as mentioned in the beginning of Section 2, we first prove that short refutations must have narrow clauses, and then we prove that all refutations must have at least one wide clause.

Take $\pi$ to be a monotone refutation of \PHP[n+1]{n}.
\begin{lemma}\label{sizetowidth}
    If $\pi$ has size $s<2^{n/20}$, then there is a restriction $\rho$ mapping a constant fraction of pigeons to holes (without violating any PHP axioms), such that $\pi\big|_\rho$ has no clauses of width greater than $n(n+1)/10$.
\end{lemma}
\begin{proof}
    Let $t=n(n+1)/10$, and call a clause \emph{wide} if its width (number of literals) is at least $t$. We will iteratively construct a restriction $\rho$ which eliminates all wide clauses from $\pi$, as follows:

    Begin with $\rho$ initially empty. If we pick a random variable $P_{i,j}$ from among the $\leq n(n+1)$ variables which are not yet restricted under $\rho$, then a given wide clause will contain that variable with at least 1/10 probability. Let $w$ be the number of wide clauses in $\pi\big|_\rho$. By linearity of expectation, the average number of wide clauses which contain $P_{i,j}$ is at least $w/10$. Take $P_{i^*,j^*}$ to be a choice of variable which achieves this average, and add $P_{i^*,j^*}=1$ to the restriction $\rho$. Additionally, add $P_{i^*,j}=0$ for $j\neq j^*$, and $P_{i,j^*}=0$ for $i\neq i^*$. Repeat this procedure a total of $\log_{10/9}s+1$ times, and then output $\rho$.

    In each iteration, $w$ decreases by a factor of at least 9/10. This means that after all iterations are complete, $w\leq w_0\cdot (9/10)^{\log_{10/9}s+1}<w_0/s\leq 1$, thus all wide clauses have been eliminated. Additionally, the number of pigeons mapped by $\rho$ is $\log_{10/9}<1/3$.
\end{proof}
And now, to prove that $\pi$ must have wide clauses:
\begin{lemma}\label{wideclauses}
    $\pi$ contains a clause of width greater than $2n^2/9$.
\end{lemma}
\begin{proof}
    Let the \emph{complexity} of a clause $c\in\pi$ be the minimum number of pigeon clauses which jointly imply $c$ on all critical assignments. Note that the complexity of each initial clause (a pigeon clause) is 1, whereas the complexity of the final clause (the empty clause $\phi$) is $n+1$.

    We claim that for any monotone resolution rule application $C_1,C_2\to C_3$, $\cty{C_3}\leq\cty{C_1}+\cty{C_2}$. This follows from the fact that all assignments which satisfy $C_1$ and $C_2$ must also satisfy $C_3$, which is exactly the soundness property of the monotone resolution proof system. As such, the clause complexity at most doubles in each layer of the refutation, and we can in particular find some clause $c^*$ such that $n/3\leq \cty{c^*}\leq 2n/3$. We now go on to show that $c^*$ is wide.

    Let $S\subseteq[n+1]$ be the minimal subset of pigeon clauses which implies $c^*$. As we know, $n/3<|S|<2n/3$. We now observe the following property which characterizes the set $S$:
    \begin{itemize}
        \item For any $i\in S$, there must be some $i$-critical assignment which falsifies $c^*$. This is because the $i^{th}$ pigeon clause is violated \emph{only} on the $i$-critical assignments (which concurrently satisfy all other pigeon clauses), and so $S\setminus\{i\}$ would be enough to imply $c^*$ on all critical assignments unless there was a falsifying $i$-critical assignment.
        \item For any $i\not\in S$, all $i$-critical assignments satisfy $c^*$. If not, then on the falsifying $i$-critical assignment, all pigeon clauses in $S$ would be satisfied, and as such would not imply the truth value of $c^*$.
    \end{itemize}
    With this in mind, take $\alpha$ to be an $i$-critical assignment which falsifies $c^*$, for some $i\in S$. Take any $j\not\in S$, and let $l\in[n]$ be the hole which pigeon $j$ is mapped to under the assignment $\alpha$. We observe that by modifying the values of just two variables in $\alpha$, we can turn it into a $j$-critical assignment: we simply set $P_{j,l}=0$ and $P_{i,l}=1$. By the property above, this assignment must satisfy $c^*$, and since $c^*$ is monotone, we know that $P_{i,l}$ must have been in the disjunction.
    
    For a fixed $i$, we can repeat this reasoning for all $j\not\in S$ to find a distinct variable $P_{i,l}$ in $c^*$, which is $n-|S|$ variables. But we can also vary $i$ over all elements of $S$, and so we end up with a total of $|S|(n-|S|)$ distinct variables that must be in $c^*$. Since $2n/3>|S|>n/3$, we get that $c^*$ must contain at least $2n^2/9$ variables.
\end{proof}
Finally, we can combine these two lemmata in a very straightforward way. Since $\pi$ has a clause of width $2n^2/9$, which is larger than $n(n+1)/10$, the contrapositive of Lemma \ref{sizetowidth} implies that $\pi$ has total size $>2^{n/20}$. In particular, it is clear that the size of $\pi$ is $\exp(\Omega(n))$.
\end{proof}
\begin{corollary}[Resolution Lower Bound]
    Any \Res refutation of \PHP[n+1]{n} has size $\exp(\Omega(n))$.
\end{corollary}
\begin{proof}
    Follows from Claim \ref{restomonotone} and Theorem \ref{monotonelb}.
\end{proof}
\section{Resolution Lower Bounds Beyond \PHP{}}
The main theorem proved in Section 2 showed us that monotone resolution (and, as a consequence, \Res), is not capable of producing short refutations of the pigeonhole principle statement. Naturally, we would want to extend this to find more general classes of formulae for which \Res does not have short refutations. Just like in the technical proof of the lower bound, we can break this into two parts: a reduction from size lower bounds to width lower bounds, and then the width lower bounds themselves.
\subsection{General Size-Width Tradeoff}
It turns out that general lower bounds can be proven on the size of \Res refutations of a certain maximum width, with a stronger tradeoff for tree-like refutations. In particular, we have the following result due to Eli Ben-Sasson and Avi Wigderson.
\begin{theorem}[BW01]
    Let $F$ be an unsat $k$-CNF on $n$ variables. Then,
    \begin{enumerate}
        \item ${\sf Tree\text{-}Res\text{-}Size}(F)\geq 2^{{\sf Res\text{-}Width}(F)-k}$
        \item ${\sf Res\text{-}Size}(F)\geq 2^{\Omega(({\sf Res\text{-}Width}(F)-k)^2/n)}$
    \end{enumerate}
\end{theorem}
Clearly, if we had a way to get general width lower bounds on \Res refutations, we could combine it with this theorem to achieve very strong results. We will outline one such framework for width lower bounds.
\subsection{Width Lower Bounds From (Boundary) Expansion}
\begin{definition}[(Boundary) Expansion Property of Clause-Variable Graphs]
    Take a bipartite graph $G=(V=(L,R),E)$. Take $|L|=m$ and $|R|=n$. We say that $G$ is an $(\varepsilon,\delta)$-expander (resp. boundary expander) if for all subsets $S\subseteq L$ such that $|S|\leq \varepsilon n$, $|N(S)|\geq \delta|S|$. Here, $N(S)$ is the set of nodes in $V\setminus S$ with at least one neighbor (resp. exactly one neighbor) in $S$.
\end{definition}
\begin{lemma}
    If $G$ is a good expander with sufficiently low degree, then $G$ is also a good boundary expander. In particular, if $G$ is a $(\varepsilon,\delta)$-expander with degree $d$, then it is a $(\varepsilon,2\delta-d)$-boundary expander.
\end{lemma}
\begin{proof}
    Take a given left subset $|S|\leq\varepsilon n$. Let $E=\{v\in R:|N(v)\cap S|\geq 1\}$, and $B=\{v\in R:|N(v)\cap S|=1\}$. By the expander property, $|E|/|S|\geq\delta$, and we will use this to show that $|B|/|S|$ is also large.
    $$d|S|=\sum_{\substack{v\in R}}|N(v)\cap S|=|B|+\sum_{\substack{v\in R\\|N(v)\cap S|\geq2}}|N(v)\cap S|$$
    $$\geq|B|+2|\{v\in R:|N(v)\cap S|\geq2\}|\geq|B|+2(\delta|S|-|B|)$$
    $$|B|/|S|\geq 2\delta-d$$
\end{proof}
We will now instantiate a particular kind of graph, clause-variable graphs of random $k$-CNF formulae, and use the expander property to give an informal argument for a width lower bound on their \Res refutations.
\begin{definition}[Random Clause-Variable Graphs]
    Let $\mathcal{F}(\Delta,n,k)$ be the distribution on boolean formulae taken as follows: out of $n$ variables, pick $m=\Delta n$ random disjunction clauses of $k$ literals each, and then output the formula $f=C_1\land C_2\land\dots\land C_m$. Now let $\mathcal{G}(\Delta,n,k)$ be the distribution on bipartite graphs taken as follows: for each formula $f\in{\rm support}(\mathcal{F})$, let $L=\{C_1,\dots,C_m\}$ and $R=\{x_1,\dots,x_n\}$, and add an edge from $C_i\to x_j$ if the $i^{th}$ clause of $f$ contains variable $x_j$ (negated or unnegated).
\end{definition}
\begin{claim}
    For random graphs $G\sim\mathcal{G}(\Delta,n,k)$ (for appropriate choices of parameters), $G$ is a boundary expander with high probability.
\end{claim}
\begin{proof}
    Omitted.
\end{proof}
\begin{claim}
    For $\varepsilon>1/4$, for a $k$-CNF formula $f$, if $G_f$ is a $(\varepsilon,\Omega(1))$-boundary expander, then \Res refutations of $f$ must contain clauses with width $\Omega(n)$.
\end{claim}
\begin{proof}
    Let $\pi$ be \Res refutation of $f$, and let $c^*$ be the first clause in $\pi$ for which the minimal set of initial clauses $C_1\dots C_m$ implying $c^*$ has size at least $n/8$. Let $S\subseteq[m]$ be the set of indices of these clauses. By a complexity argument similar to the one in the proof of Lemma \ref{wideclauses}, we know that $|S|\leq n/4$. Now, take $B\subseteq[n]$ to be the index set of variables which are contained in exactly one clause of $\{C_i\}_{i\in S}$. For any $x_j$ where $j\in B$, take $i\in S$ such that $x_j\in C_i$, and assume that $x_j,\overline{x_j}\not\in c^*$. Since, by assumption, the clauses in $S\setminus\{i\}$ are not enough to imply $c^*$ on their own, take an assignment $\alpha$ which satisfies every clause $C_k$ for $k\in S\setminus\{i\}$, but falsifies $C_i$ and $c^*$. If we flip the value of $\alpha(x_j)$, then $c^*$ remains unsatisfied, and $C_k$ for $k\in S\setminus\{i\}$ remain satisfied, since none of them contain $x_j$ or $\overline{x_j}$ -- but $C_i$ is now satisfied, which is a contradiction since the set $\{C_i\}_{i\in S}$ must jointly imply $c^*$. Therefore, $c^*$ must contain a literal for every variable on the boundary of its clauses, which, since $G_f$ is a boundary expander and $|S|\leq n/4$, is $\geq \Omega(1)\cdot n/8=\Omega(n)$ such variables.
\end{proof}
\section{Aside: \Res Upper Bounds for \PHP[m]{n}}
Since $\PHP[m]{n}$ is an ``easier" formula to refute for $m\gg n$ than \PHP[n+1]{n}, the exponential lower bound does not extend to such formulae. We will list the general landscape of known results:
\begin{enumerate}
    \item For \PHP[n+1]{n}: tree-like \Res proofs are $2^{\Theta(n^2)}$, and general proofs are $2^{\Theta(n)}$ in size.
    \begin{itemize}
        \item A similar \Res lower bound exists for \PHP[m]{n}, where $m=O(n^2)$
    \end{itemize}
    \item \cite{BussP}: For $m\sim 2^{\sqrt{n}}$, there are polynomial-size \Res refutations of \PHP[m]{n}.
    \begin{itemize}
        \item \cite{raz-wphp}: This upper bound is nearly tight
    \end{itemize}
    \item \cite{MPW,PWW}: In a different proof system, known as $\Res({\rm polylog}(n))$, there are quasipolynomial-size refutations of \PHP[2n]{n}.
\end{enumerate}
\section{Some Open Problems}
\begin{enumerate}
    \item Are there polynomial-size refutations of \PHP[2n]{n} in the $\Res({\rm polylog}(n))$ proof system? (Best known is quasipolynomial-size, i.e. $2^{{\rm polylog}(n)}$)
    \item Are there polynomial-size and bounded-depth refutations of the weak \PHP{} (say, where $m\sim 2^{\sqrt{n}}$)?
\end{enumerate}

\section{References}
\begin{enumerate}
\item The original lower bound for Resolution proofs of the pigeonhole principle is due to Armin Haken \cite{Haken85}. The lower bound for Resolution proofs of the weak pigeonhole principle is due to Ran Raz \cite{raz-wphp}.
\item Resolution lower bounds for Tseitin came next \cite{Urquhart87} and explicitly introduced expansion as a key underlying combinatorial property.
Lower bounds for random SAT were first proved in \cite{CS88}, and further simplified and improved in \cite{BKPS}.
\item Resolution upper bounds for Resolution proofs of the weak pigeonhole principle are due to Buss and Pitassi \cite{BussP}. 
Bounded-depth Frege upper bounds were first proved by Paris, Wilkie and Woods \cite{PWW}; a different quasipolynomial-sized Res(polylogn) was proven by Maciel, Pitassi and Woods \cite{MPW}.
\end{enumerate}

\bibliography{proofcomplexity.bib}
\bibliographystyle{alpha}

\end{document}
