CAV'19 Artifact for Paper 100
This repository contains the code to reproduce the claims made in our CAV paper titled "Overfitting in Synthesis: Theory and Practice". More specifically, we provide all 180 invariant-inference SyGuS benchmarks, implementations of all 6 grammars presented in our paper, working code for the hybrid enumeration (HEnum
) technique, and several scripts to reproduce the empirical claims made in the paper:
- Recording the number of failures with increasing grammar expressiveness,
- Measuring the running time and number of CEGIS rounds for LoopInvGen, and
- Comparing the performance of
PLearn
andHEnum
Installation
Using VM Image (Official CAV'19 Artifact)
- Grab the
cav19-artifact-100.zip
file from Zenodo. - Optionally, verify that the
sha1sum
of the zip file matches withcav19-artifact-100.sha1
:- Download the
cav19-artifact-100.zip
andcav19-artifact-100.sha1
files to the same directory. - In that directory, run:
sha1sum -c cav19-artifact-100.sha1
. - You should see
cav19-artifact-100.zip: OK
.
- Download the
- Upon extracting the zip file, you should see:
CAV19_Artifact_100.ova
VM image,- a copy of this file (
Getting_Started.md
), and - the artifact evaluation instructions (
Instructions.html
).
- Download and install
virtualbox
on your machine. - Import the
.ova
image to your virtualbox. - Make sure you assign enough memory (8 GB minimum, 16 GB recommended).
- Boot the system and perform some basic checks:
- Login with user
cav
and passwordae
. - Start a terminal session (CTRL+ALT+T) and try:
cd CAV_100
make clean ; make dependencies
- Login with user
- If you didn't notice any errors so far and you get the
Everything built!
message, then you can proceed with the artifact evaluation steps.
Alternatives
LoopInvGen+HE has now been merged into the main LoopInvGen repo. See LoopInvGen repository for instructions on using docker builds, or native installation.
LICENSE
The code in this repository, LoopInvGen and LoopInvGen+HE are all licensed under the MIT License.
Copyrights for CVC4, EUSolver, SketchAC and Stoch (included in the VM image) are property of their respective owners.