Delta debugger for SMT-LIB files


License
MIT
Install
pip install pydelta-smt==0.4.dev59

Documentation

!!! pyDelta is no longer maintained !!!

pyDelta was implemented as a proof of concept. Please use ddSMT instead, it can do pretty much everything pyDelta can do, and much more!

GitHub Workflow Status Read the Docs PyPI PyPI - Python Version PyPI - License

pyDelta: delta debugging for SMT-LIB

pyDelta is a delta debugger for SMT-LIB files. It is heavily inspired by other similar tools like ddSMT, DeltaSMT or delta. pyDelta is based on a few fundamental ideas:

  • parse generic S-expressions. This is very robust against changes to SMT-LIB or solver specific extensions. It also allows for a small parser and simple node structure. Most semantic information that is required for simplification can be recovered cheaply.
  • parallel execution. Running multiple checks in parallel allows for significant speedups when minimizing faulty inputs.
  • easy to extend. It should be fairly easy to add new simplifications by implementing new mutators.
  • fixed-point iteration. Simplifications are applied until no simplifications are possible anywhere. Rerunning pyDelta on a minimized input should not yield further improvements.
  • flexible to use. The options should cover most use cases, including checking for the exit code or checking for specific patterns in the (regular or error) output.

Please visit https://pydelta.readthedocs.io for more documentation.