Deciding Extensions of the Theory of Arrays by Integrating Decision Procedures and Instantiation Strategies

The theory of arrays, introduced by McCarthy in his seminal paper “Toward a mathematical science of computation”, is central to Computer Science. Unfortunately, the theory alone is not sufficient for many important verification applications such as program analysis. Motivated by this observation, we study extensions of the theory of arrays whose satisfiability problem (i.e. checking the satisfiability of conjunctions of ground literals) is decidable. In particular, we consider extensions where the indexes of arrays has the algebraic structure of Presburger Arithmetic and the theory of arrays is augmented with axioms characterizing additional symbols such as dimension, sortedness, or the domain of definition of arrays. We provide methods for integrating available decision procedures for the theory of arrays and Presburger Arithmetic with automatic instantiation strategies which allow us to reduce the satisfiability problem for the extension of the theory of arrays to that of the theories decided by the available procedures. Our approach aims to reuse as much as possible existing techniques so to ease the implementation of the proposed methods. To this end, we show how to use both model-theoretic and rewriting-based theorem proving (i.e., superposition) techniques to implement the instantiation strategies of the various extensions.

[1]  Silvio Ranise,et al.  Light-weight theorem proving for debugging and verifying units of code , 2003, First International Conference onSoftware Engineering and Formal Methods, 2003.Proceedings..

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

[3]  Harald Ganzinger,et al.  New directions in instantiation-based theorem proving , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[4]  Prabhaker Mateti,et al.  A Decision Procedure for the Correctness of a Class of Programs , 1981, JACM.

[5]  Henny B. Sipma,et al.  What's Decidable About Arrays? , 2006, VMCAI.

[6]  Greg Nelson,et al.  Fast Decision Procedures Based on Congruence Closure , 1980, JACM.

[7]  Silvio Ghilardi,et al.  Model-Theoretic Methods in Combined Constraint Satisfiability , 2004, Journal of Automated Reasoning.

[8]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[9]  Herbert B. Enderton,et al.  A mathematical introduction to logic , 1972 .

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

[11]  J. Richard Büchi,et al.  Coding in the existential theory of concatenation , 1987, Arch. Math. Log..

[12]  David L. Dill,et al.  A decision procedure for an extensional theory of arrays , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[13]  Albert Rubio,et al.  Paramodulation-Based Theorem Proving , 2001, Handbook of Automated Reasoning.

[14]  Tobias Nipkow,et al.  Term rewriting and all that , 1998 .

[15]  Jean H. Gallier,et al.  Logic for Computer Science: Foundations of Automatic Theorem Proving , 1985 .

[16]  Hélène Kirchner,et al.  On Superposition-Based Satisfiability Procedures and Their Combination , 2005, ICTAC.

[17]  Dirk van Dalen,et al.  Logic and structure , 1980 .

[18]  George C. Necula,et al.  Data Structure Specifications via Local Equality Axioms , 2005, CAV.

[19]  Martin Wirsing,et al.  Theoretical Aspects of Computing - ICTAC 2005, Second International Colloquium, Hanoi, Vietnam, October 17-21, 2005, Proceedings , 2005, ICTAC.

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

[21]  David Jefferson,et al.  Verification Decidability of Presburger Array Programs , 1980, JACM.

[22]  J. R. Büchi,et al.  Coding in the Existential Theory of Concatenation , 1987 .

[23]  Peter J. Downey,et al.  Assignment Commands with Array References , 1978, JACM.

[24]  Maria Paola Bonacina,et al.  On a Rewriting Approach to Satisfiability Procedures: Extension, Combination of Theories and an Experimental Appraisal , 2005, FroCoS.

[25]  Joxan Jaffar Presburger Arithmetic With Array Segments , 1981, Inf. Process. Lett..

[26]  Michaël Rusinowitch,et al.  A rewriting approach to satisfiability procedures , 2003, Inf. Comput..

[27]  Greg Nelson,et al.  Simplification by Cooperating Decision Procedures , 1979, TOPL.

[28]  Harald Ganzinger,et al.  Integrating Equational Reasoning into Instantiation-Based Theorem Proving , 2004, CSL.

[29]  Nikolaj Bjørner,et al.  A Practical Integration of First-Order Reasoning and Decision Procedures , 1997, CADE.

[30]  Marco Bozzano,et al.  Efficient Satisfiability Modulo Theories via Delayed Theory Combination , 2005, CAV.

[31]  John McCarthy,et al.  Towards a Mathematical Science of Computation , 1962, IFIP Congress.

[32]  John C. Reynolds,et al.  Reasoning about arrays , 1979, CACM.