Assignment and Procedure Call Proof Rules

The multiple assignment statement is defined in full generality—including assignment to subscripted variables and record fields—using the “axiomatic” approach of Hoare. Proof rules are developed for calls of procedures using global variables, var parameters, result parameters, and value parameters, using the idea of multiple assignment to provide understanding. An attempt is made to clarify some issues that have arisen concerning the use of rules of inference to aid in generating “verification conditions” in mechanical verifiers and the use of logical variables to denote initial values of program variables.

[1]  Mary Shaw,et al.  An introduction to the construction and verification of Alphard programs , 1976, ICSE '76.

[2]  J. J. Horning,et al.  Report on the programming language Euclid , 1977, SIGP.

[3]  Michael A. Arbib,et al.  The Design of Well-Structured and Correct Programs , 1978, Texts and Monographs in Computer Science.

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

[5]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[6]  David Gries The Multiple Assignment Statement , 1978, Program Construction.

[7]  David C. Luckham,et al.  Verification of Array, Record, and Pointer Operations in Pascal , 1979, TOPL.

[8]  C. A. R. Hoare,et al.  An Axiomatic Definition of the Programming Language PASCAL , 1973, Acta Informatica.

[9]  David Gries,et al.  The Multiple Assignment Statement , 1978, IEEE Transactions on Software Engineering.

[10]  James J. Horning,et al.  A Proof Rule for Euclid Procedures , 1977, Formal Description of Programming Concepts.

[11]  Stephen A. Cook,et al.  Soundness and Completeness of an Axiom System for Program Verification , 1978, SIAM J. Comput..

[12]  Butler W. Lampson,et al.  Proof rules for the programming language Euclid , 1978, Acta Informatica.

[13]  James E. Donahue,et al.  Complementary Definitions of Programming Language Semantics , 1976, Lecture Notes in Computer Science.

[14]  Robert Cartwright,et al.  Unrestricted procedure calls in Hoare's logic , 1978, POPL '78.