Partial-correctness theories as first-order theories
We show that any predicate transformer is rendered (semantically) by a first-order theory, provided it is propositionally closed, i.e. closed under the rules of Consequence, Conjunction and Disjunction.
It follows that fundamental results in the metamathematics of first-order theories can be applied to propositionally closed predicate transformers, and therefore also to partial-correctness theories of programs. In particular, any such theory is complete for the Hoare semantics it induces, by Godel's Strong Completeness Theorem. From this is also follows that a predicate transformer is a partial-correctness theory of some I/O relation iff it is propositionally closed [Par83].
Unable to display preview. Download preview PDF.
- [BT83]Jan A. Bergstra and John V. Tucker, The axiomatic semantics of programs based on Hoare's Logic; Preprint, Technical Report 1W 236/83, September 1983, Mathematisch Centrum, Amsterdam.Google Scholar
- [Dij76]Edsger W. Dijkstra, A Discipline of Programming; Prentice-Hall, Englewood Cliffs (1976) xvii+217pp.Google Scholar
- [End70]Herbert B. Enderton, A Mathematical Introduction to logic; Academic Press, New York (1970) xiii+295pp.Google Scholar
- [HL74]C.A.R. Hoare and P. Lauer, Consistent and complementary formal theories of the semantics of programming languages; Acta Informatica 3 (1974) 135–155.Google Scholar
- [Hoa69]C.A.R. Hoare, An axiomatic basis for computer programming; Communications of the ACM 12 (1969) 576–580.Google Scholar
- [MH82]Albert Meyer and Joseph Halpern, Axiomatic definition of programming languages: a theoretical assessment, Journal of the ACM 29 (1982) 555–576.Google Scholar
- [HW73]C.A.R. Hoare and Nicolas Wirth, An axiomatic definition of the programming language PASCAL; Acta Informatica 2 (1973) 335–355.Google Scholar
- [Lau72]P. Lauer. Consistent and complementary formal theories of the semantics of programming languages; PhD Thesis, Queens University, Belfast (1972).Google Scholar
- [Man69]Zohar Manna, The correctness of programs; Journal of Computer and Systems Science 3 (1969) 119–127.Google Scholar
- [Par83]Rohit Parikh, Some applications of topology to program semantics; Math. Systems Theory 16 (1983) 111–131.Google Scholar
- [Sch77]Kurt Schutte, Proof Theory; Springer-Verlag, Berlin (1977) xii+299pp.Google Scholar