VDM 1988: VDM '88 VDM — The Way Ahead pp 218-242

# A three-valued logic for software specification and validation

Tertium tamen datur
• Beata Konikowska
• Andrzej Tarlecki
• Andrzej Blikle
Foundations And Theory
Part of the Lecture Notes in Computer Science book series (LNCS, volume 328)

## Abstract

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.

## 12 References

1. [Avron 87]
Simple consequence relations. Report ECS-LFCS-87-30, Laboratory for Foundations of Computer Science, University of Edinburgh, June 1987.Google Scholar
2. [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
3. [Beth 59]
Beth, E.W. The Foundations of Mathematics. North-Holland 1959.Google Scholar
4. [Blikle 81a]
Blikle, A. On the development of correct specified programs. IEEE Transactions on Software Engineering SE-7 (1981), 251–169.Google Scholar
5. [Blikle 81b]
Blikle, A. The clean termination of iterative programs. Acta Informatica 16(1981), 199–217.Google Scholar
6. [Blikle 87]
Blikle, A. MetaSoft Primer: Towards a Metalanguage for Applied Denotational Semantics. LNCS vol.288, Springer-Verlag 1987.Google Scholar
7. [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
8. [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
9. [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
10. [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
11. [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
12. [Hoogewijs 87]
Hoogewijs, A. Partial-predicate logic in computer science. Acta Informatica 24(1987), 381–393.Google Scholar
13. [Jones 86]
Jones, C.B. Systematic Software Development Using VDM. Prentice-Hall 1986.Google Scholar
14. [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
15. [Kleene 38]
Kleene, S.C. On notation for ordinal numbers. Journal of Symbolic Logic 3(1938), 150–155.Google Scholar
16. [Kleene 52]
Kleene, S.C. Introduction to Mathematics. North Holland 1952, then republished in 1957, 59, 62, 64, 71.Google Scholar
17. [Koletsos 76]
Koletsos, G. Sequent calculus and partial logic. MSc thesis, The University of Manchester 1976.Google Scholar
18. [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
19. [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
20. [Prawitz 65]
Prawitz, D. Natural Deduction. Almquist & Wiksell, Stockholm 1965.Google Scholar