SMT-RAT: An Open Source C++ Toolbox for Strategic and Parallel SMT Solving

F Corzilius, G Kremer, S Junges, S Schupp… - Theory and Applications …, 2015 - Springer
F Corzilius, G Kremer, S Junges, S Schupp, E Ábrahám
Theory and Applications of Satisfiability Testing--SAT 2015: 18th …, 2015Springer
During the last decade, popular SMT solvers have been extended step-by-step with a wide
range of decision procedures for different theories. Some SMT solvers also support the user-
defined tuning and combination of such procedures, typically via command-line options.
However, configuring solvers this way is a tedious task with restricted options. In this paper
we present our modular and extensible C++ library SMT-RAT, which offers numerous
parameterized procedure modules for different logics. These modules can be configured …
Abstract
During the last decade, popular SMT solvers have been extended step-by-step with a wide range of decision procedures for different theories. Some SMT solvers also support the user-defined tuning and combination of such procedures, typically via command-line options. However, configuring solvers this way is a tedious task with restricted options.
In this paper we present our modular and extensible C++ library SMT-RAT, which offers numerous parameterized procedure modules for different logics. These modules can be configured and combined into an SMT solver using a comprehensible whilst powerful strategy, which can be specified via a graphical user interface. This makes it easier to construct a solver which is tuned for a specific set of problem instances. Compared to a previous version, we have extended our library with a number of new modules and support for parallelization in strategies. An additional contribution is our thread-safe and generic C++ library CArL, offering efficient data structures and basic operations for real arithmetic, which can be used for the fast implementation of new theory-solving procedures.
Springer