On extending SAT solvers for PB problems Daniel Le Berre and Anne Parrain CRIL-CNRS FRE 2499, Universit´ e d’Artois, Lens, France {leberre,parrain}@cril.univ-artois.fr Abstract. The use of SAT solvers to handle practical problems has grown dramatically over the last decade. SAT solvers are now mature enough to be used in hardware or software model checkers and to have an impact on our everyday’s life of computer users. Many researchers are working on extensions of the current framework to more general constraints: pseudo-boolean (PB) constraints, satisfiability modulo theories, etc. We present first pseudo boolean constraints and their relationship with plain clauses. We review current available solutions for solving PB-constraints in Conflict Driven Clause Learning solvers, the most successful architecture of SAT solvers for SAT instances resulting from a translation of the initial problem into SAT. Then we focus on the current limits of our own implementation SAT4JPseudo that participated to the three PB evaluations. We conclude by pointing out some features that require attention for building in the future efficient PB solvers within the CDCL architecture. 1 Introduction The satisfiability problem receives currently a lot of attention from various areas, because of the availability of numerous efficient SAT solvers for CNF derived from “real problems” [22,23]. We will refer to that class of solvers as Conflict Driven Clause Learning (CDCL) solvers in the rest of the paper. Among the reason of the steady improvements of SAT solvers, the organization of competitive events such as the SAT Competitions 1 or the SAT Race 2 , and the availability of numerous benchmarks (SATLIB 3 , Velev 4 , IBM 5 , etc) play certainly an important role. However, the most important factor in our opinion is that many SAT solvers have been developed and made freely available to the community in such a way that algorithmic improvements for unit or boolean constraint propagation, conflict analysis, memory management, etc. are shared and contribute to an overall improvement of SAT solvers. SAT technology might even reach everybody’s desktop computer in a short term. Indeed, SAT solving is currently being used in the EDOS project 6 to improve package depencies in Linux sys- tems [19]; and some deficiencies in the latest Linux kernel have been identified by the SAT-based bug finder SATURN 7 [29,30]. Furthermore, several tools in software engineering are currently using SAT solvers in formal specification (Alloy[17], Kodkod 8 ), feature modeling [3], etc. Finally, the huge success of the open source SAT solvers MiniSat and SatELite 9 in the SAT 2005 com- petition pushed further the use of SAT solvers in unexpected research area, like the termination problem for rewrite systems and logic programs. The most efficient termination solver of the 2005 termination competition, Aprove [12], but also Jambox [11] and Matchbox [28], participated to the 2006 termination competition 10 with SatElite or MiniSat as helper [15, 7]. Those solvers have 1 http://www.satcompetition.org/ 2 http://fmv.jku.at/sat-race-2006/ 3 http://www.satlib.org/ 4 http://www.ece.cmu.edu/ ~ mvelev 5 http://www.haifa.ibm.com/projects/verification/RB_Homepage/bmcbenchmarks.html 6 http://www.edos-project.org 7 http://glide.stanford.edu/saturn/ 8 http://web.mit.edu/emina/www/kodkod.html 9 http://www.cs.chalmers.se/Cs/Research/FormalMethods/MiniSat/ 10 http://www.lri.fr/ ~ marche/termination-competition/