Partial logics reconsidered: A conservative approach
Olaf Owe · Formal Aspects of Computing · 1993
Abstract Partial functions play an important role in computer science. In order to reason about partial functions one may extend classical logic to a logic supporting partial functions, a so-called partial logic. Usually such an extension necessitates side-conditions on classical proof rules in order to ensure consistency, and introduces non-classical proof rules in order to maintain completeness. These complications depend on the choice of consequence relation and non-monotonic operators. In computer science applications such complications are undesirable, because they affect (semi-) mechanical reasoning methods, and make manual reasoning difficult for computer scientists who are not logicians. By carefully choosing the consequence relation and non-monotonic operators, a simple calculus for partial functions arises. The resulting logic is “healthy” in the sense that “meaningless” formulas (such as top(emptystack) > 1) cannot be concluded, except from contradictory or false assumptions, and a meaningless assumption provides no information. This requires all axioms to be healthy; and as a consequence the “excluded middle” ( a V ¬a) must be weakened (to meaningful a's ). All the well-known classical rules preserve healthiness and are therefore sound in the logic, provided substitutions are restricted to meaningful terms. This means that program reasoning methods based on classical logic usually can be adapted to the presented partial logic.