- Clone or download the repo
- Enter top-level directory:
cd lemma-synthesis - Install the requirements:
pip3 install -r requirements.txt- Alternatively, for Z3Py you can build z3 from source with python bindings: https://github.com/Z3Prover/z3. Use the
--pythonflag while building.
- Alternatively, for Z3Py you can build z3 from source with python bindings: https://github.com/Z3Prover/z3. Use the
- Dowload the latest nightly build binary of cvc4 from https://cvc4.github.io/downloads.html and add it to
PATH: executeexport PATH ="/path/to/cvc4binary":$PATHor add it to~/.bashrcand then dosource ~/.bashrc. Alternatively, you can build from source.- The specific commit used to compile all examples in the Makefile is 2faf908e
- Make sure that
cvc4 --versionsucceeds. You may want to rename the binary or alias it tocvc4. - Add the path to the src/ folder to
PYTHONPATH: executeexport PYTHONPATH ="/path/to/src":$PYTHONPATHor add it to~/.bashrcand then dosource ~/.bashrc.
-
To run all the benchmarks, simply run
./test_all.shin the top-level directory- Command
timeoutis needed. On MacOS, run the following in order to obtain thetimeoutcommand:brew install coreutilssudo ln -s /usr/local/bin/gtimeout /usr/local/bin/timeout
- Command
-
The benchmarks are in the
experimentsdirectory. -
To run all benchmarks first change the directory to
experimentsand then runmake -s -i- NOTE: Ignoring the
-iflag will causemaketo abort if any of the examples fail.
- NOTE: Ignoring the
-
To cleanup all files generated by running examples:
make clean -
To run indidvidual examples:
python3 <filename>.py -
To run CVC4 files directly using SyGuS:
cvc4 --lang=sygus2 <filename>.sy- add option
--sygus-streamto print outputs indefinitely - add option
--sygus-abort-size=<n>with previous option to print outputs up to sizen
- add option
-
NOTE: The project uses temporary files to store and read data during execution. Therefore, it is not advisable to run multiple instances of the same example as they will each write to the same temporary files.