Inference rules for proving the equivalence of recursive procedures

Inspired by Hoare’s rule for recursive procedures, we present three proof rules for the equivalence between recursive programs. The first rule can be used for proving partial equivalence of programs; the second can be used for proving their mutual termination; the third rule can be used for proving the equivalence of reactive programs. There are various applications to such rules, such as proving equivalence of programs after refactoring and proving backward compatibility.

[1]  Ofer Strichman,et al.  Regression Verification - A Practical Way to Verify Programs , 2005, VSTTE.

[2]  Daniel Kroening,et al.  Behavioral consistency of C and Verilog programs using bounded model checking , 2003, Proceedings 2003. Design Automation Conference (IEEE Cat. No.03CH37451).

[3]  Amir Pnueli,et al.  Translation Validation for Synchronous Languages , 1998, ICALP.

[4]  Panagiotis Manolios,et al.  Adding a Total Order to ACL2 , 2002, ACL 2002.

[5]  Moshe Y. Vardi,et al.  Formal Verification of Backward Compatibility of Microcode , 2005, CAV.

[6]  Panagiotis Manolios,et al.  Ordinal Arithmetic: Algorithms and Mechanization , 2005, Journal of Automated Reasoning.

[7]  Luc Bougé,et al.  A logical framework to prove properties of ALPHA programs , 1997, Proceedings IEEE International Conference on Application-Specific Systems, Architectures and Processors.

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

[9]  Nissim Francez,et al.  Program verification , 1992, International computer science series.

[10]  Panagiotis Manolios,et al.  Computer-aided reasoning : ACL2 case studies , 2000 .

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

[12]  David C. Luckham,et al.  On Formalised Computer Programs , 1970, J. Comput. Syst. Sci..

[13]  Panagiotis Manolios Mu-calculus model-checking , 2000 .

[14]  Terrence W. Pratt Kernel Equivalence of Programs and Proving Kernel Equivalence and Correctness by Test Cases , 1971, IJCAI.

[15]  Robert E. Shostak,et al.  An algorithm for reasoning about equality , 1977, CACM.

[16]  Sorin Craciunescu,et al.  Recurrence with affine level mappings is P-time decidable for binary CLP ( R ) Technical note , 2006 .

[17]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[18]  Panagiotis Manolios,et al.  Computer-Aided Reasoning , 2000, Advances in Formal Methods.

[19]  Ofer Strichman,et al.  Regression verification , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[20]  Amir Pnueli,et al.  Translation Validation , 1998, TACAS.