Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
169 tokens/sec
GPT-4o
7 tokens/sec
Gemini 2.5 Pro Pro
45 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Program Synthesis is $Σ_3^0$-Complete (2405.16997v1)

Published 27 May 2024 in cs.LO, cs.CC, and cs.PL

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 $\Sigma_30$-\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 $\Sigma_30$-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.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (21)
  1. Syntax-guided synthesis. In Formal Methods in Computer-Aided Design (FMCAD), 2013. IEEE, 1–8.
  2. FlashFill++: Scaling programming by example by cutting to the chase. Proceedings of the ACM on Programming Languages 7, POPL (2023), 952–981.
  3. Michael R Clarkson and Fred B Schneider. 2010. Hyperproperties. Journal of Computer Security 18, 6 (2010), 1157–1210.
  4. Grigory Fedyukovich and Rastislav Bodík. 2018. Accelerating syntax-guided invariant synthesis. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 251–269.
  5. Program synthesis using conflict-driven learning. ACM SIGPLAN Notices 53, 4 (2018), 420–435.
  6. Kurt Gödel. 1931. Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme I. Monatshefte für mathematik und physik 38 (1931), 173–198.
  7. Sumit Gulwani. 2011. Automating string processing in spreadsheets using input-output examples. ACM Sigplan Notices 46, 1 (2011), 317–330.
  8. Proving unrealizability for syntax-guided synthesis. In International Conference on Computer Aided Verification. Springer, 335–352.
  9. Exact and approximate methods for proving unrealizability of syntax-guided synthesis problems. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation. 1128–1142.
  10. Qinheping Hu and Loris D’Antoni. 2018. Syntax-guided synthesis with quantitative syntactic objectives. In International Conference on Computer Aided Verification. Springer, 386–403.
  11. Unrealizability logic. Proceedings of the ACM on Programming Languages 7, POPL (2023), 659–688.
  12. Semantics-guided synthesis. Proceedings of the ACM on Programming Languages 5, POPL (2021), 1–32.
  13. S3: syntax-and semantic-guided repair synthesis via programming by examples. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering. ACM, 593–604.
  14. Woosuk Lee. 2021. Combining the top-down propagation and bottom-up enumeration for inductive program synthesis. Proceedings of the ACM on Programming Languages 5, POPL (2021), 1–28.
  15. Angelix: Scalable multiline program patch synthesis via symbolic analysis. In Proceedings of the 38th international conference on software engineering. ACM, 691–701.
  16. Swizzle inventor: data movement synthesis for GPU kernels. In Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems. 65–78.
  17. Counterexample-guided quantifier instantiation for synthesis in SMT. In International Conference on Computer Aided Verification. Springer, 198–216.
  18. Robert I Soare. 2016. Turing computability: Theory and applications. Vol. 300. Springer.
  19. Armando Solar-Lezama. 2013. Program sketching. STTT 15, 5-6 (2013), 475–495. https://doi.org/10.1007/s10009-012-0249-7
  20. Emina Torlak and Rastislav Bodík. 2014. A lightweight symbolic virtual machine for solver-aided host languages. In ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’14, Edinburgh, United Kingdom - June 09 - 11, 2014. 530–541. https://doi.org/10.1145/2594291.2594340
  21. Glynn Winskel. 1993. The formal semantics of programming languages: an introduction. MIT press.

Summary

We haven't generated a summary for this paper yet.

X Twitter Logo Streamline Icon: https://streamlinehq.com