Reasoning about call-by-value: a missing result in the history of Hoare's logic

We provide a sound and relatively complete Hoare-like proof system for reasoning about partial correctness of recursive procedures in presence of local variables and the call-by-value parameter mechanism, and in which the correctness proofs are linear in the length of the program. We argue that in spite of the fact that Hoare-like proof systems for recursive procedures were intensively studied, no such proof system has been proposed in the literature.

[1]  David von Oheimb Hoare Logic for Mutual Recursion and Local Variables , 1999, FSTTCS.

[2]  J. W. de Bakker,et al.  Mathematical theory of program correctness , 1980, Prentice-Hall international series in computer science.

[3]  Ernst-Rüdiger Olderog,et al.  Correctnes of Programs with Pascal-Like Procedures without Global Variables , 1984, Theor. Comput. Sci..

[4]  J. W. de Bakker,et al.  A Sound and Complete Proof System for Partial Program Correctness , 1979, MFCS.

[5]  C. A. R. Hoare,et al.  Proof of a Recursive Program: Quicksort , 1971, Comput. J..

[6]  Robert Cartwright,et al.  The logic of aliasing , 1981, Acta Informatica.

[7]  Frank S. de Boer,et al.  Verification of object-oriented programs: A transformational approach , 2010, J. Comput. Syst. Sci..

[8]  Joseph Y. Halpern,et al.  Reasoning about Procedures as Parameters in the Language L4 , 1989, Inf. Comput..

[9]  Krzysztof R. Apt,et al.  Ten Years of Hoare's Logic: A Survey—Part I , 1981, TOPL.

[10]  Ernst-Rüdiger Olderog,et al.  Verification of Sequential and Concurrent Programs , 1997, Graduate Texts in Computer Science.

[11]  Bernhard Josko,et al.  A sound and relatively complete Hoare-logic for a language with higher type procedures , 1983, Acta Informatica.

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

[13]  Frank S. de Boer,et al.  Proving Total Correctness of Recursive Procedures , 1990, Inf. Comput..

[14]  Edmund M. Clarke,et al.  Programming Language Constructs for Which It Is Impossible To Obtain Good Hoare Axiom Systems , 1979, JACM.

[15]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

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

[17]  Stephen A. Cook,et al.  Corrigendum: Soundness and Completeness of an Axiom System for Program Verification , 1981, SIAM J. Comput..

[18]  Ernst-Rüdiger Olderog,et al.  Fifty years of Hoare’s logic , 2019, Formal Aspects of Computing.

[19]  Adam Chlipala,et al.  Certified Programming with Dependent Types - A Pragmatic Introduction to the Coq Proof Assistant , 2013 .