About SMTInterpol
SMTInterpol is an SMT Solver that can compute Craig interpolants for various theories. The solver is developed at the Chair of Software Engineering at the University of Freiburg.
The solver is written in Java and can be used on any operating system that supports Java Version 8 or above.
The solver reads input in SMTLIB Version 2.6 format.
Status
The current version of SMTInterpol supports the combination of the theories of uninterpreted functions, bit-vector, linear real arithmetic, linear integer arithmetic, arrays including constant arrays, and datatypes.
SMTInterpol supports quantifiers for all supported theories except for datatypes, and it supports interpolation for the quantifier-free fragments of all supported theories except datatypes.
System Requirements
SMTInterpol needs a Java 8 JRE or above. No special hardware is necessary but depending on the input problem, a fast CPU and a good amount of RAM might be useful.
Current Team
SMTInterpol is developed by Jochen Hoenicke, Elisabeth Henkel and Tanja Schindler. If you have any questions, suggestions, or if you want to contribute, feel free to contact us.
Other contributors
| Name | Main contribution |
| Max Barth | Theory solver for bitvectors |
| Daniel Blank | Proof translation to SMTCoq |
| Jürgen Christ | Major parts of SMTInterpol |
| Leonard Fichtner | Unsat core enumeration and heuristics |
| Joanna Greulich | Parser for datatypes |
| Moritz Mohr | Theory solver for datatypes |
| Alexander Nutz | Theory solver for EPR |
| Markus Pomrehn | Fine-grained rewrite proofs |
| Andrea Qosja | Web interface |
| Pascal Raiola | Trigger compiler |
| Daniel Dietsch, Matthias Heizmann | SMT-LIB libraries |
Bug Reports
Please use our github page to report bugs.
License
SMTInterpol is distributed under LGPL Version 3.
SMTInterpol in Action
SMTInterpol participates regularly in the SMT-COMP. See this page or the news page for further details.