Abstract
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.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
Arons, T., Elster, E., Fix, L., Mador-Haim, S., Mishaeli, M., Shalev, J., Singerman, E., Tiemeyer, A., Vardi, M.Y., Zuck, L.D.: Formal verification of backward compatibility of microcode. In: Etessami, K., Rajamani, S. (eds.) Proceedings of 17th International Conference on Computer Aided Verification (CAV’05), Lecture Notes in Computer Science, vol. 3576. Springer, Edinburgh (2005)
Bouge, L., Cachera, D.: A logical framework to prove Properties of alpha programs (revised version). Tech. Rep. RR-3177 (1997). citeseer.ist.psu.edu/bouge97logical.html
Cytron R., Ferrante J., Rosen B.K., Wegman M.N., Zadeck F.K.: Efficiently computing static single assignment form and the control dependence graph. ACM Trans Program Lang Syst 13(4), 451–490 (1991)
Fowler, M.: http://www.refactoring.com
Fowler M.: Refactoring: improving the design of existing code. Addison-Wesley, Menlo Park (1999)
Francez N.: Program Verification. Addison-Wesley, Wokingham (1993)
Hoare, C.: Prcedures and parameters: an axiomatic approach. In: Proceedings of Symposium on Semantics of Algorithmic Languages, vol. 188, pp.102–116. Springer, New York (1971)
Kroening, D., Clarke, E., Yorav, K.: Behavioral consistency of C and Verilog programs using bounded model checking. In: Proceedings of DAC 2003, pp. 368–371. ACM Press, New York (2003)
Luckham D., Park D., Paterson M.: On formalized computer programs. J. Comput. Syst. Sci. 4(3), 220–249 (1970)
Manolios, P.: Computer-Aided Reasoning: ACL2 Case Studies, Chap. Mu-Calculus Model-Checking, pp. 93–111. Kluwer Academic Publishers, Dordrecht (2000)
Manolios, P., Kaufmann, M.: Adding a total order to acl2. In: The Third International Workshop on the ACL2 Theorem Prover (2002)
Manolios, P., Vroon, D.: Ordinal arithmetic: algorithms and mechanization. J Autom Reason (2006) (to appear)
Pratt, T.W.: Kernel equivalence of programs and proving kernel equivalence and correctness by test cases. International Joint Conference on Artificial Intelligence (1971)
Shostak R.: An algorithm for reasoning about equality. Commun ACM 21(7), 583–585 (1978)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Godlin, B., Strichman, O. Inference rules for proving the equivalence of recursive procedures. Acta Informatica 45, 403–439 (2008). https://doi.org/10.1007/s00236-008-0075-2
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00236-008-0075-2