Abstract.
The paper focusses on the logical backgrounds of the Dijkstra-Scholten program development style for correct programs. For proving the correctness of a program (i.e. the fact that the program satisfies its specifications), one often uses a special form of predicate calculus in this style of programming. We call this the Dijkstra-Scholten (DS) predicate calculus, since [DS90] is the first place in which it is described. DS predicate calculus can be conceived of as a logically sound and complete manipulation technique for dealing with logical formulas which also contain programming variables. We relate DS predicate calculus to the classical logical formalism, by contrasting its syntax, derivation rules and semantics to the classical framework. We also comment on two abstractions of DS predicate calculus: the set-theoretical and the algebraic approach. In doing so, we give DS predicate calculus and its abstract variants a firm basis, on a par with the foundations of the well-known first order logic. Such a comparison of DS predicate calculus and classical logic has not yet been sufficiently elaborated before. We conclude our paper with a number of examples showing that the, up to now, unsatisfactory presentation of DS predicate calculus and some of its features (such as the square brackets notation) has led to errors and fallacies in the literature.
Similar content being viewed by others
Author information
Authors and Affiliations
Additional information
Received: 22 May 1997 / 5 May 1998
Rights and permissions
About this article
Cite this article
Bijlsma, L., Nederpelt, R. Dijkstra-Scholten predicate calculus: concepts and misconceptions. Acta Informatica 35, 1007–1036 (1998). https://doi.org/10.1007/s002360050150
Issue Date:
DOI: https://doi.org/10.1007/s002360050150