🤖 AI Summary
This work addresses the challenge of automatically synthesizing provably correct, recursion-free programs from specifications containing non-computable symbols while ensuring the completeness of the synthesis method. The authors extend the superposition calculus to the domain of program synthesis and refine its inference rules to overcome incompleteness in certain cases. Their proposed system achieves, for the first time within a superposition-based framework, synthesis completeness under a realizability assumption: whenever a computable program satisfying the specification exists, it is guaranteed to be synthesized. By integrating automated theorem proving, formal specification reasoning, and realizability analysis, the approach offers both soundness and theoretical completeness.
📝 Abstract
Program synthesis is the task of automatically deriving a program that has been specified by a user in advance. Combining automated theorem proving with program synthesis enables the automated construction of proven-to-be-correct programs, thereby ensuring software reliability. In this paper, we consider the superposition-based calculus extended to support synthesis of recursion-free programs allowing reasoning with uncomputable symbols. We present cases where the calculus fails and refine it to solve them. We prove that the refined calculus is sound. Finally, we also prove completeness in the following sense: if at least one computable program satisfying the given specification exists, we show that the modified calculus finds one.