Processing math: 0%

\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 39a: completeness

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.

  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 ⊨ ψ (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.