A Minimalist Web Page
Well, Hi.
Publications
A Simple Inductive Synthesis Methodology and Its Applications
Abstract
BibTeX
PDF
Shachar Itzhaky, Sumit Gulwani, Neil Immerman, Mooly Sagiv
In the Proceedings of the ACM SPLASH Conference (SPLASH 2010), Reno, NV, United States, October 2010.
Given a high-level specification and a low-level programming language, our goal is to automatically
synthesize an efficient program that meets the specification. In this paper, we present a new
algorithmic methodology for inductive synthesis that allows us to do this.
We use Second Order logic as our generic high level specification logic. For our low-level
languages we choose small application-specific logics that can be immediately translated into code
that runs in expected linear time in the worst case.
We explain our methodology and provide examples of the synthesis of several graph classifiers, e.g,
linear-time tests of whether the input graph is connected, acyclic, etc. In another set of
applications we automatically derive many finite differencing expressions equivalent to ones that
Paige built by hand in his thesis. Finally we describe directions for
automatically combining such automatically generated building blocks to synthesize efficient code
implementing more complicated specifications.
The methods in this paper have been implemented in Python using the SMT solver Z3.
Software
- Figure (2D Graphics Synthesis)
- Windows: Figure-win32-110301.zip (32M)
Mac: Figure-udzo-110301.dmg (24M)
Users are encouraged to download the STIX fonts package
(free) for enhanced display of mathmatical symbols in formulas.