Bottom-up Synthesis of Recursive Functional Programs using Angelic Execution

07/13/2021
by   Anders Miltner, et al.
0

We present a novel bottom-up method for the synthesis of functional recursive programs. While bottom-up synthesis techniques can work better than top-down methods in certain settings, there is no prior technique for synthesizing recursive programs from logical specifications in a purely bottom-up fashion. The main challenge is that effective bottom-up methods need to execute sub-expressions of the code being synthesized, but it is impossible to execute a recursive subexpression of a program that has not been fully constructed yet. In this paper, we address this challenge using the concept of angelic semantics. Specifically, our method finds a program that satisfies the specification under angelic semantics (we refer to this as angelic synthesis), analyzes the assumptions made during its angelic execution, uses this analysis to strengthen the specification, and finally reattempts synthesis with the strengthened specification. Our proposed angelic synthesis algorithm is based on version space learning and therefore deals effectively with many incremental synthesis calls made during the overall algorithm. We have implemented this approach in a prototype called Burst and evaluate it on synthesis problems from prior work. Our experiments show that Burst is able to synthesize a solution to 95

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/16/2020

Synthesize, Execute and Debug: Learning to Repair for Neural Program Synthesis

The use of deep learning techniques has achieved significant progress fo...
research
05/30/2019

Learning Compositional Neural Programs with Recursive Tree Search and Planning

We propose a novel reinforcement learning algorithm, AlphaNPI, that inco...
research
03/06/2021

Synthesis with Asymptotic Resource Bounds

We present a method for synthesizing recursive functions that satisfy bo...
research
06/09/2019

Write, Execute, Assess: Program Synthesis with a REPL

We present a neural program synthesis approach integrating components wh...
research
03/30/2022

Type-Directed Program Synthesis for RESTful APIs

With the rise of software-as-a-service and microservice architectures, R...
research
02/21/2022

Optimizing Recursive Queries with Program Synthesis

Most work on query optimization has concentrated on loop-free queries. H...
research
03/30/2023

Synthesis of Mathematical programs from Natural Language Specifications

Several decision problems that are encountered in various business domai...

Please sign up or login with your details

Forgot password? Click here to reset