JELIA 2006: Logics in Artificial Intelligence pp 177-189

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

• Silvio Ghilardi
• Enrica Nicolini
• Silvio Ranise
• Daniele Zucchelli
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4160)

## Abstract

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.

## Keywords

Decision Procedure Theorem Prove Function Symbol Predicate Symbol Separation Logic
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.

## References

1. 1.
Armando, A., Bonacina, M.P., Ranise, S., Schulz, S.: On a rewriting approach to satisfiability procedures: Extension, combination of theories and an experimental appraisal. In: Gramlich, B. (ed.) FroCos 2005. LNCS, vol. 3717, pp. 65–80. Springer, Heidelberg (2005)
2. 2.
Armando, A., Ranise, S., Rusinowitch, M.: A rewriting approach to satisfiability procedures. Information and Computation 183(2), 140–164 (2003)
3. 3.
Bradley, A.R., Manna, Z., Sipma, H.B.: What’s decidable about arrays? In: Emerson, E.A., Namjoshi, K.S. (eds.) VMCAI 2006. LNCS, vol. 3855, pp. 427–442. Springer, Heidelberg (2005)
4. 4.
Downey, P.J., Sethi, R.: Assignment commands with array references. Journal of the ACM 25(4), 652–666 (1978)
5. 5.
Enderton, H.B.: A Mathematical Introduction to Logic. Academic Press, New York (1972)
6. 6.
Gallier, J.H.: Logic for Computer Science: Foundations of Automatic Theorem Proving. Harper & Row, New York (1986)
7. 7.
Ganzinger, H., Korovin, K.: Integrating equational reasoning into instantiation-based theorem proving. In: Marcinkowski, J., Tarlecki, A. (eds.) CSL 2004. LNCS, vol. 3210, pp. 71–84. Springer, Heidelberg (2004)
8. 8.
Ghilardi, S.: Model-theoretic methods in combined constraint satisfiability. Journal of Automated Reasoning 33(3-4), 221–249 (2004)
9. 9.
Ghilardi, S., Nicolini, E., Ranise, S., Zucchelli, D.: Deciding extension of the theory of arrays by integrating decision procedures and instantiation strategies. Rapporto Interno DSI 309-06, Università degli Studi di Milano, Milano, Italy (2006), Available at: http://homes.dsi.unimi.it/~zucchell/publications/techreport/GhiNiRaZu-RI309-06.pdf.
10. 10.
Jaffar, J.: Presburger arithmetic with array segments. Information Processing Letters 12(2), 79–82 (1981)
11. 11.
Kirchner, H., Ranise, S., Ringeissen, C., Tran, D.-K.: On superposition-based satisfiability procedures and their combination. In: Van Hung, D., Wirsing, M. (eds.) ICTAC 2005. LNCS, vol. 3722, pp. 594–608. Springer, Heidelberg (2005)
12. 12.
Mateti, P.: A decision procedure for the correctness of a class of programs. Journal of the ACM 28(2), 215–232 (1981)
13. 13.
McCarthy, J.: Towards a mathematical theory of computation. In: Proceedings of IFIP Congress (1962)Google Scholar
14. 14.
McPeak, S., Necula, G.C.: Data structure specifications via local equality axioms. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 476–490. Springer, Heidelberg (2005)
15. 15.
Nelson, G., Oppen, D.C.: Simplification by cooperating decision procedures. ACM Transaction on Programming Languages and Systems 1(2), 245–257 (1979)
16. 16.
Nieuwenhuis, R., Rubio, A.: Paramodulation-based theorem proving. In: Robinson, A., Voronkov, A. (eds.) Handbook of Automated Reasoning (2001)Google Scholar
17. 17.
Reynolds, J.C.: Reasoning about arrays. Communications of the ACM 22(5), 290–299 (1979)
18. 18.
Reynolds, J.C.: Separation logic: a logic for shared mutable data structures (2002)Google Scholar
19. 19.
Stump, A., Barrett, C.W., Dill, D.L., Levitt, J.: A decision procedure for an extensional theory of arrays. In: Proc. of the 16th IEEE Symposium on Logic in Computer Science (LICS 2001). IEEE Computer Society, Los Alamitos (2001)Google Scholar
20. 20.
Suzuki, N., Jefferson, D.R.: Verification decidability of presburger array programs. Journal of the ACM 27(1), 191–205 (1980)

## Authors and Affiliations

• Silvio Ghilardi
• 1
• Enrica Nicolini
• 2
• Silvio Ranise
• 1
• 3
• Daniele Zucchelli
• 1
• 3
1. 1.Dipartimento di InformaticaUniversità degli Studi di MilanoItalia
2. 2.Dipartimento di MatematicaUniversità degli Studi di MilanoItalia
3. 3.LORIA & INRIA-LorraineNancyFrance