\[ \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} } \]

Lecture 40: Soundness and completeness

Soundness and completeness

In the last two lectures, we have looked at propositional formulas from two perspectives: truth and provability. Our goal now is to (meta) prove that the two interpretations match each other. We will prove:

  1. Soundness: if something is provable, it is valid. If \(⊢ φ\) then \(⊨ φ\).
  2. Completeness: if something is valid, it is provable. If \(⊨ φ\) then \(⊢ φ\).

In this lecture, we will outline proofs for both of these facts for the propositional logic we have been developing.

Note that this is analogous to Kleene's theorem: there we examined language from two different perspectives (recognizability and regularity) and then proved that they gave the same answers.

Proof of Soundness

To show that our proof system is sound, we prove something stronger: if \(φ_1, φ_2, \dots ⊢ ψ\) then \(φ_1, φ_2, \dots ⊨ ψ\).

Assume \(φ_1, φ_2, \dots ⊢ ψ\), so that there exists a proof tree \(T\) terminating with this line. Note that proof trees are inductively defined structures, so we can actually do a meta-inductive proof on the structure of the object proof.

Let \(T\) be a proof tree, and let \(P(T)\) say "if \(T\) is a complete proof tree showing that \(φ_1, φ_2, \dots ⊢ ψ\), then \(φ_1, φ_2, \dots ⊨ ψ\). To prove \(∀T, P(T)\), we will consider trees that end with each of the possible rules. If the proof tree has subtrees \(T_1, T_2, \dots\), we will inductively assume \(P(T_1), P(T_2), \dots\).

For example, if the rule at the root of the tree is the and introduction rule:

\[ \infer[($∧$ intro)]{\cdots ⊢ φ ∧ ψ}{ \cdots ⊢ φ & \cdots ⊢ ψ } \]

then there are valid proof subtrees ending in \(\cdots ⊢ φ\) and \(\cdots ⊢ ψ\), so we will inductively assume that \(\cdots ⊨ φ\) and \(\cdots ⊨ ψ\).

We examine a few of the rules; the remaining cases are left as review exercises. We refer to the list of rules here

  1. \(P(T)\) where \(T\) ends with law of excluded middle to show \(\cdots ⊢ φ ∨ ¬φ\). We wish to show that in any \(I\) satisfying the assumptions, \(I ⊨ φ ∨ ¬φ\). Well, \(φ[I]\) is either T or F. If it is T, then the rule for evaluating \(∨\) says that \(φ∨¬φ\) evaluates to T, while if it is \(F\), then \(¬φ\) evaluates to true, and again we see that \(φ∨¬φ\) evaluates to T.

  2. \(P(T)\) where \(T\) ends with reductio ad absurdum:

\[ \infer[(absurd)]{A ⊢ ψ}{A ⊢ φ & A ⊢ ¬φ} \]

We wish to show that in any interpretation \(I\) satisfying the assumptions \(A\), that \(I ⊨ ψ\). Inductively, we assume that \(I ⊨ φ\) and \(I ⊨ ¬φ\). But this is impossible, because \(φ\) either evaluates to T or F in \(I\). So the conclusion for all \(I\) satisfying \(A\), \(I ⊨ ψ\) is vacuously true: there are no interpretations satisfying \(A\).

  1. \(P(T)\) where \(T\) ends with \(∧\) introduction:

\[ \infer[($∧$ intro)]{A ⊢ φ ∧ ψ}{A ⊢ φ & A ⊢ ψ} \]

We wish to show that in any interpretation \(I\) satisfying \(A\), that \(I ⊨ φ∧ψ\). We inductively assume \(I ⊨ φ\) and \(I ⊨ ψ\). The rules for evaluating \(φ∧ψ[I]\) immediately show that \(I ⊨ φ∧ψ\) as required.

The remaining cases are left as review exercises.


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.

  1. \(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.

  2. \(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}} } \]

  1. \(P(φ∧ψ)\). We inductively assume \(P(φ)\) and \(P(ψ)\). If \(I ⊨ φ∧ψ\) then we see that \(I ⊨ φ\) and \(I ⊨ ψ\), 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 induction, \(I ⊢ ¬φ\). The proof tree that \(I ⊢ ¬(φ∧ψ)\) is in the homework.

The remaining cases are left as review exercises.