Deciding Functional Lists with Sublist Sets

Motivated by the problem of deciding verification conditions for the verification of functional programs, we present new decision procedures for automated reasoning about functional lists. We first show how to decide in NP the satisfiability problem for logical constraints containing equality, constructor, selectors, as well as the transitive sublist relation. We then extend this class of constraints with operators to compute the set of all sublists, and the set of objects stored in a list. Finally, we support constraints on sizes of sets, which gives us the ability to compute list length as well as the number of distinct list elements. We show that the extended theory is reducible to the theory of sets with linear cardinality constraints, and therefore still in NP. This reduction enables us to combine our theory with other decidable theories that impose constraints on sets of objects, which further increases the potential of our decidability result in verification of functional and imperative software.

[1]  Carlo A. Furia What's Decidable about Sequences? , 2010, ATVA.

[2]  Viktor Kuncak,et al.  Towards Efficient Satisfiability Checking for Boolean Algebra with Presburger Arithmetic , 2007, CADE.

[3]  Swen Jacobs Incremental Instance Generation in Local Reasoning , 2009, CAV.

[4]  Swen Jacobs,et al.  Hierarchic decision procedures for verification , 2010 .

[5]  Joxan Jaffar Minimal and complete word unification , 1990, JACM.

[6]  BarrettClark,et al.  An Abstract Decision Procedure for Satisfiability in the Theory of Recursive Data Types , 2007 .

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

[8]  Ruzica Piskac,et al.  On Decision Procedures for Ordered Collections , 2010 .

[9]  Henny B. Sipma,et al.  Decision procedures for term algebras with integer constraints , 2006, Inf. Comput..

[10]  Carsten Ihlemann,et al.  System Description: H-PILoT , 2009, CADE.

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

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

[13]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[14]  SuterPhilippe,et al.  Decision procedures for algebraic data types with abstractions , 2010 .

[15]  Viktor Kuncak,et al.  Relational analysis of algebraic datatypes , 2005, ESEC/FSE-13.

[16]  Wojciech Plandowski,et al.  Satisfiability of word equations with constants is in PSPACE , 1999, 40th Annual Symposium on Foundations of Computer Science (Cat. No.99CB37039).

[17]  K. N. Venkataraman,et al.  Decidability of the purely existential fragment of the theory of term algebras , 1987, JACM.

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

[19]  Renate A. Schmidt Automated Deduction - CADE-22, 22nd International Conference on Automated Deduction, Montreal, Canada, August 2-7, 2009. Proceedings , 2009, CADE.

[20]  Ruzica Piskac,et al.  Deciding Effectively Propositional Logic Using DPLL and Substitution Sets , 2010, Journal of Automated Reasoning.

[21]  Nikolaj Bjørner,et al.  Automated Deduction - CADE-23 - 23rd International Conference on Automated Deduction, Wroclaw, Poland, July 31 - August 5, 2011. Proceedings , 2011, CADE.

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

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

[24]  Viktor Kuncak,et al.  An Efficient Decision Procedure for Imperative Tree Data Structures , 2011, CADE.

[25]  Ruzica Piskac,et al.  Combining Theories with Shared Set Operations , 2009, FroCoS.

[26]  Martin Odersky,et al.  Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition , 2010 .

[27]  Ruzica Piskac,et al.  Collections, Cardinalities, and Relations , 2010, VMCAI.

[28]  Viorica Sofronie-Stokkermans,et al.  Locality Results for Certain Extensions of Theories with Bridging Functions , 2009, CADE.

[29]  Shengchao Qin,et al.  Automated Verification of Shape, Size and Bag Properties , 2007, ICECCS.

[30]  Ruzica Piskac,et al.  Complete functional synthesis , 2010, PLDI '10.

[31]  Frank Pfenning,et al.  Automated Deduction - CADE-21, 21st International Conference on Automated Deduction, Bremen, Germany, July 17-20, 2007, Proceedings , 2007, CADE.

[32]  Viktor Kuncak,et al.  Decision procedures for algebraic data types with abstractions , 2010, POPL '10.

[33]  Wojciech Plandowski Satisfiability of word equations with constants is in PSPACE , 2004, JACM.

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

[35]  David Walker,et al.  Types and full abstraction for polyadic pi-calculus , 2005, Inf. Comput..

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

[37]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[38]  Viktor Kuncak,et al.  Deciding Boolean Algebra with Presburger Arithmetic , 2006, Journal of Automated Reasoning.

[39]  G. Makanin The Problem of Solvability of Equations in a Free Semigroup , 1977 .

[40]  Yuri Gurevich,et al.  The Classical Decision Problem , 1997, Perspectives in Mathematical Logic.

[41]  Mohamed Nassim Seghir,et al.  A Lightweight Approach for Loop Summarization , 2011, ATVA.

[42]  Derek C. Oppen,et al.  Reasoning about recursively defined data structures , 1978, POPL.

[43]  Cesare Tinelli,et al.  An Abstract Decision Procedure for Satisfiability in the Theory of Recursive Data Types , 2007, PDPAR/PaUL@FLoC.

[44]  Shengchao Qin,et al.  Automated Verification of Shape and Size Properties Via Separation Logic , 2007, VMCAI.