Software Artifact for the CAV'19 Paper Titled "Overfitting in Synthesis: Theory and Practice"
- 1. University of California, Los Angeles
- 2. Microsoft Research, Cambridge
- 3. Microsoft Research, India
Description
Abstract:
In syntax-guided synthesis (SyGuS), a synthesizer's goal is to automatically generate a program belonging to a grammar of possible implementations that meets a logical specification. We investigate a common limitation across state-of-the-art SyGuS tools that perform counterexample-guided inductive synthesis (CEGIS). We empirically observe that as the expressiveness of the provided grammar increases, the performance of these tools degrades significantly.
We claim that this degradation is not only due to a larger search space, but also due to overfitting. We formally define this phenomenon and prove no-free-lunch theorems for SyGuS, which reveal a fundamental tradeoff between synthesizer performance and grammar expressiveness.
A standard approach to mitigate overfitting in machine learning is to run multiple learners with varying expressiveness in parallel. We demonstrate that this insight can immediately benefit existing SyGuS tools. We also propose a novel single-threaded technique called hybrid enumeration that interleaves different grammars and outperforms the winner of the 2018 SyGuS competition (Inv track), solving more problems and achieving a 5x mean speedup.
- - - - - - - -
The Artifact:
This software artifact contains 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
- - - - - - - -
Instructions:
- Grab the
cav19-artifact-100.zip
file. - 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.
Notes
Files
cav19-artifact-100.zip
Files
(5.2 GB)
Name | Size | Download all |
---|---|---|
md5:a28d8c49bb091ab4e389d076db8e134c
|
65 Bytes | Download |
md5:1d5e0da8e4f595271affb5887ae523e3
|
5.2 GB | Preview Download |
Additional details
Related works
- Is previous version of
- https://github.com/SaswatPadhi/LoopInvGen (URL)
- Is supplement to
- https://github.com/SaswatPadhi/2019_CAV_Artifact_100 (URL)
Funding
- SHF: Small: Interacting to Specify Software 1527923
- National Science Foundation