Abstract
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.
Similar content being viewed by others
Notes
QF_BV_except_DisjunctiveScheduling.zip 10/07/2014.
References
Aiger http://fmv.jku.at/aiger/
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)
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)
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)
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)
Barrett, C., Stump, A., Tinelli, C.: The SMT-LIB standard: Version 2.0 (2012)
Barrett, C.W., Sebastiani, R., Seshia, S.A., Tinelli C.: Handbook of Satisfiability, chapter Satisfiability Modulo Theories, pp. 825–885. IOS Press, Amsterdam (2009)
Biere, A.: PicoSAT essentials. J. Satisfiab. Boolean Model Comput. 4(2–4), 75–97 (2008)
Biere, A.: Lingeling, plingeling and treengeling entering the sat competition 2013. In: Theory and Applications of Satisfiability Testing, pp. 51–52 (2013)
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)
Bjesse, P.: A practical approach to word level model checking of industrial netlists. In: Computer Aided Verification, pp. 446–458 (2008)
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)
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)
Cok, D.R.: jSMTLIB: tutorial, validation and adapter tools for SMT-LIBv2. In: NASA Formal Methods, pp. 480–486 (2011)
Cook, S.A.: The complexity of theorem-proving procedures. In: Symposium on the Theory of, Computing, pp. 151–158 (1971)
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)
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)
Eén, N., Sörensson, N.: An extensible SAT-solver. In: Theory and Applications of Satisfiability Testing, pp. 502–518 (2003)
Ganai, M.K., Gupta, A.: Accelerating high-level bounded model checking. In: International Conference on Computer Aided Design, pp. 794–801 (2006)
Ganesh, V., Dill, D.L.: A decision procedure for bit-vectors and arrays. In: Computer Aided Verification, pp. 519–531 (2007)
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)
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)
Hudak, P.R.: Modular domain specific languages and tools. In: International Conference on Software Reuse, pp. 134 (1998)
Levin, L.A.: Universal search problems. Problems of Information Transmission. Translation from Russian to English, 9(3), 115–116 (1973)
McMillan, K.L.: Interpolation and SAT-based model checking. In: Computer Aided Verification, pp. 1–13 (2003)
Niklas Eén, N.S.: Translating pseudo-boolean constraints into SAT. J. Satisfiab. Boolean Model. Comput. 2(1–4), 1–26 (2006)
Palikareva, H., Cadar, C.: Multi-solver support in symbolic execution. In: Computer Aided Verification, pp. 53–68 (2013)
Reiter, R.: A theory of diagnosis from first principles. Artif. Intell. 32(1), 57–95 (1987)
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)
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)
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)
Somenzi, F.: CUDD: CU Decision Diagram Package Release 2.4.1. University of Colorado at Boulder, Boulder (2009)
Strichman, O.: Pruning techniques for the SAT-based bounded model checking problem. In: Correct Hardware Design and Verification Methods, pp. 58–70 (2001)
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)
Author information
Authors and Affiliations
Corresponding author
Additional information
This work was supported in part by the European Union’s Horizon 2020 research and innovation programme within the project IMMORTAL under Grand Agreement No. 644905, the German Federal Ministry of Education and Research (BMBF) within the project EffektiV under Contract No. 01IS13022E, by the German Research Foundation (DFG) within the Reinhart Koselleck project DR 287/23-1 and by the University of Bremen’s graduate school SyDe, funded by the German Excellence Initiative.
Rights and permissions
About this article
Cite this article
Riener, H., Haedicke, F., Frehse, S. et al. metaSMT: focus on your application and not on solver integration. Int J Softw Tools Technol Transfer 19, 605–621 (2017). https://doi.org/10.1007/s10009-016-0426-1
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-016-0426-1