Skip to main content

Automatic Constrained Rewriting Induction towards Verifying Procedural Programs

  • Conference paper
Book cover Programming Languages and Systems (APLAS 2014)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8858))

Included in the following conference series:

Abstract

This paper aims at developing a verification method for procedural programs via a transformation into logically constrained term rewriting systems (LCTRSs). To this end, we adapt existing rewriting induction methods to LCTRSs and propose a simple yet effective method to generalize equations. We show that we can handle realistic functions, involving, e.g., integers and arrays. An implementation is provided.

This research is supported by the Austrian Science Fund (FWF) international project I963, the Japan Society for the Promotion of Science (JSPS) and Nagoya University’s Graduate Program for Real-World Data Circulation Leaders from MEXT, Japan.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

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. Bouhoula, A.: Automated theorem proving by test set induction. Journal of Symbolic Computation 23(1), 47–77 (1997)

    Article  MathSciNet  MATH  Google Scholar 

  2. Bundy, A.: The automation of proof by mathematical induction. In: Voronkov, A., Robinson, A. (eds.) Handbook of Automated Reasoning, pp. 845–911. Elsevier (2001)

    Google Scholar 

  3. Bundy, A., Basin, D., Hutter, D., Ireland, A.: Rippling: Meta-Level Guidance for Mathematical Reasoning. Cambridge University Press (2005)

    Google Scholar 

  4. Falke, S., Kapur, D.: A term rewriting approach to the automated termination analysis of imperative programs. In: Schmidt, R.A. (ed.) CADE 2009. LNCS (LNAI), vol. 5663, pp. 277–293. Springer, Heidelberg (2009)

    Google Scholar 

  5. Falke, S., Kapur, D.: Rewriting induction + linear arithmetic = decision procedure. In: Gramlich, B., Miller, D., Sattler, U. (eds.) IJCAR 2012. LNCS (LNAI), vol. 7364, pp. 241–255. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  6. Falke, S., Kapur, D., Sinz, C.: Termination analysis of C programs using compiler intermediate languages. In: Schmidt-Schauß, M. (ed.) 22nd International Conference on Rewriting Techniques and Applications (RTA), Dagstuhl, Leibniz. LIPIcs, vol. 10, pp. 41–50 (2011)

    Google Scholar 

  7. Falke, S.: Term Rewriting with Built-In Numbers and Collection Data Structures. Ph.D. thesis, University of New Mexico, Albuquerque, NM, USA (2009)

    Google Scholar 

  8. Furuichi, Y., Nishida, N., Sakai, M., Kusakari, K., Sakabe, T.: Approach to procedural-program verification based on implicit induction of constrained term rewriting systems. IPSJ Transactions on Programming 1(2), 100–121 (2008) (in Japanese)

    Google Scholar 

  9. Huth, M., Ryan, M.: Logic in Computer Science: Modelling and Reasoning about Systems. Cambridge University Press (2000)

    Google Scholar 

  10. Kapur, D., Sakhanenko, N.A.: Automatic generation of generalization lemmas for proving properties of tail-recursive definitions. In: Basin, D., Wolff, B. (eds.) TPHOLs 2003. LNCS, vol. 2758, pp. 136–154. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  11. Kapur, D., Subramaniam, M.: Lemma discovery in automated induction. In: McRobbie, M.A., Slaney, J.K. (eds.) CADE 1996. LNCS, vol. 1104, pp. 538–552. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  12. Kop, C.: Termination of LCTRSs. In: 13th International Workshop on Termination (WST), pp. 59–63 (2013)

    Google Scholar 

  13. Kop, C., Nishida, N.: Term rewriting with logical constraints. In: Fontaine, P., Ringeissen, C., Schmidt, R.A. (eds.) FroCoS 2013. LNCS (LNAI), vol. 8152, pp. 343–358. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  14. Kop, C., Nishida, N.: Towards verifying procedural programs using constrained rewriting induction. Technical report, University of Innsbruck (2014), http://arxiv.org/abs/1409.0166

  15. de Moura, L., Bjørner, N.: Z3: An efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  16. Nakabayashi, N., Nishida, N., Kusakari, K., Sakabe, T., Sakai, M.: Lemma generation method in rewriting induction for constrained term rewriting systems. Computer Software 28(1), 173–189 (2010) (in Japanese)

    Google Scholar 

  17. Otto, C., Brockschmidt, M., von Essen, C., Giesl, J.: Automated termination analysis of Java bytecode by term rewriting. In: Lynch, C. (ed.) 21st International Conference on Rewriting Techniques and Applications (RTA), Dagstuhl, Leibniz. LIPIcs, vol. 6, pp. 259–276 (2010)

    Google Scholar 

  18. Reddy, U.S.: Term rewriting induction. In: Stickel, M.E. (ed.) CADE 1990. LNCS, vol. 449, pp. 162–177. Springer, Heidelberg (1990)

    Chapter  Google Scholar 

  19. Sakata, T., Nishida, N., Sakabe, T.: On proving termination of constrained term rewrite systems by eliminating edges from dependency graphs. In: Kuchen, H. (ed.) WFLP 2011. LNCS, vol. 6816, pp. 138–155. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  20. Sakata, T., Nishida, N., Sakabe, T., Sakai, M., Kusakari, K.: Rewriting induction for constrained term rewriting systems. IPSJ Transactions on Programming 2(2), 80–96 (2009) (in Japanese)

    Google Scholar 

  21. Urso, P., Kounalis, E.: Sound generalizations in mathematical induction. Theoretical Computer Science 323(1-3), 443–471 (2004)

    Article  MathSciNet  MATH  Google Scholar 

  22. Walsh, T.: A divergence critic for inductive proof. Journal of Artificial Intelligence Research 4, 209–235 (1996)

    MathSciNet  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Kop, C., Nishida, N. (2014). Automatic Constrained Rewriting Induction towards Verifying Procedural Programs. In: Garrigue, J. (eds) Programming Languages and Systems. APLAS 2014. Lecture Notes in Computer Science, vol 8858. Springer, Cham. https://doi.org/10.1007/978-3-319-12736-1_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-12736-1_18

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-12735-4

  • Online ISBN: 978-3-319-12736-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics