Absurdity and negation in type theory
In Section 5.4, IV, we saw how implication can be coded in type theory (in particular, in λP). We recall: by coding the implication A ⇒ B as the function type A → B, we mimic the behaviour of ‘implication’, including its introduction and elimination rule, in type theory. So we also have minimal propositional logic in λC, since λP is part of λC.
In order to get more than minimal propositional logic, we have to be able to handle more connectives, such as negation (‘¬’), conjunction (‘∧’) and disjunction (‘∨’). This cannot be done in λP, but in λC there exist very elegant ways to code the respective notions, as we presently show.
We start with negation. It is natural to consider the negation ¬A as the implication A ⇒ ⊥, where ⊥ is the ‘absurdity’, also called contradiction. So we interpret ¬A as ‘A implies absurdity’. But for this we first need a coding of the absurdity itself. (In Exercises 3.5 and 6.1 (a) we already mentioned codings of ⊥ in λ2 and λC, which we shall justify below.)
A characteristic property of the proposition ‘absurdity’, or ⊥, is the following:
If ⊥ is true, then every proposition is true.
In natural deduction this property is known under the name ⊥-elimination.