π€ AI Summary
Existing program synthesis approaches fail to produce valid programs when specifications involving nonlinear real arithmetic (NRA) are unrealizable. This work proposes the first synthesis framework capable of handling arbitrary NRA specifications over rational inputs and outputs, generating correct programs whenever the specification is satisfiable and reliably reporting unsolvability otherwise. By integrating formal verification, exact rational arithmetic, syntax-guided synthesis (SyGuS), and a tailored search strategy, the method achieves completeness for the single-output-variable caseβa first in the fieldβand reveals intricate connections between synthesis feasibility and deep problems in number theory. The prototype tool NQSynth successfully synthesizes programs on benchmarks beyond the reach of current SyGuS solvers, demonstrating superior performance even on realizable specifications.
π Abstract
We study the problem of synthesizing programs from nonlinear real arithmetic (NRA) specifications. Existing techniques, such as syntax-guided synthesis (SyGuS), fail to synthesize programs when the specification is unrealizable. We argue this is unsatisfactory in many situations, and aim to synthesize programs from arbitrary NRA specifications, such that for any input, the synthesized program either produces outputs satisfying the specification or reports non-existence of any such output. To avoid rounding errors inherent in floating-point arithmetic, we restrict our programs to work on rational inputs and outputs.
We first show that our variant of the synthesis problem is as hard as a long-standing open problem in number theory, and that synthesizing loop-free programs from arbitrary NRA specifications with rational inputs and outputs is impossible in general. Second, we present a sound and complete synthesis algorithm for the case where the specification involves a single output variable. We also show that for realizable specifications, a program generated by SyGuS for NRA (real inputs and outputs) serves as a solution to our problem, where inputs and outputs are rationals. Third, we provide a sound (but necessarily incomplete) synthesis algorithm for the general case of specifications. We have implemented our approach in a prototype tool called NQSynth that solves many benchmarks beyond the reach of state-of-the-art SyGuS tools, even when we render the specifications realizable.