In this article, we present a small, complete, and efficient SAT-solver in the style of conflict-driven learning, as exemplified by Chaff. We aim to give sufficient details about implementation to enable the reader to construct his or her own solver in a very short time. This will allow users of SAT-solvers to make domain specific extensions or adaptions of current state-of-the-art SAT-techniques, to meet the needs of a particular application area. The presented solver is designed with this in mind, and includes among other things a mechanism for adding arbitrary boolean constraints. It also supports solving a series of related SAT-problems efficiently by an incremental SAT-interface.


Variable Assignment Problem Constraint Unit Information Unit Clause Current Assignment 
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. [AR+02]
    Aloul, F., Ramani, A., Markov, I., Sakallah, K.: Generic ILP vs. Specialized 0-1 ILP: an Update. In: International Conference on Computer Aided Design, ICCAD (2002)Google Scholar
  2. [BC+99]
    Biere, A., Cimatti, A., Clarke, E.M., Fujita, M., Zhu, Y.: Symbolic Model Checking using SAT procedures instead of BDDs. In: Proceedings of Design Automation Conference, DAC 1999 (1999)Google Scholar
  3. [CS03]
    Claessen, K., Sörensson, N.: New Techniques that Improve MACEstyle Finite Model Finding. In: CADE-19, Workshop W4. Model Computation – Principles, Algorithms, Applications (2003)Google Scholar
  4. [DLL62]
    Davis, M., Logman, M., Loveland, D.: A machine program for theorem proving. Communications of the ACM 5 (1962)Google Scholar
  5. [ES03]
    Eén, N., Sörensson, N.: Temporal Induction by Incremental SAT Solving. In: Proc. of First International Workshop on Bounded Model Checking (2003)Google Scholar
  6. [Lar92]
    Larrabee, T.: Test Pattern Generation Using Boolean Satisfiability. IEEE Transactions on Computer-Aided Design, vol 11(1) (1992)Google Scholar
  7. [MS96]
    Marques-Silva, J.P., Sakallah, K.A.: GRASP – A New Search Algorithm for Satisfiability. In: ICCAD. IEEE Computer Society Press, Los Alamitos (1996)Google Scholar
  8. [MZ01]
    Moskewicz, M.W., Madigan, C.F., Zhao, Y., Zhang, L., Malik, S.: Chaff: Engineering an Efficient SAT Solver. In: Proc. of the 38th Design Automation Conference (2001)Google Scholar
  9. [ZM01]
    Zhang, L., Madigan, C.F., Moskewicz, M.W., Malik, S.: Efficient Conflict Driven Learning in Boolean Satisfiability Solver. In: Proc. of the International Conference on Computer Aided Design, ICCAD (2001)Google Scholar
  10. [WKS01]
    Whittemore, J., Kim, J., Sakallah, K.: SATIRE: A New Incremental Satisfiability Engine. In: Proc. 38th Conf. on Design Automation. ACM Press, New York (2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Niklas Eén
    • 1
  • Niklas Sörensson
    • 1
  1. 1.Chalmers University of TechnologySweden

Personalised recommendations