Learning Abstractions for Program Synthesis

04/11/2018
by   Xinyu Wang, et al.
0

Many example-guided program synthesis techniques use abstractions to prune the search space. While abstraction-based synthesis has proven to be very powerful, a domain expert needs to provide a suitable abstract domain, together with the abstract transformers of each DSL construct. However, coming up with useful abstractions can be non-trivial, as it requires both domain expertise and knowledge about the synthesizer. In this paper, we propose a new technique for learning abstractions that are useful for instantiating a general synthesis framework in a new domain. Given a DSL and a small set of training problems, our method uses tree interpolation to infer reusable predicate templates that speed up synthesis in a given domain. Our method also learns suitable abstract transformers by solving a certain kind of second-order constraint solving problem in a data-driven way. We have implemented the proposed method in a tool called ATLAS and evaluate it in the context of the BLAZE meta-synthesizer. Our evaluation shows that (a) ATLAS can learn useful abstract domains and transformers from few training problems, and (b) the abstractions learned by ATLAS allow BLAZE to achieve significantly better results compared to manually-crafted abstractions.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/21/2017

Program Synthesis using Abstraction Refinement

We present a new approach to example-guided program synthesis based on c...
research
05/02/2021

Synthesizing Abstract Transformers

This paper addresses the problem of creating abstract transformers autom...
research
12/14/2020

A learning perspective on the emergence of abstractions: the curious case of phonemes

In the present paper we use a range of modeling techniques to investigat...
research
10/04/2022

Learning Dynamic Abstract Representations for Sample-Efficient Reinforcement Learning

In many real-world problems, the learning agent needs to learn a problem...
research
11/29/2022

Top-Down Synthesis for Library Learning

This paper introduces corpus-guided top-down synthesis as a mechanism fo...
research
09/08/2022

Knowledge-Driven Program Synthesis via Adaptive Replacement Mutation and Auto-constructed Subprogram Archives

We introduce Knowledge-Driven Program Synthesis (KDPS) as a variant of t...

Please sign up or login with your details

Forgot password? Click here to reset