\[ \newcommand\infer[3][]{ \begin{array}[b]{c c c c} \style{border-bottom:1px solid;}{ \begin{array}[b]{c c c c} #3 \\ \end{array} } & \hspace{-1em}\raise{-0.5em}{\text{#1}} \\ #2 \end{array} } \]

In this part of the lecture, we outlined the proof of completentess of our proof rules for propositional logic. Recall the definition of completeness: a proof system is complete if whenever \(\phi_1, \dots, \phi_n ⊨ \psi\), we have \(\phi_1,\dots,\phi_n ⊢ φ\).

To show completeness, we assume that \(⊨ φ\); we want to build a valid proof tree for \(⊢φ\).

To do this, we introduce a new notation. If \(I\) is an interpretation, we write \(I ⊢ φ\) as shorthand for \(ψ_P, ψ_Q, \dots ⊢ φ\) where \(ψ_P\) is just \(P\) if \(I(P) = T\) and is \(¬P\) if \(I(P) = F\), and similarly for all of the other base propositions in the formula \(φ\).

Our approach to constructing the proof tree for \(⊢ φ\) will be to give a proof of \(I ⊢ φ\) for each interpretation \(I\), and then repeatedly use law of excluded middle and \(∨\) elimination to snap these separate proofs together. For example, if the variables of \(φ\) are \(P\), \(Q\), and \(R\), we will build proofs of \(P,Q,R ⊢ φ\), and \(P, Q, ¬R ⊢ φ\), and \(P,¬Q,R ⊢ φ\), etc., and then we will combine them as follows:

\[ \infer[($∨$ elim)]{⊢ φ}{ \infer[excl. mid.]{⊢ P ∨ ¬P}{\hspace{1in}} & \infer[($∨$ elim)]{P⊢ φ}{ \infer{⊢ Q ∨ ¬Q}{\hspace{1in}} & \infer{P,Q⊢φ}{ \infer{⊢ R ∨ ¬R}{\hspace{1in}} & \infer{P,Q,R ⊢ φ}{constructed~below} & \infer{P,Q,¬R ⊢ φ}{constructed~below} } & \infer{P,¬Q⊢φ}{\hspace{.4in}\vdots\hspace{.4in}} } & \infer[($∨$ elim)]{¬P⊢ φ}{\hspace{.4in}\vdots\hspace{.4in}} } \]

Therefore, our goal is to show that if \(I ⊨ φ\) then \(I ⊢ φ\). We will prove this by induction on the structure of \(φ\). We need a stronger inductive hypothesis: Let \(P(φ)\) be the statement "if \(I ⊨ φ\) then \(I ⊢ φ\) and if \(I \not ⊨ φ\) then \(I ⊢ ¬φ\)." We will show \(P(Q)\), \(P(¬φ)\), \(P(φ∧ψ)\), etc. As above, we will leave some of these as review exercises.

\(P(Q)\). Assume \(I ⊨ Q\). This means that \(Q[I] = T\), or in other words, \(I(Q) = T\). This means that \(Q\) is one of the assumptions in \(I ⊢ Q\), so we can use the assumption rule \(\cdots,Q ⊢ Q\). On the other hand, if \(I \not⊨ Q\), then \(¬Q\) is one of the assumptions in \(I ⊢ Q\), and again, we can use the assumption rule.

\(P(¬φ)\). We inductively assume \(P(φ)\). If \(I ⊨ ¬φ\), then by the way \(⊨\) is defined, we see that \(I \not⊨ φ\). Therefore, by \(P(φ)\), we see that \(I ⊢ ¬φ\) as required. If, on the other hand, \(I \not ⊨ ¬φ\), then we know that \(I ⊨ φ\). Therefore \(I ⊢ φ\). We want to show \(I ⊢ ¬¬φ\). We can build the following proof:

\[ \infer[($∨$ elim)]{I ⊢ ¬¬φ}{ \infer[(excl. mid.)]{I ⊢ (¬φ) ∨ (¬¬φ)}{\hspace{1in}} & \infer[(absurd)]{I, ¬φ ⊢ ¬¬φ}{ I ⊢ φ & \infer[(assum)]{I,¬φ⊢¬φ}{\hspace{1in}} } & \infer[(assum)]{I, ¬¬φ ⊢ ¬¬φ}{\hspace{1in}} } \]

- \(P(φ∧ψ)\). We inductively assume \(P(φ)\) and \(P(ψ)\). If \(I ⊨ φ∧ψ\) then we see that \(I ⊨ φ\) and \(I ⊨ ψ\) (using the definition of \(eval\)), so by induction we have \(I ⊢ φ\) and \(I ⊢ ψ\). We can combine these with \(∧\) introduction to form a proof of \(I ⊢ φ∧ψ\). If, on the other hand, \(I \not ⊨ φ∧ψ\) then either \(I \not⊨ φ\) or \(I \not⊨ ψ\). Without loss of generality, assume that \(I \not⊨ φ\). By \(P(φ)\), we have \(I ⊢ ¬φ\). The proof tree that \(I ⊢ ¬(φ∧ψ)\) is similar to a homework exercise.

The remaining cases are similar; we examine the definition of \(eval\), and then apply the inductive hypothesis to get pieces of a proof tree, which we then assemble using a proof rule.