Scarab: A Rapid Prototyping Tool for SAT-Based Constraint Programming Systems

  • Takehide Soh
  • Naoyuki Tamura
  • Mutsunori Banbara
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7962)


In this paper, we present the Scarab system which is a prototyping tool for developing SAT-based systems. It provides a rich constraint modeling language on Scala and enables a programmer to rapidly specify problems and to experiment with different modelings. Scarab also provides a simple way to realize incremental solving, solution enumeration, and dynamic addition and/or removal of constraints. In Scarab, we can use integer variables and arithmetic constraints, and all of them are encoded into SAT without the need of developing dedicated encoder. SAT solvers are then used for finding solutions.


Constraint Program Constraint Satisfaction Problem Integer Variable Boolean Variable Encode Module 
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.
    Biere, A., Heule, M., van Maaren, H., Walsh, T.: Handbook of Satisfiability. IOS Press (2009)Google Scholar
  2. 2.
    Odersky, M., Altherr, P., Cremet, V., Emir, B., Maneth, S., Micheloud, S., Mihaylov, N., Schinz, M., Stenman, E., Zenger, M.: An overview of the scala programming language. Technical Report IC/2004/64, École Polytechnique Fédérale de Lausanne, Switzerland (2004)Google Scholar
  3. 3.
    Odersky, M., Spoon, L., Venners, B.: Programming in Scala, 2nd edn. Artima, Inc. (2010)Google Scholar
  4. 4.
    Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Computing Surveys 37(4), 316–344 (2005)CrossRefGoogle Scholar
  5. 5.
    Tamura, N., Taga, A., Kitagawa, S., Banbara, M.: Compiling finite linear CSP into SAT. In: Benhamou, F. (ed.) CP 2006. LNCS, vol. 4204, pp. 590–603. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  6. 6.
    Tamura, N., Taga, A., Kitagawa, S., Banbara, M.: Compiling finite linear CSP into SAT. Constraints 14(2), 254–272 (2009)MathSciNetzbMATHCrossRefGoogle Scholar
  7. 7.
    Tamura, N., Tanjo, T., Banbara, M.: System description of a SAT-based CSP solver sugar. In: Proceedings of the 3rd International CSP Solver Competition, pp. 71–75 (2008)Google Scholar
  8. 8.
    Berre, D.L., Parrain, A.: The Sat4j library, release 2. 2. Journal on Satisfiability, Boolean Modeling and Computation 7, 59–64 (2010) system descriptionGoogle Scholar
  9. 9.
    van Dongen, M.R.C., Lecoutre, C., Roussel, O. (eds.): Proceedings of the Second International CSP Solver Competition (2008)Google Scholar
  10. 10.
    Régin, J.C.: A filtering algorithm for constraints of difference in CSPs. In: AAAI 1994, pp. 362–367 (1994)Google Scholar
  11. 11.
    Rossi, F., van Beek, P., Walsh, T. (eds.): Handbook of Constraint Programming. Elsevier (2006)Google Scholar
  12. 12.
    Tseitin, G.S.: On the complexity of derivations in the propositional calculus. Studies in Mathematics and Mathematical Logic Part II, 115–125 (1968)Google Scholar
  13. 13.
    Prestwich, S.: 12: CNF encodings. In: Handbook of Satisfiability, pp. 75–97. IOS Press (2009)Google Scholar
  14. 14.
    Iwama, K., Miyazaki, S.: SAT-variable complexity of hard combinatorial problems. In: Proceedings of the World Computer Congress of the IFIP, pp. 253–258 (1994)Google Scholar
  15. 15.
    Walsh, T.: SAT v CSP. In: Dechter, R. (ed.) CP 2000. LNCS, vol. 1894, pp. 441–456. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  16. 16.
    Gent, I.P.: Arc consistency in SAT. In: Proceedings of the 15th Eureopean Conference on Artificial Intelligence, ECAI 2002, pp. 121–125 (2002)Google Scholar
  17. 17.
    Gent, I.P., Nightingale, P.: A new encoding of alldifferent into SAT. In: Proceedings of the 3rd International Workshop on Modelling and Reformulating Constraint Satisfaction Problems, pp. 95–110 (2004)Google Scholar
  18. 18.
    Ansótegui, C., Manyà, F.: Mapping problems with finite-domain variables to problems with boolean variables. In: Hoos, H.H., Mitchell, D.G. (eds.) SAT 2004. LNCS, vol. 3542, pp. 1–15. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  19. 19.
    Gavanelli, M.: The log-support encoding of CSP into SAT. In: Bessière, C. (ed.) CP 2007. LNCS, vol. 4741, pp. 815–822. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  20. 20.
    Tanjo, T., Tamura, N., Banbara, M.: Proposal of a compact and efficient SAT encoding using a numeral system of any base. In: Proceedings of the 1st International Workshop on the Cross-Fertilization Between CSP and SAT, p. 15 (2011)Google Scholar
  21. 21.
    Hebrard, E., O’Mahony, E., O’Sullivan, B.: Constraint programming and combinatorial optimisation in numberjack. In: Lodi, A., Milano, M., Toth, P. (eds.) CPAIOR 2010. LNCS, vol. 6140, pp. 181–185. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  22. 22.
  23. 23.
  24. 24.
  25. 25.
    OscaR Team: Oscar: Scala in or (2012),
  26. 26.
    JaCoP: web page,

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Takehide Soh
    • 1
  • Naoyuki Tamura
    • 1
  • Mutsunori Banbara
    • 1
  1. 1.Kobe UniversityKobeJapan

Personalised recommendations