A three-valued logic for software specification and validation
Different calculi of partial or three-valued predicates have been used and studied by several authors in the context of software specification, development and validation. This paper offers a critical survey on the development of three-valued logics based on such calculi.
In the first part of the paper we review two three-valued predicate calculi, based on, respectively, McCarthy's and Kleene's propositional connectives and quantifiers, and point out that in a three-valued logic one should distinguish between two notions of validity: strong validity (always true) and weak validity (never false). We define in model-theoretic terms a number of consequence relations for three-valued logics. Each of them is determined by the choice of the underlying predicate calculus and of the weak or strong validity of axioms and of theorems. We discuss mutual relationships between consequence relations defined in such a way and study some of their basic properties.
The second part of the paper is devoted to the development of a formal deductive system of inference rules for a three-valued logic. We use the method of semantic tableaux (slightly modified to deal with three-valued formulas) to develop a Gentzenstyle system of inference rules for deriving valid sequents, which in turn is used to obtain a sound and complete system of natural deduction rules. We have chosen to study the consequence relation determined by the predicate calculus with McCarthy's propositional connectives and Kleene's quantifiers and by the strong interpretation of both axioms and theorems. Although we find this choice appropriate for applications in the area of software specification, verification and development, we regard this logic merely as an example and use it to present some general techniques of developing a sequent calculus and a natural deduction system for a three-valued logic.
Unable to display preview. Download preview PDF.
- [Avron 87]Simple consequence relations. Report ECS-LFCS-87-30, Laboratory for Foundations of Computer Science, University of Edinburgh, June 1987.Google Scholar
- [Barringer, Cheng & Jones 84]Barringer, H., Cheng, J.H., Jones, C.B. A logic covering undefinedness in program proofs. Acta Informatica 21(1984), 251–269.Google Scholar
- [Beth 59]Beth, E.W. The Foundations of Mathematics. North-Holland 1959.Google Scholar
- [Blikle 81a]Blikle, A. On the development of correct specified programs. IEEE Transactions on Software Engineering SE-7 (1981), 251–169.Google Scholar
- [Blikle 81b]Blikle, A. The clean termination of iterative programs. Acta Informatica 16(1981), 199–217.Google Scholar
- [Blikle 87]Blikle, A. MetaSoft Primer: Towards a Metalanguage for Applied Denotational Semantics. LNCS vol.288, Springer-Verlag 1987.Google Scholar
- [Blikle 88]Blikle, A. A calculus of three-valued predicates for software specification and validation. in: Proc. VDM-Europe Symposium 1988, LNCS, Springer-Verlag 1988, this volume.Google Scholar
- [Cheng 86]Cheng, J.H. A logic for partial functions. PhD thesis, Department of Computer Science, University of Manchester 1986; Report UMCS-86-7-1.Google Scholar
- [Goguen 77]Goguen, J.A. Abstract errors for abstract data types. in: Proc. IFIP Working Conference on the Formal Description of Programming Concepts, St.Andrews 1977 (E.Neuhold, ed.), North-Holland 1978.Google Scholar
- [Hoogewijs 79]Hoogewijs, A. On a formalization of the non-definedness notion. Zeitschrift f. Math. Logik u. Grundlagen d. Math. 25(1979), 213–221.Google Scholar
- [Hoogewijs 83]Hoogewijs, A. A partial predicate calculus in a two-valued logic. Zeitschrift f. Math. Logik u. Grundlagen d. Math. 29(1983), 239–243.Google Scholar
- [Hoogewijs 87]Hoogewijs, A. Partial-predicate logic in computer science. Acta Informatica 24(1987), 381–393.Google Scholar
- [Jones 86]Jones, C.B. Systematic Software Development Using VDM. Prentice-Hall 1986.Google Scholar
- [Jones 87]Jones, C.B. VDM proof obligations and their justification. in: VDM — A Formal Method at Work, Proc. VDM-Europe Symposium 1987, LNCS vol.252, Springer-Verlag 1987, 260–286.Google Scholar
- [Kleene 38]Kleene, S.C. On notation for ordinal numbers. Journal of Symbolic Logic 3(1938), 150–155.Google Scholar
- [Kleene 52]Kleene, S.C. Introduction to Mathematics. North Holland 1952, then republished in 1957, 59, 62, 64, 71.Google Scholar
- [Koletsos 76]Koletsos, G. Sequent calculus and partial logic. MSc thesis, The University of Manchester 1976.Google Scholar
- [McCarthy 61]McCarthy, J. A basis for a mathematical theory of computation. Western Joint Computer Conference, May 1961; then published in: Computer Programming and Formal Systems (P.Braffort, D.Hirshberg, eds.) North-Holland 1967, 33–70.Google Scholar
- [Owe 85]Owe, O. An approach to program reasoning based on a first-order logic for partial functions. Research Report 89, Institute of Informatics, University of Oslo, February 1985.Google Scholar
- [Prawitz 65]Prawitz, D. Natural Deduction. Almquist & Wiksell, Stockholm 1965.Google Scholar