metaSMT: focus on your application and not on solver integration

  • Heinz RienerEmail author
  • Finn Haedicke
  • Stefan Frehse
  • Mathias Soeken
  • Daniel Große
  • Rolf Drechsler
  • Goerschwin Fey
Regular Paper


Many applications from artificial intelligence and formal methods use decision procedures as their core solving engines. In this context, automated reasoning based on Satisfiability (SAT) or Satisfiability Modulo Theories (SMT) is very effective. For a given application, however, selecting the best reasoning engine is a daunting task requiring first-hand experience and insight into engine-specific implementation details. Developers have to decide which concrete engine to use and how to integrate the engine into an application. Although file formats, e.g., DIMACS CNF or SMT-LIB, standardize the input of SAT and SMT solvers, not all engines provide input interfaces compliant with these standards. When following the standard, advanced (and not standardized) features of the solvers remain unused and their integration is left to the users. This work presents metaSMT, a framework that eases the integration of existing reasoning engines into applications. Inspired by SMT-LIB, metaSMT provides a domain-specific language that allows for engine-independent programming and offers a generic interface to advanced features as an extra abstraction layer. State-of-the-art solvers for satisfiability and other theories are available via metaSMT with little programming effort. Language bindings for C++ and Python are provided. We show how metaSMT can be used as a portfolio consistency checker for SMT-LIB2 instances. The benchmark set of the category quantifier-free bit-vector theory from SMT-LIB (1.6 GB) is used for these experiments.


