Program Synthesis is $Σ_3^0$-Complete
Jinwoo Kim
TL;DR
The paper asks how hard it is to decide whether a program-synthesis problem has a solution and answers that program synthesis over a Turing-complete IMP language is $Σ^0_3$-complete. It achieves this via a fully constructive encoding that converts the second-order synthesis definition into a first-order formula in Peano arithmetic, enabling a reduction from the $Σ^0_3$-complete COF problem. The authors introduce a complete-binary form to fix syntax and develop a value-tree based, bottom-up semantic encoding that handles both loop-free and looping IMP, culminating in a precise classification of synthesis and its variants. The work provides a foundational, structure-preserving framework for analyzing synthesis hardness and variants, with implications for theoretical understanding and future algorithmic directions.
Abstract
This paper considers program synthesis in the context of computational hardness, asking the question: How hard is it to determine whether a given synthesis problem has a solution or not? To answer this question, this paper studies program synthesis for a basic imperative, Turing-complete language IMP, for which this paper proves that program synthesis is $Σ_3^0$-\emph{complete} in the arithmetical hierarchy. The proof of this fact relies on a fully constructive encoding of program synthesis (which is typically formulated as a second-order query) as a first-order formula in the standard model of arithmetic (i.e., Peano arithmetic). Constructing such a formula then allows us to reduce the decision problem for COF (the set of functions which diverge only on a finite set of inputs), which is well-known to be a $Σ_3^0$-complete problem, into the constructed first-order representation of synthesis. In addition to this main result, we also consider the hardness of variants of synthesis problems, such as those introduced in previous work to make program synthesis more tractable (e.g., synthesis over finite examples). To the best of our knowledge, this paper is the first to give a first-order characterization of program synthesis in general, and precisely define the computability of synthesis problems and their variants.
