PINS: Path-based Inductive Synthesis


PINS is a testing-inspired approach to program synthesis. Instead of attempting to reason about the program under all environment conditions (which is hard), it instead reasons about a small set of carefully chosen paths (which is much simpler) exactly like in testing.

We have applied PINS to automatically invert programs.

PINS is part of the VS3 project.

Publications/Technical Reports

Path-based Inductive Synthesis for Program Inversion
Saurabh Srivastava and Sumit Gulwani and Swarat Chaudhuri and Jeffrey S. Foster
Programming Languages Design and Implementation 2011 (PLDI'11)
[ bib | acm | .ps | .pdf ]


The source is right now under GPLv3, in the interest of delegating to later the decision to actually think about what is the right license to release under. If you have an option on why we should not use GPL then let me know. If for some reason you need to use PINS for commercial purposes, email me and we can consider releasing PINS under a dual license.



Saurabh Srivastava
Sumit Gulwani
Jeffrey S. Foster
Swarat Chaudhuri