An Efficient Decision Procedure for Imperative Tree Data Structures

We present a new decidable logic called TREX for expressing constraints about imperative tree data structures. In particular, TREX supports a transitive closure operator that can express reachability constraints, which often appear in data structure invariants. We show that our logic is closed under weakest precondition computation, which enables its use for automated software verification. We further show that satisfiability of formulas in TREX is decidable in NP. The low complexity makes it an attractive alternative to more expensive logics such as monadic second-order logic (MSOL) over trees, which have been traditionally used for reasoning about tree data structures.

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

[2]  Neil Immerman,et al.  The Boundary Between Decidability and Undecidability for Transitive-Closure Logics , 2004, CSL.

[3]  Mario Bravetti,et al.  CONCUR 2009 - Concurrency Theory, 20th International Conference, CONCUR 2009, Bologna, Italy, September 1-4, 2009. Proceedings , 2009, CONCUR.

[4]  Graham Steel,et al.  Deduction with XOR Constraints in Security API Modelling , 2005, CADE.

[5]  Constantin Enea,et al.  A Logic-Based Framework for Reasoning about Composite Data Structures , 2009, CONCUR.

[6]  James W. Thatcher,et al.  Generalized finite automata theory with an application to a decision problem of second-order logic , 1968, Mathematical systems theory.

[7]  Antoine Meyer,et al.  A logic of reachable patterns in linked data-structures , 2006, J. Log. Algebraic Methods Program..

[8]  Frank Wolter,et al.  Monodic fragments of first-order temporal logics: 2000-2001 A.D , 2001, LPAR.

[9]  Amir Pnueli,et al.  Shape Analysis of Single-Parent Heaps , 2007, VMCAI.

[10]  Shuvendu K. Lahiri,et al.  Back to the future: revisiting precise program verification using SMT solvers , 2008, POPL '08.

[11]  Thomas Wies,et al.  Symbolic shape analysis , 2009 .

[12]  Thomas Wies,et al.  On an Efficient Decision Procedure for Imperative Tree Data Structures IST-2011-0005 EPFL-REPORT-165193 , 2011 .

[13]  Andreas Podelski,et al.  Counterexample-guided focus , 2010, POPL '10.

[14]  Alan Robinson,et al.  Handbook of automated reasoning , 2001 .

[15]  Pierre Genevès,et al.  Efficient static analysis of XML paths and types , 2007, PLDI '07.

[16]  Antoine Meyer,et al.  A logic of reachable patterns in linked data-structures , 2007, J. Log. Algebraic Methods Program..

[17]  Nils Klarlund,et al.  MONA Version 1.4 - User Manual , 2001 .

[18]  Viktor Kuncak,et al.  Field Constraint Analysis , 2005, VMCAI.

[19]  Witold Charatonik,et al.  On the Complexity of the Bernays-Schönfinkel Class with Datalog , 2010, LPAR.

[20]  Neil Immerman,et al.  Simulating Reachability Using First-Order Logic with Applications to Verification of Linked Data Structures , 2005, CADE.

[21]  Alex K. Simpson,et al.  Computational Adequacy in an Elementary Topos , 1998, CSL.

[22]  Tomás Vojnar,et al.  Automata-based verification of programs with tree updates , 2009, Acta Informatica.

[23]  Viktor Kuncak,et al.  Modular data structure verification , 2007 .

[24]  Ahmed Bouajjani,et al.  Abstract Regular Tree Model Checking of Complex Dynamic Data Structures , 2006, SAS.

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

[26]  Kousha Etessami,et al.  Analysis of Recursive Game Graphs Using Data Flow Equations , 2004, VMCAI.

[27]  Viorica Sofronie-Stokkermans,et al.  Hierarchic Reasoning in Local Theory Extensions , 2005, CADE.

[28]  Viktor Kuncak,et al.  Full functional verification of linked data structures , 2008, PLDI '08.

[29]  Carsten Ihlemann,et al.  On Local Reasoning in Verification , 2008, TACAS.

[30]  Diego Calvanese,et al.  Reasoning in Expressive Description Logics , 2001, Handbook of Automated Reasoning.