Program invariants as fixed points

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.

[1]  Norihisa Suzuki,et al.  Implementation of an array bound checker , 1977, POPL.

[2]  Susan L. Gerhart,et al.  Proof Theory of Partial Correctness Verification Systems , 1976, SIAM J. Comput..

[3]  Samuel N. Kamin,et al.  A complete and consistent hoare axiomatics for a simple programming language , 1977, POPL '77.

[4]  Dana S. Scott,et al.  The lattice of flow diagrams , 1971, Symposium on Semantics of Algorithmic Languages.

[5]  Susan S. Owicki,et al.  A consistent and complete deductive system for the verification of parallel programs , 1976, STOC '76.

[6]  Edmund M. Clarke Programming language constructs for which it is impossible to obtain good hoare-like axiom systems , 1977, POPL '77.

[7]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[8]  Raymond T. Yeh,et al.  Induction as the Basis for Program Verification , 1976, IEEE Transactions on Software Engineering.

[9]  Maarten M. Fokkinga,et al.  Inductive assertion patters for recursive procedures , 1974, Symposium on Programming.

[10]  Edsger W. Dijkstra A simple axiomatic basis for programming language constructs , 1973 .

[11]  Dana S. Scott,et al.  Outline of a Mathematical Theory of Computation , 1970 .

[12]  Mitchell Wand,et al.  A new incompleteness result for Hoare's system , 1976, STOC '76.

[13]  M Fokkinga Inductive Assertion Patterns for Recursive Procedures , 2022 .

[14]  J. W. deBakker Fixed point semantics and Dijkstra's fundamental invariance theorem , 1975 .

[15]  Robert W. Floyd,et al.  Assigning meaning to programs , 1967 .

[16]  C. A. R. Hoare,et al.  Procedures and parameters: An axiomatic approach , 1971, Symposium on Semantics of Algorithmic Languages.

[17]  J. W. de Bakker Flow of control in the proof theory of structured programming , 1975, 16th Annual Symposium on Foundations of Computer Science (sfcs 1975).

[18]  Zohar Manna,et al.  Formalization of Properties of Functional Programs , 1970, JACM.

[19]  Richard J. Lipton,et al.  A necessary and sufficient condition for the existence of hoare logics , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).