%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{Reid Andersen}    % Who is the scribe?
\def\classdate{23 January 2002} % Date of the class
\def\classnumber{3}     % 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.

\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{p-Simulation}

\begin{definition}
Let $f$ and $g$ be proof systems in the same language.   We say $f$ {\em p-simulates} $g$ if
there exists a poly-time computable function $H(x)$ such that  $\forall x$, $g(x) = f(H(x))$.  We say $f$ {\em simulates} $g$ if there exists a polynomial $p(n)$ such that $\forall x \exists y$, $|y| \leq p(|x|)$ and $f(y) = g(x)$.
\end{definition}

\begin{definition}
A proof system $f$ is {\em maximal} if $f$ simulates $g$ for any proof system $g$.
A proof system $f$ is {\em super} if there exists a polynomial $p(n)$ such that $\forall \varphi \in TAUT$, $\exists x$ such that $|x| \leq p(|\varphi|)$ and $f(x)=\varphi$.  Note that any super proof system is maximal.  
\end{definition}

\begin{question}	Is there a super or maximal proof system?
\end{question}

\begin{theorem} \cite{Cook:PV} [Cook]
There exists a super proof system $\iff$ $NP = co-NP$.
\end{theorem}

\begin{homework}
Prove the above theorem for a homework excercise.
\end{homework}

\begin{definition}
A Frege system is a proof system given by a finite set of of schematic axioms and inference rules, and must be implicationally sound and implicationally complete.
\end{definition}

\begin{theorem} \cite{CookReckhow:proofs}
[Cook-Reckhow] If $\mathcal{F}_{1}$, $\mathcal{F}_{2}$ are Frege systems, then $\mathcal{F}_{1}$ p-simulates $\mathcal{F}_{2}$.
\end{theorem}

\begin{proof}  For the proof we will assume $\mathcal{F}_{1}$ and $\mathcal{F}_{2}$ have the same language, but the statement is true in general.   Consider a rule of $\mathcal{F}_{2}$, $\frac{ A_{1} \dots A_{k}}{B}$.  $\mathcal{F}_{1}$ can prove $A_{1} \dots A_{k} \vdash B$ by the implicational completeness of Frege proof systems.  Consider an $\mathcal{F}_{2}$-proof $\varphi_{1} \dots \varphi_{n}$.  We convert to an $\mathcal{F}_{1}$-proof as follows:
$\varphi_{i}$ follows from an inference rule $\frac{A_{1}\sigma \dots A_{k}\sigma}{B\sigma}$,  where $A_{1}\sigma=\varphi_{i_{1}},$ \dots, $A_{k}\sigma = \varphi_{i_{k}}$, with $i_{1} \dots i_{k} < i$, and $B\sigma = \varphi_{i}$.  Assuming $\varphi_{i_{1}}\dots \varphi_{i_{k}}$ already proved, use the substitution $\sigma$ on the  $\mathcal{F}_{1}$-proof $A_{1}\dots A_{k} \vdash B$ to get an $\mathcal{F}_{1}$-proof $\varphi_{i_{1}}\dots \varphi_{i_{k}} \vdash \varphi_{i}$.  Combining this proof and the proof of $\varphi_{i_{1}}\dots \varphi_{i_{k}}$ yields an $\mathcal{F}_{1}$-proof of $\phi_{i}$.

\begin{proof-complexity}
This is a polynomial time procedure.  For each line of the $\mathcal{F}_{2}$-proof, there are $O(1)$ lines in the $\mathcal{F}_{1}$-proof.  If the $\mathcal{F}_{2}$ proof has $n$ lines and $m$  total symbols, the $\mathcal{F}_{1}$ proof has $O(n)$ lines, and each line has $O(m)$ symbols.  So the $\mathcal{F}_{1}$-proof contains $O(n)$ lines, and $O(mn)$ total symbols.  Since $n \leq m$, the size of the $\mathcal{F}_{1}$-proof is bounded by a polynomial in the size of the $\mathcal{F}_{2}$-proof.   
\end{proof-complexity} 
\end{proof}

