Arrays are ubiquitous in the context of software verification. However, effective reasoning over arrays is still rare in CP, as local reasoning is dramatically ill-conditioned for constraints over arrays. In this paper, we propose an approach combining both global symbolic reasoning and local filtering in order to solve constraint systems involving arrays (with accesses, updates and size constraints) and finite-domain constraints over their elements and indexes. Our approach, named fdcc, is based on a combination of a congruence closure algorithm for the standard theory of arrays and a CP solver over finite domains. The tricky part of the work lies in the bi-directional communication mechanism between both solvers. We identify the significant information to share, and design ways to master the communication overhead. Experiments on random instances show that fdcc solves more formulas than any portfolio combination of the two solvers taken in isolation, while overhead is kept reasonable.


Decision Procedure Global Constraint Critical Pair Linear Arithmetic Constraint Store 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bozzano, M., Bruttomesso, R., Cimatti, A., Junttila, T.A., Ranise, S., van Rossum, P., Sebastiani, R.: Efficient Satisfiability Modulo Theories via Delayed Theory Combination. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 335–349. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  2. 2.
    Bruttomesso, R., Cimatti, A., Franzén, A., Griggio, A., Sebastiani, R.: Delayed theory combination vs. Nelson-Oppen for satisfiability modulo theories: a comparative analysis. Ann. Math. Artif. Intell. 55(1-2) (2009)Google Scholar
  3. 3.
    Bardin, S., Herrmann, P.: Structural testing of executables. In: 1th Int. Conf. on Soft. Testing, Verif. and Valid. (ICST 2008), pp. 22–31 (2008)Google Scholar
  4. 4.
    Bardin, S., Herrmann, P., Perroud, F.: An Alternative to SAT-Based Approaches for Bit-Vectors. In: Esparza, J., Majumdar, R. (eds.) TACAS 2010. LNCS, vol. 6015, pp. 84–98. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  5. 5.
    Beldiceanu, N., Carlsson, M., Debruyne, R., Petit, T.: Reformulation of global constraints based on constraints checkers. Constraints 10, 339–362 (2005)MathSciNetzbMATHCrossRefGoogle Scholar
  6. 6.
    Botella, B., Gotlieb, A., Michel, C.: Symbolic execution of floating-point computations. The Software Testing, Verification and Reliability Journal 16(2), 97–121 (2006)CrossRefGoogle Scholar
  7. 7.
    Brand, S.: Constraint propagation in presence of arrays. In: 6th Workshop of the ERCIM Working Group on Constraints, Computing Research Repository (2001)Google Scholar
  8. 8.
    Brummayer, R., Biere, A.: Lemmas on demand for the extensional theory of arrays. In: SMT 2008/BPR 2008, pp. 6–11. ACM (2008)Google Scholar
  9. 9.
    Carlsson, M., Ottosson, G., Carlson, B.: An open–ended finite domain constraint solver. In: Proc. of Programming Languages: Implementations, Logics, and Programs (1997)Google Scholar
  10. 10.
    Charreteur, F., Botella, B., Gotlieb, A.: Modelling dynamic memory management in constraint-based testing. The Journal of Systems and Software 82(11), 1755–1766 (2009); Special Issue: TAIC-PART 2007 and MUTATION 2007CrossRefGoogle Scholar
  11. 11.
    Collavizza, H., Rueher, M., Van Hentenryck, P.: CPBPV: A Constraint-Programming Framework for Bounded Program Verification. In: Stuckey, P.J. (ed.) CP 2008. LNCS, vol. 5202, pp. 327–341. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  12. 12.
    de Moura, L., Bjørner, N.: Model-based theory combination. Electron. Notes Theor. Comput. Sci. 198(2), 37–49 (2008)CrossRefGoogle Scholar
  13. 13.
    de Moura, L., Bjørner, N.S.: Z3: An Efficient SMT Solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  14. 14.
    Downey, P.J., Sethi, R.: Assignment commands with array references. J. ACM 25, 652–666 (1978)MathSciNetzbMATHCrossRefGoogle Scholar
  15. 15.
    Gotlieb, A., Botella, B., Rueher, M.: A CLP Framework for Computing Structural Test Data. In: Palamidessi, C., Moniz Pereira, L., Lloyd, J.W., Dahl, V., Furbach, U., Kerber, M., Lau, K.-K., Sagiv, Y., Stuckey, P.J. (eds.) CL 2000. LNCS (LNAI), vol. 1861, pp. 399–413. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  16. 16.
    Gotlieb, A., Leconte, M., Marre, B.: Constraint solving on modular integers. In: Proc. of the 9th Int. Workshop on Constraint Modelling and Reformulation (ModRef 2010), co-located with CP 2010, St Andrews, Scotland (September 2010) XX^emGoogle Scholar
  17. 17.
    Van Hentenryck, P., Carillon, J.-P.: Generality versus specificity: An experience with ai and or techniques. In: Proc. of AAAI 1988, pp. 660–664. AAAI Press/The MIT Press (1988)Google Scholar
  18. 18.
    Kroening, D., Strichman, O.: Decision Procedures: An Algorithmic Point of View (2008)Google Scholar
  19. 19.
    Lebbah, Y., Michel, C., Rueher, M., Daney, D.: Efficient and safe global constraints for handling numerical constraint systems. SIAM J. Numer. Anal. 42, 2076–2097 (2005)MathSciNetzbMATHCrossRefGoogle Scholar
  20. 20.
    Marre, B., Blanc, B.: Test selection strategies for lustre descriptions in gatel. Electronic Notes in Theoretical Computer Science 111, 93–111 (2005)CrossRefGoogle Scholar
  21. 21.
    Michel, L., Van Hentenryck, P.: Constraint-Based Local Search. MIT Press (2005)Google Scholar
  22. 22.
    Nelson, G., Oppen, D.C.: Simplification by cooperating decision procedures. ACM Trans. Program. Lang. Syst. 1, 245–257 (1979)zbMATHCrossRefGoogle Scholar
  23. 23.
    Nelson, G., Oppen, D.C.: Fast decision procedures based on congruence closure. J. ACM 27(2), 356–364 (1980)MathSciNetzbMATHCrossRefGoogle Scholar
  24. 24.
    Régin, J.-C.: A filtering algorithm for constraints of difference in csps. In: Proc. of the Twelfth National Conference on Artificial Intelligence, AAAI 1994, vol. 1, pp. 362–367 (1994)Google Scholar
  25. 25.
    Rushby, J.: Automated Test Generation and Verified Software. In: Meyer, B., Woodcock, J. (eds.) VSTTE 2005. LNCS, vol. 4171, pp. 161–172. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  26. 26.
    Schulte, C., Stuckey, P.J.: Efficient constraint propagation engines. Transactions on Programming Languages and Systems 31(1), 2:1–2:43 (2008)Google Scholar
  27. 27.
    Van Roy, P., Brand, P., Duchier, D., Haridi, S., Henz, M., Schulte, C.: Logic programming in the context of multiparadigm programming: the Oz experience. Theory and Practice of Logic Programming 3(6), 715–763 (2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Sébastien Bardin
    • 1
  • Arnaud Gotlieb
    • 2
    • 3
  1. 1.LISTCEAGif-sur-YvetteFrance
  2. 2.INRIA Rennes Bretagne AtlantiqueRennesFrance
  3. 3.Simula Research LabCertus V&V CenterOsloNorway

Personalised recommendations