Skip to main content
Log in

Inference rules for proving the equivalence of recursive procedures

  • Original article
  • Published:
Acta Informatica Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. 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)

  2. 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

  3. 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)

    Article  Google Scholar 

  4. Fowler, M.: http://www.refactoring.com

  5. Fowler M.: Refactoring: improving the design of existing code. Addison-Wesley, Menlo Park (1999)

    Google Scholar 

  6. Francez N.: Program Verification. Addison-Wesley, Wokingham (1993)

    Google Scholar 

  7. 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)

  8. 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)

  9. Luckham D., Park D., Paterson M.: On formalized computer programs. J. Comput. Syst. Sci. 4(3), 220–249 (1970)

    MATH  MathSciNet  Google Scholar 

  10. Manolios, P.: Computer-Aided Reasoning: ACL2 Case Studies, Chap. Mu-Calculus Model-Checking, pp. 93–111. Kluwer Academic Publishers, Dordrecht (2000)

  11. Manolios, P., Kaufmann, M.: Adding a total order to acl2. In: The Third International Workshop on the ACL2 Theorem Prover (2002)

  12. Manolios, P., Vroon, D.: Ordinal arithmetic: algorithms and mechanization. J Autom Reason (2006) (to appear)

  13. Pratt, T.W.: Kernel equivalence of programs and proving kernel equivalence and correctness by test cases. International Joint Conference on Artificial Intelligence (1971)

  14. Shostak R.: An algorithm for reasoning about equality. Commun ACM 21(7), 583–585 (1978)

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ofer Strichman.

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00236-008-0075-2

Keywords

Navigation