This project is about implementing a "symbolic execution" tool for Python 3.
There are 3 directories:
report/
: Contains the report discribing the project and symbolic execution in general.transformer/
: Contains Haskell code that prepares the Python code for symbolic execution.instrumentation/
: Contains the python code that does the actual symbolic execution.
- Install Z3 from Microsoft. Pick the unstable version, as the stable one is not yet compatible with Python 3.
- Install the Haskell platform, and whatever packages are needed to compile
transformer/Main.hs
. - If you want to specify your own input file, change the filepath, function name and number of arguments in
instrumentation/instrument.py
. - Run
instrumentation/instrument.py
.