Hostname: page-component-cd9895bd7-gxg78 Total loading time: 0 Render date: 2024-12-27T12:56:47.355Z Has data issue: false hasContentIssue false

Logic programming with satisfiability

Published online by Cambridge University Press:  01 January 2008

MICHAEL CODISH
Affiliation:
Department of Computer Science, Ben-Gurion University, Be'er sheva, Israel (email: mcodish@cs.bgu.ac.il)
VITALY LAGOON
Affiliation:
Department of Computer Science & Software Engineering, University of Melbourne, Melbourne, Australia (email: vitaly.lagoon@gmail.com)
PETER J. STUCKEY
Affiliation:
NICTA Victoria Laboratory and Department of Computer Science & Software Engineering, University of Melbourne, Melbourne, Australia (email: pjs@csse.unimelb.edu.au)

Abstract

This paper presents a Prolog interface to the MiniSat satisfiability solver. Logic programming with satisfiability combines the strengths of the two paradigms: logic programming for encoding search problems into satisfiability on the one hand and efficient SAT solving on the other. This synergy between these two exposes a programming paradigm that we propose here as a logic programming pearl. To illustrate logic programming with SAT solving, we give an example Prolog program that solves instances of Partial MAXSAT.

Type
Programming Pearl
Copyright
Copyright © Cambridge University Press 2007

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.)

References

Annov, E., Codish, M., Giesl, J., Schneider-Kamp, P. and Thiemann, R. 2006. A sat-based implementation for RPO termination. URL: http://www.lix.polytechnique.fr/hermann/LPAR2006/short.html. Short Paper at LPAR. Access date December 2006.Google Scholar
Arts, T. and Giesl, J. 2000. Termination of term rewriting using dependency pairs. Theoretical Computer Science 236 (1–2), 133178.CrossRefGoogle Scholar
Cha, B., Iwama, K., Kambayashi, Y. and Miyazaki, S. 1997. Local search algorithms for partial MAXSAT. In AAAI/IAAI. 263–268.Google Scholar
Codish, M., Lagoon, V. and Stuckey, P. J. 2006a. Minisat library for Prolog. URL: http://www.cs.bgu.ac.il/~mcodish/Software/pl-minisat.tgz. Access date December 2006.Google Scholar
Codish, M., Lagoon, V. and Stuckey, P. J. 2006b. Solving partial order constraints for LPO termination. In Term Rewriting and Applications (RTA). Lecture Notes in Computer Science, vol. 4098. Springer, Seattle, WA, 4–18.Google Scholar
Codish, M., Schneider-Kamp, P., Lagoon, V., Thiemann, R. and Giesl, J. 2006 c. Sat solving for argument filterings. In Logic for Programming, Artificial Intelligence and Reasoning (LPAR). Lecture Notes in Artificial Intelligence, vol. 4246. Springer, 30–44.Google Scholar
Cormen, T. H., Leiserson, C. E. and Rivest, R. L. 1990. Introduction to Algorithms. MIT Press, Chapter 29.Google Scholar
Dershowitz, N. 1982. Orderings for term-rewriting systems. Theoretical Computer Science 17, 279301.CrossRefGoogle Scholar
Eén, N. and Sörensson, N. 2004. An extensible SAT-solver. In Theory and Applications of Satisfiability Testing, 6th International Conference, SAT 2003 (Selected Revised Papers), Giunchiglia, E. and Tacchella, A., Eds. Lecture Notes in Computer Science, vol. 2919. Springer, 502518.Google Scholar
MiniSat 2006, MiniSat solver. Accessed December 2005. URL: http://www.cs.chalmers.se/Cs/Research/FormalMethods/MiniSat.Google Scholar
Miyazaki, S., Iwama, K. and Kambayashi1, Y. 1996. Database queries as combinatorial optimization problems. In CODAS. 477–483.Google Scholar
Plaisted, D. and Greenbaum, S. 1986. A structure preserving clause form translation. Journal of Symbolic Computation 2, 293304.CrossRefGoogle Scholar
SWI-Prolog 2005. SWI-prolog. Accessed December 2005. URL: http://http://www.swi-prolog.org/.Google Scholar
Tseitin, G. 1968. On the complexity of derivation in propositional calculus. In Studies in Constructive Mathematics and Mathematical Logic. 115–125. Reprinted in J. Siekmann and G. Wrightson (eds), 1983. Automation of Reasoning, vol. 2. Springer-Verlag, Berlin, 466–483.Google Scholar
Wielemaker, J. 2003. An overview of the SWI-Prolog programming environment. In Proceedings of the 13th International Workshop on Logic Programming Environments, Mesnard, F. and Serebenik, A., Eds. Katholieke Universiteit Leuven, Heverlee, Belgium, 116. CW 371.Google Scholar