Optimal Program Synthesis via Abstract Interpretation
Stephen Mell, Steve Zdancewic, Osbert Bastani

TL;DR
This paper introduces a scalable, optimal program synthesis framework using abstract interpretation and A* search, providing guarantees of optimality for programs with numerical constants in domain-specific languages.
Contribution
It presents a novel search-based synthesis method with provable optimality and scalability improvements over existing approaches, leveraging abstract interpretation heuristics.
Findings
The framework guarantees optimality of synthesized programs.
It outperforms existing methods in scalability.
The approach is effective for data classification DSLs.
Abstract
We consider the problem of synthesizing programs with numerical constants that optimize a quantitative objective, such as accuracy, over a set of input-output examples. We propose a general framework for optimal synthesis of such programs in a given domain specific language (DSL), with provable optimality guarantees. Our framework enumerates programs in a general search graph, where nodes represent subsets of concrete programs. To improve scalability, it uses A* search in conjunction with a search heuristic based on abstract interpretation; intuitively, this heuristic establishes upper bounds on the value of subtrees in the search graph, enabling the synthesizer to identify and prune subtrees that are provably suboptimal. In addition, we propose a natural strategy for constructing abstract transformers for monotonic semantics, which is a common property for components in DSLs for data…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFormal Methods in Verification · Embedded Systems Design Techniques · Machine Learning and Algorithms
