Augmented example-based synthesis using relational perturbation properties
Shengwei An, Rishabh Singh, Sasa Misailovic, Roopsha Samanta
Abstract
Example-based specifications for program synthesis are inherently ambiguous and may cause synthesizers to generate programs that do not exhibit intended behavior on unseen inputs. Existing synthesis techniques attempt to address this problem by either placing a domain-specific syntactic bias on the hypothesis space or heavily relying on user feedback to help resolve ambiguity. We present a new framework to address the ambiguity/generalizability problem in example-based synthesis. The key feature of our framework is that it places a semantic bias on the hypothesis space using "relational perturbation properties" that relate the perturbation/change in a program output to the perturbation/change in a program input. An example of such a property is permutation invariance: the program output does not change when the elements of the program input (array) are permuted. The framework is portable across multiple domains and synthesizers and is based on two core steps: (1) automatically augment the set of user-provided examples by "applying" relational perturbation properties and (2) use a generic example-based synthesizer to generate a program consistent with the augmented set of examples. Our framework can be instantiated with three different user interfaces, with varying degrees of user engagement to help infer relevant relational perturbation properties. This includes an interface in which the user only provides examples and our framework automatically infers relevant properties. We implement our framework in a tool SKETCHAX specialized to the SKETCH synthesizer and demonstrate that SKETCHAX is effective in significantly boosting the performance of SKETCH for all three user interfaces.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Cited by top-tier papers6
- Aquila: a practically usable verification system for production-scale programmable data planesBingchuan Tian, Jiaqi Gao, Mengqi Liu, Ennan Zhai et al.SIGCOMM 2021 · 28 citations
- Interactive synthesis of temporal specifications from examples and natural languageIvan Gavran, Eva Darulova, Rupak MajumdarOOPSLA 2020 · 22 citations
- Feedback-driven semi-supervised synthesis of program transformationsXiang Gao, Shraddha Barke, Arjun Radhakrishna, Gustavo Soares et al.OOPSLA 2020 · 17 citations
- Data-Driven Synthesis of Provably Sound Side Channel AnalysesJingbo Wang, Chungha Sung, Mukund Raghothaman, Chao WangICSE 2021 · 14 citations
- SynGuar: guaranteeing generalization in programming by exampleBo Wang, Teodora Baluta, Aashish Kolluri, Prateek SaxenaFSE 2021
Related papers
- Program Sketching by Automatically Generating Mocks from TestsNate F. F. Bragg, Jeffrey S. Foster, Cody Roux, Armando Solar-LezamaCAV 2021 · 4 citations
- Interactive Program Synthesis by Augmented ExamplesTianyi Zhang, London Lowmanstone, Xinyu Wang, Elena L. GlassmanUIST 2020 · 57 citations
- Guiding Program Synthesis by Learning to Generate ExamplesLarissa Laich, Pavol Bielik, Martin T. VechevICLR 2020 · 17 citations
- Program Synthesis with Pragmatic CommunicationYewen Pu, Kevin Ellis, Marta Kryven, Josh Tenenbaum et al.NeurIPS 2020 · 26 citations
- Trace-Guided Inductive Synthesis of Recursive Functional ProgramsYongwei Yuan, Arjun Radhakrishna, Roopsha SamantaPLDI 2023 · 17 citations
