Automatic Constrained Rewriting Induction towards Verifying Procedural Programs

  • Cynthia Kop
  • Naoki Nishida
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8858)


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.


Inference Rule Function Symbol Induction Rule Logical Term Ground Term 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bouhoula, A.: Automated theorem proving by test set induction. Journal of Symbolic Computation 23(1), 47–77 (1997)MathSciNetCrossRefzbMATHGoogle Scholar
  2. 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. 3.
    Bundy, A., Basin, D., Hutter, D., Ireland, A.: Rippling: Meta-Level Guidance for Mathematical Reasoning. Cambridge University Press (2005)Google Scholar
  4. 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. 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)CrossRefGoogle Scholar
  6. 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. 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. 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. 9.
    Huth, M., Ryan, M.: Logic in Computer Science: Modelling and Reasoning about Systems. Cambridge University Press (2000)Google Scholar
  10. 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)CrossRefGoogle Scholar
  11. 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)CrossRefGoogle Scholar
  12. 12.
    Kop, C.: Termination of LCTRSs. In: 13th International Workshop on Termination (WST), pp. 59–63 (2013)Google Scholar
  13. 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)CrossRefGoogle Scholar
  14. 14.
    Kop, C., Nishida, N.: Towards verifying procedural programs using constrained rewriting induction. Technical report, University of Innsbruck (2014),
  15. 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)CrossRefGoogle Scholar
  16. 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. 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. 18.
    Reddy, U.S.: Term rewriting induction. In: Stickel, M.E. (ed.) CADE 1990. LNCS, vol. 449, pp. 162–177. Springer, Heidelberg (1990)CrossRefGoogle Scholar
  19. 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)CrossRefGoogle Scholar
  20. 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. 21.
    Urso, P., Kounalis, E.: Sound generalizations in mathematical induction. Theoretical Computer Science 323(1-3), 443–471 (2004)MathSciNetCrossRefzbMATHGoogle Scholar
  22. 22.
    Walsh, T.: A divergence critic for inductive proof. Journal of Artificial Intelligence Research 4, 209–235 (1996)MathSciNetzbMATHGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Cynthia Kop
    • 1
  • Naoki Nishida
    • 2
  1. 1.Institute of Computer ScienceUniversity of InnsbruckAustria
  2. 2.Graduate School of Information ScienceNagoya UniversityJapan

Personalised recommendations