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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Bouge, L., Cachera, D.: A logical framework to prove properties of alpha programs (revised version). Technical Report RR-3177 (1997)
Craciunescu, S.: Proving the equivalence of CLP programs. In: Stuckey, P.J. (ed.) ICLP 2002. LNCS, vol.Ā 2401, pp. 287ā301. Springer, Heidelberg (2002)
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)
Francez, N.: Program Verification. Addison-Wesley, Reading (1993)
Godlin, B.: Regression verification: Theoretical and implementation aspects. Masterās thesis, Technion, Israel Institute of Technology (2008)
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
Godlin, B., Strichman, O.: Inference rules for proving the equivalence of recursive procedures. Acta InformaticaĀ 45(6), 403ā439 (2008)
Godlin, B., Strichman, O.: Regression verification. In: 46th Design Automation Conference, DAC (2009)
Hoare, C.: An axiomatic basis for computer programming. ACM Comm.Ā 12(10), 576ā580 (1969)
Hoare, C.: Procedures and parameters: an axiomatic approach. In: Proc. Sym. on semantics of algorithmic languages, vol.Ā (188) (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. Comp. Systems Sci.Ā 4(3), 220ā249 (1970)
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. Journal of Automated Reasoning (to appear, 2006)
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)
Pnueli, A., Siegel, M., Singerman, E.: Translation validation. Technical report, Sacres and Dept. of Comp. Sci., Weizmann Institute (April 1997)
Pratt, T.W.: Kernel equivalence of programs and proving kernel equivalence and correctness by test cases. In: International Joint Conference on Artificial Intelligence (1971)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)