Automatic Constrained Rewriting Induction towards Verifying Procedural Programs

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.

[1]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[2]  Christian von Essen,et al.  Automated Termination Analysis of Java Bytecode by Term Rewriting , 2010, RTA.

[3]  David Aspinall,et al.  Formalising Java's Data Race Free Guarantee , 2007, TPHOLs.

[4]  M. A. McRobbie,et al.  Automated Deduction — Cade-13 , 1996, Lecture Notes in Computer Science.

[5]  Deepak Kapur,et al.  Termination Analysis of C Programs Using Compiler Intermediate Languages , 2011, RTA.

[6]  Alan Bundy,et al.  Rippling - meta-level guidance for mathematical reasoning , 2005, Cambridge tracts in theoretical computer science.

[7]  Uday S. Reddy,et al.  Term Rewriting Induction , 1990, CADE.

[8]  Larry Wos,et al.  What Is Automated Reasoning? , 1987, J. Autom. Reason..

[9]  Stephan Falke,et al.  Term rewriting with built-in numbers and collection data structures , 2009 .

[10]  Mario Rodríguez-Artalejo,et al.  Functional and Constraint Logic Programming , 2001, CCL.

[11]  Burkhart Wolff,et al.  Theorem proving in higher order logics : 16 International Conference, TPHOLs 2003, Rome, Italy, September 8-12, 2003 : proceedings , 2003 .

[12]  Adel Bouhoula,et al.  Automated Theorem Proving by Test Set Induction , 1997, J. Symb. Comput..

[13]  Frank van Harmelen,et al.  Extensions to the Rippling-Out Tactic for Guiding Inductive Proofs , 1990, CADE.

[14]  Deepak Kapur,et al.  Automatic Generation of Generalization Lemmas for Proving Properties of Tail-Recursive Definitions , 2003, TPHOLs.

[15]  Deepak Kapur,et al.  Lemma Discovery in Automated Induction , 1996, CADE.

[16]  Toshiki Sakabe,et al.  On Proving Termination of Constrained Term Rewrite Systems by Eliminating Edges from Dependency Graphs , 2011, WFLP.

[17]  Toby Walsh,et al.  A Divergence Critic for Inductive Proof , 1996, J. Artif. Intell. Res..

[18]  Emmanuel Kounalis,et al.  Sound generalizations in mathematical induction , 2004, Theor. Comput. Sci..

[19]  Cynthia Kop,et al.  Term Rewriting with Logical Constraints , 2013, FroCos.

[20]  Masahiko Sakai,et al.  Lemma Generation Method in Rewriting Induction for Constrained Term Rewriting Systems , 2012 .

[21]  Jacques D. Fleuriot,et al.  IsaPlanner: A Prototype Proof Planner in Isabelle , 2003, CADE.

[22]  Deepak Kapur,et al.  A Term Rewriting Approach to the Automated Termination Analysis of Imperative Programs , 2009, CADE.

[23]  Cynthia Kop,et al.  Towards Verifying Procedural Programs using Constrained Rewriting Induction , 2014, ArXiv.

[24]  Alan Bundy,et al.  The Automation of Proof by Mathematical Induction , 1999, Handbook of Automated Reasoning.

[25]  Deepak Kapur,et al.  Rewriting Induction + Linear Arithmetic = Decision Procedure , 2012, IJCAR.

[26]  Cynthia Kop Termination of LCTRSs , 2016, ArXiv.

[27]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[28]  Valentin Goranko,et al.  Logic in Computer Science: Modelling and Reasoning About Systems , 2007, J. Log. Lang. Inf..