Skip to main content

Inference Rules for Proving the Equivalence of Recursive Procedures

  • Chapter
Time for Verification

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 6200))

Abstract

We present two proof rules for the equivalence of recursive procedures, in the style of Hoareā€™s rule for recursive invocation of procedures. The first rule can be used for proving partial equivalence of programs; the second can be used for proving their mutual termination. There are various applications to these rules, such as proving backward compatibility.

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

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bouge, L., Cachera, D.: A logical framework to prove properties of alpha programs (revised version). Technical Report RR-3177 (1997)

    Google ScholarĀ 

  2. Craciunescu, S.: Proving the equivalence of CLP programs. In: Stuckey, P.J. (ed.) ICLP 2002. LNCS, vol.Ā 2401, pp. 287ā€“301. Springer, Heidelberg (2002)

    ChapterĀ  Google ScholarĀ 

  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 Transactions on Programming Languages and SystemsĀ 13(4), 451ā€“490 (1991)

    ArticleĀ  Google ScholarĀ 

  4. Francez, N.: Program Verification. Addison-Wesley, Reading (1993)

    MATHĀ  Google ScholarĀ 

  5. Godlin, B.: Regression verification: Theoretical and implementation aspects. Masterā€™s thesis, Technion, Israel Institute of Technology (2008)

    Google ScholarĀ 

  6. Godlin, B., Strichman, O.: Regression verification - a practical way to verify programs. In: Meyer, B., Woodcock, J. (eds.) VSTTE 2005. LNCS, vol.Ā 4171, pp. 496ā€“501. Springer, Heidelberg (2008); Conf in 2005, published in 2007

    Google ScholarĀ 

  7. Godlin, B., Strichman, O.: Inference rules for proving the equivalence of recursive procedures. Acta InformaticaĀ 45(6), 403ā€“439 (2008)

    ArticleĀ  MathSciNetĀ  MATHĀ  Google ScholarĀ 

  8. Godlin, B., Strichman, O.: Regression verification. In: 46th Design Automation Conference, DAC (2009)

    Google ScholarĀ 

  9. Hoare, C.: An axiomatic basis for computer programming. ACM Comm.Ā 12(10), 576ā€“580 (1969)

    ArticleĀ  MATHĀ  Google ScholarĀ 

  10. Hoare, C.: Procedures and parameters: an axiomatic approach. In: Proc. Sym. on semantics of algorithmic languages, vol.Ā (188) (1971)

    Google ScholarĀ 

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

    Google ScholarĀ 

  12. Luckham, D., Park, D., Paterson, M.: On formalized computer programs. J. Comp. Systems Sci.Ā 4(3), 220ā€“249 (1970)

    ArticleĀ  MATHĀ  Google ScholarĀ 

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

    Google ScholarĀ 

  14. Manolios, P., Vroon, D.: Ordinal arithmetic: Algorithms and mechanization. Journal of Automated Reasoning (to appear, 2006)

    Google ScholarĀ 

  15. Pnueli, A., Siegel, M., Shtrichman, O.: Translation validation for synchronous languages. In: Larsen, K.G., Skyum, S., Winskel, G. (eds.) ICALP 1998. LNCS, vol.Ā 1443, pp. 235ā€“246. Springer, Heidelberg (1998)

    ChapterĀ  Google ScholarĀ 

  16. Pnueli, A., Siegel, M., Singerman, E.: Translation validation. Technical report, Sacres and Dept. of Comp. Sci., Weizmann Institute (April 1997)

    Google ScholarĀ 

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

    Google ScholarĀ 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

Ā© 2010 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Godlin, B., Strichman, O. (2010). Inference Rules for Proving the Equivalence of Recursive Procedures. In: Manna, Z., Peled, D.A. (eds) Time for Verification. Lecture Notes in Computer Science, vol 6200. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-13754-9_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-13754-9_8

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-13753-2

  • Online ISBN: 978-3-642-13754-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics