Synthesiz3 This: an SMT-Based Approach for Synthesis with Uncomputable Symbols
By: Petra Hozzová, Nikolaj Bjørner
Potential Business Impact:
Makes computers write code from math problems.
Program synthesis is the task of automatically constructing a program conforming to a given specification. In this paper we focus on synthesis of single-invocation recursion-free functions conforming to a specification given as a logical formula in the presence of uncomputable symbols (i.e., symbols used in the specification but not allowed in the resulting function). We approach the problem via SMT-solving methods: we present a quantifier elimination algorithm using model-based projections for both total and partial function synthesis, working with theories of uninterpreted functions and linear arithmetic and their combination. For this purpose we also extend model-based projection to produce witnesses for these theories. Further, we present procedures tailored for the case of uniquely determined solutions. We implemented a prototype of the algorithms using the SMT-solver Z3, demonstrating their practical efficiency compared to the state of the art.
Similar Papers
Towards Learning Infinite SMT Models (Work in Progress)
Logic in Computer Science
Finds patterns in math problems for computers.
Proof-Producing Translation of Functional Programs into a Time \& Space Reasonable Model
Logic in Computer Science
Builds computer programs from simpler instructions.
Functional Program Synthesis with Higher-Order Functions and Recursion Schemes
Neural and Evolutionary Computing
Makes computers write their own code better.