Decidable Synthesis of Programs with Uninterpreted Functions

10/22/2019
by   Paul Krogmeier, et al.
0

We identify a decidable synthesis problem for a class of programs of unbounded size with conditionals and iteration that work over infinite data domains. The programs in our class use uninterpreted functions and relations, and abide by a restriction called coherence that was recently identified to yield decidable verification. We formulate a powerful grammar-restricted (syntax-guided) synthesis problem for coherent uninterpreted programs and show the problem to be decidable. We identify its precise complexity, which is doubly exponential in the set of program variables and linear in the size of the grammar. The decision procedure uses tree automata which accept finite syntax trees of all correct programs. It checks that each of the infinitely many executions for a given program is correct using a finite memory streaming congruence closure algorithm. We also study variants of uninterpreted program synthesis: synthesis of transition systems with lower complexity (EXPTIME), synthesis of recursive programs, and synthesis of Boolean programs. We also show undecidability results that argue the necessity of our restrictions.

READ FULL TEXT
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

page 2

page 3

page 4

05/14/2019

Proving Unrealizability for Syntax-Guided Synthesis

Proving Unrealizability for Syntax-Guided Synthesis We consider the pr...
11/01/2018

Decidable Verification of Uninterpreted Programs

verifying uninterpreted programs---programs that work over arbitrary da...
10/24/2019

What's Decidable About Program Verification Modulo Axioms?

We consider the decidability of the verification problem of programs mod...
05/11/2018

Leveraging Grammar and Reinforcement Learning for Neural Program Synthesis

Program synthesis is the task of automatically generating a program cons...
01/27/2020

Unsupervised Program Synthesis for Images using Tree-Structured LSTM

Program synthesis has recently emerged as a promising approach to the im...
05/03/2022

Does a Program Yield the Right Distribution? Verifying Probabilistic Programs via Generating Functions

We study discrete probabilistic programs with potentially unbounded loop...
08/27/2021

Recent Developments in Program Synthesis with Evolutionary Algorithms

The automatic generation of computer programs is one of the main applica...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.