An Interpolation Method for CLP Traversal

  • Joxan Jaffar
  • Andrew E. Santosa
  • Răzvan Voicu
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5732)


We consider the problem of exploring the search tree of a CLP goal in pursuit of a target property. Essential to such a process is a method of tabling to prevent duplicate exploration. Typically, only actually traversed goals are memoed in the table. In this paper we present a method where, upon the successful traversal of a subgoal, a generalization of the subgoal is memoed. This enlarges the record of already traversed goals, thus providing more pruning in the subsequent search process. The key feature is that the abstraction computed is guaranteed not to give rise to a spurious path that might violate the target property.

A driving application area is the use of CLP to model the behavior of other programs. We demonstrate the performance of our method on a benchmark of program verfication problems.


Model Check Interpolation Method Target Property Derivation Tree Constraint Logic Programming 
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.
    Marriott, K., Stuckey, P.J.: Programming with Constraints. MIT Press, Cambridge (1998)zbMATHGoogle Scholar
  2. 2.
    Chen, W., Warren, D.S.: Tabled evaluation with delaying for general logic programs. J. ACM 43(1), 20–74 (1996)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Swift, T.: A new formulation of tabled resolution with delay. In: Barahona, P., Alferes, J.J. (eds.) EPIA 1999. LNCS (LNAI), vol. 1695, pp. 163–177. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  4. 4.
    Sagonas, K., Swift, T., Warren, D.S., Freire, J., Rao, P., Cui, B., Johnson, E., de Castro, L., Dawson, S., Kifer, M.: The XSB System Version 2.5 Volume 1: Programmer’s Manual (June 2003)Google Scholar
  5. 5.
    Jaffar, J., Santosa, A.E., Voicu, R.: Efficient memoization for dynamic programming with ad-hoc constraints. In: 23rd AAAI, pp. 297–303. AAAI Press, Menlo Park (2008)Google Scholar
  6. 6.
    Frost, D., Dechter, R.: Dead-end driven learning. In: 12th AAAI, pp. 294–300. AAAI Press, Menlo Park (1994)Google Scholar
  7. 7.
    Bayardo Jr., R.J., Schrag, R.: Using csp look-back techniques to solve real-world sat instances. In: 14th AAAI/9th IAAI, pp. 203–208. AAAI Press, Menlo Park (1997)Google Scholar
  8. 8.
    Biere, A., Cimatti, A., Clarke, E.M., Zhu, Y.: Symbolic model checking without BDDs. In: Cleaveland, W.R. (ed.) TACAS 1999. LNCS, vol. 1579, pp. 193–207. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  9. 9.
    Moskewicz, M.W., Madigan, C.F., Zhao, Y., Zhang, L., Malik, S.: Chaff: Engineering an efficient SAT solver. In: 38th DAC, pp. 530–535. ACM Press, New York (2001)Google Scholar
  10. 10.
    Silva, J.P.M., Sakallah, K.A.: GRASP—a new search algorithm for satisfiability. In: ICCAD 1996, pp. 220–227. ACM and IEEE Computer Society (1996)Google Scholar
  11. 11.
    McMillan, K.L.: Applying SAT methods in unbounded symbolic model checking. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, p. 250. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  12. 12.
    Lahiri, S.K., Nieuwenhuis, R., Oliveras, A.: SMT techniques for fast predicate abstraction. In: [36], pp. 424–437Google Scholar
  13. 13.
    Jones, R.B., Dill, D.L., Burch, J.R.: Efficient validity checking for processor verification. In: Rudell, R.L. (ed.) ICCAD 1995, pp. 2–6. IEEE Computer Society Press, Los Alamitos (1995)Google Scholar
  14. 14.
    Barrett, C., Dill, D.L., Levitt, J.R.: Validity checking for combinations of theories with equality. In: Srivas, M., Camilleri, A. (eds.) FMCAD 1996. LNCS, vol. 1166, pp. 187–201. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  15. 15.
    Stump, A., Barrett, C., Dill, D.L.: CVC: A cooperating validity checker. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 500–504. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  16. 16.
    Barrett, C., Berezin, S.: CVC Lite: A new implementation of the cooperating validity checker. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 515–518. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  17. 17.
    McMillan, K.L.: Interpolation and SAT-based model checking. In: Hunt Jr., W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 1–13. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  18. 18.
    Cimatti, A., Griggio, A., Sebastiani, R.: Efficient interpolant generation in satisfiability modulo theories. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 397–412. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  19. 19.
    McMillan, K.L.: An interpolating theorem prover. TCS 345(1), 101–121 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  20. 20.
    Clarke, E.M., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-guided abstraction refinement for symbolic model checking. J. ACM 50(5), 752–794 (2003)MathSciNetCrossRefzbMATHGoogle Scholar
  21. 21.
    Henzinger, T.A., Jhala, R., Majumdar, R., Sutre, G.: Lazy abstraction. In: 29th POPL, pp. 58–70. ACM Press, New York (2002); SIGPLAN Notices 37(1)Google Scholar
  22. 22.
    Henzinger, T.A., Jhala, R., Majumdar, R., McMillan, K.L.: Abstractions from proofs. In: 31st POPL, pp. 232–244. ACM Press, New York (2004)Google Scholar
  23. 23.
    McMillan, K.L.: Lazy abstraction with interpolants. In: [36], pp. 123–136Google Scholar
  24. 24.
    Beyer, D., Henzinger, T., Jhala, R., Majumdar, R.: The software model checker Blast. Int. J. STTT 9, 505–525 (2007)CrossRefGoogle Scholar
  25. 25.
    Flanagan, C.: Automatic software model checking using CLP. In: Degano, P. (ed.) ESOP 2003. LNCS, vol. 2618, pp. 189–203. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  26. 26.
    Jaffar, J., Santosa, A.E., Voicu, R.: Modeling systems in CLP. In: Gabbrielli, M., Gupta, G. (eds.) ICLP 2005. LNCS, vol. 3668, pp. 412–413. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  27. 27.
    Delzanno, G., Podelski, A.: Constraint-based deductive model checking. Int. J. STTT 3(3), 250–270 (2001)zbMATHGoogle Scholar
  28. 28.
    Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall Series in Automatic Computation. Prentice-Hall, Englewood Cliffs (1976)zbMATHGoogle Scholar
  29. 29.
    Jaffar, J., Maher, M.J.: Constraint logic programming: A survey. J. LP 19/20, 503–581 (1994)MathSciNetzbMATHGoogle Scholar
  30. 30.
    Bjørner, N., Browne, A., Manna, Z.: Automatic generation of invariants and intermediate assertions. TCS 173(1), 49–87 (1997)MathSciNetCrossRefzbMATHGoogle Scholar
  31. 31.
    Flanagan, C., Saxe, J.B.: Avoiding exponential explosion: Generating compact verificatio n conditions. In: 28th POPL, pp. 193–205. ACM Press, New York (2001)Google Scholar
  32. 32.
    Jaffar, J., Michaylov, S., Stuckey, P.J., Yap, R.H.C.: The CLP(\(\cal R\)) language and system. ACM TOPLAS 14(3), 339–395 (1992)CrossRefGoogle Scholar
  33. 33.
    Jaffar, J., Maher, M.J., Stuckey, P.J., Yap, R.H.C.: Output in CLP(\(\cal R\)). In: Proc. Int. Conf. on Fifth Generation Computer Systems, Tokyo, Japan, vol. 2, pp. 987–995 (1992)Google Scholar
  34. 34.
    Toy, B.: Linpack.c (1988),
  35. 35.
    Mälardalen WCET research group benchmarks (2006),
  36. 36.
    Ball, T., Jones, R.B. (eds.): CAV 2006. LNCS, vol. 4144, pp. 532–546. Springer, Heidelberg (2006)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Joxan Jaffar
    • 1
  • Andrew E. Santosa
    • 1
  • Răzvan Voicu
    • 1
  1. 1.School of ComputingNational University of SingaporeSingapore

Personalised recommendations