\begin{question}  Can the bound of $O(mn)$ symbols in the preceeding proof be improved to $O(m)$?  It can if we assume that $\mathcal{F}_{1}$ has modus ponens, but is it true in general?
\end{question}

\begin{question}  Are Frege systems super?  or maximal?
\end{question}

\begin{question}  Is there a ``natural'' proof system stronger than Frege systems?
\end{question}


\section{Extended Frege Sytems}

\begin{definition}
Here we define an extended Frege system, $e\mathcal{F}$.  An $e\mathcal{F}_{0}$-proof is the same as an $\mathcal{F}_{0}$-proof, except the size of the proof is computed differently.  The size of an extended Frege proof of $A$ is (\# of lines in the proof) + $|A|$.
\end{definition}

\begin{example}
In a previous lecture we saw that any formula $A \rightarrow A$ has an $\mathcal{F}_{0}$-proof of five lines.  So there is an $e\mathcal{F}_{0}$-proof of $A \rightarrow A$ of size 5 + $|A|$. 
\end{example}

The catch is that an extended Frege system as defined above is not an abstract proof system, since an abstract proof system defines the size of a proof $x$ to be the number of symbols in $x$.  For this reason we will present an encoding where an $e\mathcal{F}_{0}$ proof with size $n$ in the extended Frege sense can be encoded by a string of length $O(poly(n))$.  We also present a polynomial time decoding algorithm to verify that a string encodes a valid $e\mathcal{F}_{0}$ proof.  This decoding algorithm defines an abstract proof system with the notion of size that we desire, within a polynomial.  

\begin{encoding} \cite{Parikh:length} [Parikh]
Number the rules of inference. The axioms take values $0...9$, and modus ponens takes $10$.
We represent an $e\mathcal{F}_{0}$-proof $\varphi_{1}, \dots , \varphi_{n} = \varphi$ by a tuple $\langle e_{1}, \dots ,e_{n},\varphi \rangle $ where if $\varphi_{i}$ is an instance of axiom $k$ then $e_{i} =k$, and if $\varphi_{i}$ is inferred from $\varphi_{j_{i}}, \varphi_{k_{i}}$ by modus ponens, $e_{i} = \langle 10,j_{i},k_{i} \rangle $.

The size of this proof skeleton is $O(nlogn + | \varphi |)$, where $n$ is the size of the $e\mathcal{F}_{0}$ proof.

\begin{claim}  There is a polynomial time algorithm to decide if an encoding corresponds to a valid $e\mathcal{F}_{0}$-proof.  
\begin{proof}
	We convert the skeleton into a unification problem which has a solution iff the proof skeleton is valid.  We create new ``metavariables'' $y_{1}...y_{n}$, and $z^{i}_{j}$, and search for a substitution $\sigma : y_{i} \mapsto \varphi_{i}$ which must satisfy the following equations:

\begin{enumerate}

\item{$y_{n}  \doteq  \varphi$.   (means $\sigma y_{n} = \varphi$)}

\item{ if $e_{i} = \langle 10, j_{i},k_{i} \rangle$, we require that $y_{k_{i}} \doteq (y_{j_{i}} \rightarrow y_{i})$}

\item{for $0 \leq e_{i} \leq 9$  let $A$ be the $e_{i}$-th axiom.  Replace each $x_{j}$ in $A$ by $z_{j}^{i}$, and denote this instance of the axiom $A$ by $A^{i}$.  We require that $y_{i} \doteq A^{i}$.  }

\end{enumerate}

A substitution $\sigma$ that satisfies these requirements is called a unifier, and the encoding corresponds to a valid $e\mathcal{F}_{0}$-proof of $\varphi$ if and only if such a $\sigma$ exists.  More on this next time.
 
\end{proof}
\end{claim}
\end{encoding}

\bibliography{logic,cstheory}
\end{document}


