metaSMT: focus on your application and not on solver integration

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

DOI: 10.1007/s10009-016-0426-1

Cite this article as:
Riener, H., Haedicke, F., Frehse, S. et al. Int J Softw Tools Technol Transfer (2016). doi:10.1007/s10009-016-0426-1

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.

Keywords

Formal methods Logic SAT SMT EDSL 

Copyright information

© Springer-Verlag Berlin Heidelberg 2016

Authors and Affiliations

  • Heinz Riener
    • 1
    • 2
  • 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