Hostname: page-component-cd9895bd7-7cvxr Total loading time: 0 Render date: 2024-12-26T07:19:16.262Z Has data issue: false hasContentIssue false

Failure tabled constraint logic programming by interpolation*

Published online by Cambridge University Press:  25 September 2013

GRAEME GANGE
Affiliation:
Department of Computing and Information Systems, The University of Melbourne, Victoria 3010, Australia (e-mail: gkgange@unimelb.edu.au, jorge.navas@unimelb.edu.au, schachte@unimelb.edu.au, harald@unimelb.edu.au, pstuckey@unimelb.edu.au)
JORGE A. NAVAS
Affiliation:
Department of Computing and Information Systems, The University of Melbourne, Victoria 3010, Australia (e-mail: gkgange@unimelb.edu.au, jorge.navas@unimelb.edu.au, schachte@unimelb.edu.au, harald@unimelb.edu.au, pstuckey@unimelb.edu.au)
PETER SCHACHTE
Affiliation:
Department of Computing and Information Systems, The University of Melbourne, Victoria 3010, Australia (e-mail: gkgange@unimelb.edu.au, jorge.navas@unimelb.edu.au, schachte@unimelb.edu.au, harald@unimelb.edu.au, pstuckey@unimelb.edu.au)
HARALD SØNDERGAARD
Affiliation:
Department of Computing and Information Systems, The University of Melbourne, Victoria 3010, Australia (e-mail: gkgange@unimelb.edu.au, jorge.navas@unimelb.edu.au, schachte@unimelb.edu.au, harald@unimelb.edu.au, pstuckey@unimelb.edu.au)
PETER J. STUCKEY
Affiliation:
Department of Computing and Information Systems, The University of Melbourne, Victoria 3010, Australia (e-mail: gkgange@unimelb.edu.au, jorge.navas@unimelb.edu.au, schachte@unimelb.edu.au, harald@unimelb.edu.au, pstuckey@unimelb.edu.au)

Abstract

We present a new execution strategy for constraint logic programs called Failure Tabled CLP. Similarly to Tabled CLP our strategy records certain derivations in order to prune further derivations. However, our method only learns from failed derivations. This allows us to compute interpolants rather than constraint projection for generation of reuse conditions. As a result, our technique can be used where projection is too expensive or does not exist. Our experiments indicate that Failure Tabling can speed up the execution of programs with many redundant failed derivations as well as achieve termination in the presence of infinite executions.

Type
Regular Papers
Copyright
Copyright © 2013 [GRAEME GANGE, JORGE A. NAVAS, PETER SCHACHTE, HARALD SØNDERGAARD and PETER J. STUCKEY] 

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

Footnotes

*

We wish to thank Jose. F. Morales for providing support integrating MathSAT into Ciao and Manuel Carro and Corneliu Popeea for fruitful discussions about tabling and interpolation, respectively. We acknowledge support of the Australian Research Council through Discovery Project Grant DP110102579.

References

Angelis, E. D., Fioravanti, F., Proietti, M. and Pettorossi, A. 2012. Software model checking by program specialization. In CILC, 89–103.Google Scholar
Beyer, D., Henzinger, T., Jhala, R. and Majumdar, R. 2007. The software model checker BLAST. International Journal on Software Tools for Technology Transfer (STTT) 9, 505525.CrossRefGoogle Scholar
Chico de Guzmán, P., Carro, M., Hermenegildo, M. V. and Stuckey, P. J. 2012. A general implementation framework for tabled CLP. In FLOPS, 104–119.Google Scholar
Christ, J., Hoenicke, J. and Nutz, A. 2012. SMTInterpol: An interpolating SMT solver. In SPIN, 248–254.CrossRefGoogle Scholar
Cimatti, A., Griggio, A. and Sebastiani, R. 2008. Efficient interpolant generation in satisfiability modulo theories. In TACAS, 397–412.Google Scholar
Codognet, P. 1995. A tabulation method for constraint logic programming. In Symposium and Exhibition on Industrial Applications of Prolog.Google Scholar
Craig, W. 1957. Linear reasoning: A new form of the Herbrand-Gentzen theorem. Journal of Symbolic Logic 22, 3, 250268.10.2307/2963593CrossRefGoogle Scholar
Graf, S. and Saïdi, H. 1997. Construction of abstract state graphs with pvs. In CAV, 72–83.Google Scholar
Grebenshchikov, S., Lopes, N. P., Popeea, C. and Rybalchenko, A. 2012. Synthesizing software verifiers from proof rules. In PLDI, 405–416.Google Scholar
Griggio, A. 2012. A practical approach to satisfiability modulo linear integer arithmetic. Journal on Satisfiability, Boolean Modeling and Computation 8, 127.CrossRefGoogle Scholar
Gulwani, S., Mehra, K. K. and Chilimbi, T. M. 2009. SPEED: Precise and efficient static estimation of program computational complexity. In POPL, 127–139.10.1145/1480881.1480898CrossRefGoogle Scholar
Gupta, A., Popeea, C. and Rybalchenko, A. 2011a. Predicate abstraction and refinement for verifying multi-threaded programs. In POPL, 331–344.Google Scholar
Gupta, A., Popeea, C. and Rybalchenko, A. 2011b. Solving recursion-free Horn clauses over LI+UIF. In APLAS, 188–203.Google Scholar
Henzinger, T. A., Jhala, R., Majumdar, R. and McMillan, K. L. 2004. Abstractions from proofs. In POPL, 232–244.Google Scholar
Hermenegildo, M. V., Bueno, F., Carro, M., López-García, P., Mera, E., Morales, J. F. and Puebla, G. 2012. An overview of Ciao and its design philosophy. Theory and Practice of Logic Programming 12, 1–2, 219252.CrossRefGoogle Scholar
Jaffar, J. and Lassez, J. 1987. Constraint logic programming. In POPL, 111–119.Google Scholar
Jaffar, J., Murali, V., Navas, J. A. and Santosa, A. E. 2012. TRACER: A symbolic execution tool for verification. In CAV, 758–766.CrossRefGoogle Scholar
Jaffar, J., Santosa, A. E. and Voicu, R. 2008. Efficient memoization for dynamic programming with ad-hoc constraints. In AAAI, 297–303.Google Scholar
Jaffar, J., Santosa, A. E. and Voicu, R. 2009. An interpolation method for CLP traversal. In CP, 454–469.Google Scholar
Jhala, R. and McMillan, K. L. 2006. A practical and complete approach to predicate refinement. In TACAS, 459–473.Google Scholar
Marriott, K. and Stuckey, P. J. 1998. Introduction to Constraint Logic Programming. MIT Press, Cambridge, MA, USA.CrossRefGoogle Scholar
McMillan, K. L. 2010. Lazy annotation for program testing and verification. In CAV, 104–118.Google Scholar
McMillan, K. L. 2011. Interpolants from z3 proofs. In FMCAD, 19–27.Google Scholar
Rümmer, P., Hojjat, H. and Kuncak, V. 2013. Disjunctive interpolants for horn-clause verification. In CAV, 347–363.Google Scholar
Tamaki, H. and Sato, T. 1986. OLD resolution with tabulation. In ICLP, 84–98.Google Scholar
Warren, D. S. 1992. Memoing for logic programs. Communcations of the ACM 35, 3, 93111.10.1145/131295.131299CrossRefGoogle Scholar
Supplementary material: PDF

Gange supplementary material

Gange supplementary material

Download Gange supplementary material(PDF)
PDF 73.1 KB