We have completely separate definitions of "truth" (⊨) and "provability" (⊢). We would like them to be the same; that is, we should only be able to prove things that are true, and if they are true, we should be able to prove them. These two properties are called soundness and completeness.
A proof system is sound if everything that is provable is in fact true. In other words, if φ1, …, φn⊢ψ then φ1, …, φn⊨ψ.
A proof system is complete if everything that is true has a proof. In other words, if φ1, …, φn⊨ψ then φ1, …, φn⊢ψ.
To prove that the set of natural deduction rules introduced in the previous lecture is sound with respect to the truth-table semantics given two lectures ago, we can use induction on the structure of proof trees.
Let X be the set of well-formed proofs. Then X is an inductively defined set; the set of rules of the proof system are the rules for constructing new elements of X from old.
Let P(x) be the statement ``if x is a valid proof tree ending with φ1, …, φn⊢ψ then φ1, …, φn⊨ψ''. We can prove ∀x∈X, P(x) by structural induction; we simply have to consider each inference rule; for the rules with subgoals above the line we can inductively assume entailment.
The idea behind proving completeness is that we can use the law of excluded middle and ∨ introduction (as in the example proof from the previous lecture) to separate all of the rows of the truth table into separate subproofs; for the interpretations (rows) that satisfy the assumptions (and thus the conclusion) we can do a direct proof; for those that do not we can do a proof using reductio ad absurdum.
In other words, we can build a proof tree corresponding to each row of the truth table and snap them together using the law of excluded middle and ∨ elimination.
We also introduced the syntax and started discussing the semantics of first-order logic, see the slides for the next lecture for details.