Program invariants as fixed points
- 1 September 1977
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
We argue that relative soundness and completeness theorems for Floyd-Hoare Axiom Systems ([6], [5], [18]) are really fixed point theorems. We give a characterization of program invariants as fixed points of functionals which may be obtained in a natural manner from the text of a program. We show that within the framework of this fixed point theory, relative soundness and completeness results have a particularly simple interpretation. Completeness of a Floyd-Hoare Axiom system is equivalent to the existence of a fixed point for an appropriate functional, and soundness follows from the maximality of this fixed point, The functionals associated with regular procedure declarations are similar to predicate transformers of Dijkstra; for non-regular recursions it is necessary to use a generalization of the predicate transformer concept which we call a relational transformer.Keywords
This publication has 15 references indexed in Scilit:
- Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpointsPublished by Association for Computing Machinery (ACM) ,1977
- Programming language constructs for which it is impossible to obtain good hoare-like axiom systemsPublished by Association for Computing Machinery (ACM) ,1977
- Proof Theory of Partial Correctness Verification SystemsSIAM Journal on Computing, 1976
- Flow of control in the proof theory of structured programmingPublished by Institute of Electrical and Electronics Engineers (IEEE) ,1975
- Consistent and complementary formal theories of the semantics of programming languagesActa Informatica, 1974
- A simple axiomatic basis for programming language constructsIndagationes Mathematicae, 1974
- Procedures and parameters: An axiomatic approachLecture Notes in Mathematics, 1971
- Formalization of Properties of Functional ProgramsJournal of the ACM, 1970
- An axiomatic basis for computer programmingCommunications of the ACM, 1969
- Assigning meanings to programsPublished by American Mathematical Society (AMS) ,1967