Formal methods Logic SAT SMT EDSL 


  1. 1.
  2. 2.
    Abdessaied, N., Soeken, M., Wille, R., Drechsler, R.: Exact template matching using boolean satisfiability. In: IEEE International Symposium on Multiple-Valued Logic, pp. 328–333 (2013)Google Scholar
  3. 3.
    Arbel, E., Rokhlenko, O., Yorav, K.: SAT-based synthesis of clock gating functions using 3-valued abstraction. In: Formal Methods in, Computer-Aided Design, pp. 198–204 (2009)Google Scholar
  4. 4.
    Armando, A., Mantovani, J., Platania, L.: Bounded model checking of software using SMT solvers instead of SAT solvers. Int. J. Softw. Tools Technol. Transf. 11(1), 69–83 (2009)CrossRefzbMATHGoogle Scholar
  5. 5.
    Barrett, C., Conway, C.L., Deters, M., Hadarean, L., Jovanovic, D., King, T., Reynolds, A., Tinelli, C.: CVC4. In: Computer Aided Verification, pp. 171–177 (2011)Google Scholar
  6. 6.
    Barrett, C., Stump, A., Tinelli, C.: The SMT-LIB standard: Version 2.0 (2012)Google Scholar
  7. 7.
    Barrett, C.W., Sebastiani, R., Seshia, S.A., Tinelli C.: Handbook of Satisfiability, chapter Satisfiability Modulo Theories, pp. 825–885. IOS Press, Amsterdam (2009)Google Scholar
  8. 8.
    Biere, A.: PicoSAT essentials. J. Satisfiab. Boolean Model Comput. 4(2–4), 75–97 (2008)zbMATHGoogle Scholar
  9. 9.
    Biere, A.: Lingeling, plingeling and treengeling entering the sat competition 2013. In: Theory and Applications of Satisfiability Testing, pp. 51–52 (2013)Google Scholar
  10. 10.
    Biere, A., Cimatti, A., Clarke, E.M., Zhu, Y.: Symbolic model checking without BDDs. In: Tools and Algorithms for the Construction and Analysis of Systems, pp. 193–207 (1999)Google Scholar
  11. 11.
    Bjesse, P.: A practical approach to word level model checking of industrial netlists. In: Computer Aided Verification, pp. 446–458 (2008)Google Scholar
  12. 12.
    Brummayer, R., Boolector, A.Biere: An efficient SMT solver for bit-vectors and arrays. In: Tools and Algorithms for the Construction and Analysis of Systems, pp. 174–177 (2009)Google Scholar
  13. 13.
    Bruttomesso, R., Cok, D.R., Griggio, A.: Satisfiability modulo theories competition (SMT-LIB) 2013: rules and procedures, 2012. This version revised, pp. 6–2 (2012)Google Scholar
  14. 14.
    Cok, D.R.: jSMTLIB: tutorial, validation and adapter tools for SMT-LIBv2. In: NASA Formal Methods, pp. 480–486 (2011)Google Scholar
  15. 15.
    Cook, S.A.: The complexity of theorem-proving procedures. In: Symposium on the Theory of, Computing, pp. 151–158 (1971)Google Scholar
  16. 16.
    de Moura, L.M., Bjørner, N.: Z3: an efficient SMT solver. In: Tools and Algorithms for the Construction and Analysis of Systems, pp. 337–340 (2008)Google Scholar
  17. 17.
    Drechsler, R., Eggersglüß, S., Fey, G., Glowatz, A., Hapke, F., Schlöffel, J., Tille, D.: On acceleration of SAT-based ATPG for industrial designs. IEEE Trans. Comput. Aided Des. Integr. Circ. Syst. 27(7), 1329–1333 (2008)CrossRefGoogle Scholar
  18. 18.
    Eén, N., Sörensson, N.: An extensible SAT-solver. In: Theory and Applications of Satisfiability Testing, pp. 502–518 (2003)Google Scholar
  19. 19.
    Ganai, M.K., Gupta, A.: Accelerating high-level bounded model checking. In: International Conference on Computer Aided Design, pp. 794–801 (2006)Google Scholar
  20. 20.
    Ganesh, V., Dill, D.L.: A decision procedure for bit-vectors and arrays. In: Computer Aided Verification, pp. 519–531 (2007)Google Scholar
  21. 21.
    Haedicke, F., Alizadeh, B., Fey, G., Fujita, M., Drechsler, R.: Polynomial datapath optimization using constraint solving and formal modelling. In: International Conference on Computer Aided Design, pp. 756–761 (2010)Google Scholar
  22. 22.
    Haedicke, F., Le, H.M., Groe, D., Drechsler, R.: CRAVE: an advanced constrained random verification environment for SystemC. In: International Symposium on System-on-Chip, pp. 1–7 (2012)Google Scholar
  23. 23.
    Hudak, P.R.: Modular domain specific languages and tools. In: International Conference on Software Reuse, pp. 134 (1998)Google Scholar
  24. 24.
    Levin, L.A.: Universal search problems. Problems of Information Transmission. Translation from Russian to English, 9(3), 115–116 (1973)Google Scholar
  25. 25.
    McMillan, K.L.: Interpolation and SAT-based model checking. In: Computer Aided Verification, pp. 1–13 (2003)Google Scholar
  26. 26.
    Niklas Eén, N.S.: Translating pseudo-boolean constraints into SAT. J. Satisfiab. Boolean Model. Comput. 2(1–4), 1–26 (2006)zbMATHGoogle Scholar
  27. 27.
    Palikareva, H., Cadar, C.: Multi-solver support in symbolic execution. In: Computer Aided Verification, pp. 53–68 (2013)Google Scholar
  28. 28.
    Reiter, R.: A theory of diagnosis from first principles. Artif. Intell. 32(1), 57–95 (1987)MathSciNetCrossRefzbMATHGoogle Scholar
  29. 29.
    Riener, H., Bloem, R., Fey, G.: Test case generation from mutants using model checking techniques. In: International Conference on Software Testing, Verification, and Validation Workshops, pp. 388–397 (2011)Google Scholar
  30. 30.
    Riener, H., Fey, G.: Model-based diagnosis versus error explanation. In: International Conference on Formal Methods and Models for Co-Design, pp. 43–52 (2012)Google Scholar
  31. 31.
    Riener, H., Frehse, S., Fey, G.: Improving fault tolerance utilizing hardware-software-co-synthesis. In: Design, Automation, and Test in Europe, pp. 939–942 (2013)Google Scholar
  32. 32.
    Somenzi, F.: CUDD: CU Decision Diagram Package Release 2.4.1. University of Colorado at Boulder, Boulder (2009)Google Scholar
  33. 33.
    Strichman, O.: Pruning techniques for the SAT-based bounded model checking problem. In: Correct Hardware Design and Verification Methods, pp. 58–70 (2001)Google Scholar
  34. 34.
    Wille, R., Fey, G., Große, D., Eggersglüß S., Drechsler, R.: Sword: A SAT like prover using word level information. In: IFIP/IEEE International Conference on Very Large Scale Integration, pp. 88–93 (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2016

Authors and Affiliations

  • Heinz Riener
    • 1
    • 2
    Email author
  • Finn Haedicke
    • 1
  • Stefan Frehse
    • 1
  • Mathias Soeken
    • 1
    • 4
  • Daniel Große
    • 1
    • 3
  • Rolf Drechsler
    • 1
    • 3
  • Goerschwin Fey
    • 1
    • 2
  1. 1.Faculty of Mathematics and Computer ScienceUniversity of BremenBremenGermany
  2. 2.Institute of Space SystemsGerman Aerospace Center (DLR, e.V.)BremenGermany
  3. 3.Cyber-Physical SystemsGerman Research Center for Artificial Intelligence (DFKI GmbH)BremenGermany
  4. 4.Integrated Systems LaboratoryÉcole Polytechnique Fédérale de LausanneLausanneSwitzerland

Personalised recommendations