SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
Finding and Reporting Bugs

This page is meant as a guide for the case that you find a bug or any unexpected behaviour. We consider any of the following events a (potential) bug:

  • SMT-RAT crashes.
  • A library used through SMT-RAT crashes.
  • SMT-RAT gives incorrect results.
  • SMT-RAT does not terminate (for reasonably sized inputs).
  • SMT-RAT does not provide a method or functionality that should be available according to this documentation.
  • SMT-RAT does not provide a method or functionality that you consider crucial or trivial for some of the datastructures.
  • Compiling SMT-RAT fails.
  • Compiling your code using SMT-RAT fails and you are pretty sure that you use SMT-RAT according to this documentation.

In any of the above cases, make sure that:

  • You have installed all necessary dependencies in the required versions.
  • You work on something that is similar to a system listed as supported platform at getting_started.
  • You can (somewhat reliably) reproduce the error with a (somewhat) clean build of SMT-RAT. (i.e., you did not screw up the CMake flags, see build_cmake for more information)
  • You compile either with CMAKE_BUILD_TYPE=DEBUG or DEVELOPER=ON. This will give additional warnings during compilation and enable assertions during runtime. This will slow down SMT-RAT significantly, but detect errors before an actual crash happens and give a meaningful error message in many cases.

If you are unable to solve issue yourself or you find the issue to be an actual bug in SMT-RAT, please do not hesitate to contact us. You can either contact us via email (if you suspect a configuration or usage issue on your side) or create a ticket in our bug tracker (if you suspect an error that is to be fixed by us). The bug tracker is available at https://github.com/ths-rwth/smtrat/issues.

When sending us a mail or creating a ticket, please provide us with:

  • Your system specifications, including versions of compilers and libraries listed in the dependencies.
  • The SMT-RAT version (release version of git commit id).
  • A minimal working example.
  • A description of what you would expect to happen.
  • A description of what actually happens.