The empirical sciences are based on inductive inference, that is, the formation of theories by generalization from observations. In this process, scientists place a high value on the mathematical beauty or elegance of a theory. Apart from aesthetic concerns, mathematical simplicity has the virtue of constraining our speculations, preventing us from “over-fitting” the data, and thus increasing the chance that our theories will successfully account for new observations. This criterion is traditionally known as Occam’s razor (after the medieval philosopher William of Ockham, a frequent user though not originator of the principle).
In mathematical proof we observe a similar phenomenon. That is, conjectures and lemmas are often formed by plausible generalizations from particular cases. Imagine, for example, proving a conjecture about an object in N dimensions. We might first try to prove the special case of two or three dimensions, and then generalize the argument to the N-dimensional case. We would prefer a proof of the two-dimensional case that is simple, on the grounds that it will be less prone to depend on particular aspects of this case, thus more likely to generalize.
The appearance of Occam’s razor in logical proof should surprise us, since we require no heuristic justification of conclusions logically deduced from axioms. Nonetheless, such criteria can be highly valuable in the search for a proof, since they allow us to form conjectures that are plausibly valid and potentially useful, and thus to navigate the intractably large space of potential proofs.
We will illustrate these concepts by applying them to proofs about programs. To form generalizations, we use a methodology of interpolation: finding a hypothesis intermediate between a premise and a desired conclusion. We will set out heuristic criteria for generalizations in terms of evidence provided for both validity of the generalization and its utility in constructing a proof. These criteria can be used to discover inductive invariants that prove given properties of programs by considering only fragments of the program’s behavior. We observe that evidence for generalizations comes at a computational cost, and that in practice it is important to strike a balance between cost and quality of generalizations.
Moreover, we observe a subtle but significant difference between the use of Occam’s razor in deductive as opposed to inductive settings. That is, by considering the simplicity of the proof of a proposition in a particular case, we can make distinctions that cannot be made based on the simplicity of hypotheses alone.