Abstract
Partial functions, hence also partial predicates, cannot be avoided in algorithms. Although the former fact has been accepted in the theory of software very early, the latter is still not quite commonly recognized. In many programming- and software-specification languages the partiality of predicates (Boolean expressions) is treated only semiformally. On the other hand it is quite well known today that an explicit formal treatment of partial predicates substantially improves the discipline of software specification, programming and validation.
Partial predicates are usually formalized as three-valued functions where the third value corresponds to an undefinedness. This leads, of course, to the necessity of developing a new calculus of predicates and new rules of proving facts expressed by three-valued predicates. One possible approach to the latter problem, which has been already explored by several authors, consists in developing a three-valued logic which is used later in proving properties of software. In this paper we are surveying and analyzing another approach. We show how to combine a calculus of three-valued predicates — to be used in the construction of algorithms — with a two-valued logic — to be used in proving facts about these algorithms. We briefly discuss the possible applications of this approach in the construction of software and of software-specification metalanguages. In the opinion of the author our approach has the advantage of using classical techniques of proofs which are better understood by the majority of users and which are supported by many existing software systems such as e.g. LCF or MIZAR.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
BARRINGER H., CHENG J.H., JONES C.B. A logic covering undefinedness in program proofs, Acta Informatica 21 (1984), 251–269
BLIKLE A. On the development of correct specified programs, IEEE Trans. on Soft. Eng. SE-7 (1981), 519–527
The clean termination of iterative programs, Acta Informatica 16 (1981), 199–217
BLIKLE A. MetaSoft Primer, Towards a Metalanguage for Applied Denotational Semantics, LNCS 288, Springer-Verlag 1987
BLIKLE A. A guided tour of the mathematics of MetaSoft'88, Information Processing Letters (to appear in 1988)
COLMERAUER A., PIQUE J.F. About natural logic, in: Advances in Data Base Theory (H.Gallaire and J.Minker, eds.), Vol.1 (1981), 343–365
DIJKSTRA E.W. A Discipline of Programming, Prentice Hall 1976
HOOGEWIJS A. On a formalization of the non-definedness notion, Zeitschrift f. Math. Logik u. Grundlagen d. Math. Vol.25 (1979), 213–221
A partial predicate calculus in a two-valued logic, ibid. Vol.29 (1983), 239–243
Partial-predicate logic in computer science, Acta Informatica 24, 381–393 (1987)
JONES C.B. Systematic Software Development Using VDM, Prentice-Hall International Series in Computer Science 1986
JONES C.B. VDM proof obligations and their justification, in: VDM — A Formal Method at Work, Proc. VDM-Europe Symposium 1987, LNCS 252, Springer-Verlag 1987
KLEENE S.C. On notation for ordinal numbers, Journal of Symb. Logic, Vol.3 (1938), 150–155
KLEENE S.C. Introduction to Metamathematics, North Holland 1952; since then republished in 1957, 59, 62, 64, 67, 71
KONIKOWSKA B., TARLECKI A., BLIKLE A. A three-valued logic for software specification and validation, a manuscript submitted to VDM'88
LUKASIEWICZ J. O logice trojwartosciowej (On three-valued logic), Ruch Filozoficzny, Vol.5, Lwow 1920, 169–171
McCARTHY J. A basis for a mathematical theory of computation. Western Joint Computer Conference, May 1961, since then published in Computer Programming and Formal Systems (P.Braffort, D.Hirshberg eds.), North Holland 1967, 33–70
OWE, O. An approach to program reasoning based on a first order logic for partial functions, Res.Rep. Institute of Informatics, University of Oslo, no.89 1985
TRYBULEC A., BLAIR H. Computer assisted reasoning with Mizar, Proc. International Joint Conference on Artificial Intelligence 1985, Los Angeles 1985
TRYBULEC A., BLAIR H. Computer aided reasoning, in: Logic of programs 1985, LNCS 193, Springer-Verlag 1985
WORONOWICZ E. Wspomaganie procesu konstrukcji programow poprawnych w eksperymentalnym srodowisku programistycznym (Supporting the process of correct-program derivation in an experimental programming environment), Ph.D. dissertation, Bialystok Branch of Warsaw University 1986
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1988 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Blikle, A. (1988). Three-valued predicates for software specification and validation. In: Bloomfield, R.E., Marshall, L.S., Jones, R.B. (eds) VDM '88 VDM — The Way Ahead. VDM 1988. Lecture Notes in Computer Science, vol 328. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-50214-9_20
Download citation
DOI: https://doi.org/10.1007/3-540-50214-9_20
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-50214-2
Online ISBN: 978-3-540-45955-2
eBook Packages: Springer Book Archive