Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
97 tokens/sec
GPT-4o
53 tokens/sec
Gemini 2.5 Pro Pro
44 tokens/sec
o3 Pro
5 tokens/sec
GPT-4.1 Pro
47 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Reinforcement Learning and Data-Generation for Syntax-Guided Synthesis (2307.09564v2)

Published 13 Jul 2023 in cs.AI

Abstract: Program synthesis is the task of automatically generating code based on a specification. In Syntax-Guided Synthesis (SyGuS) this specification is a combination of a syntactic template and a logical formula, and the result is guaranteed to satisfy both. We present a reinforcement-learning guided algorithm for SyGuS which uses Monte-Carlo Tree Search (MCTS) to search the space of candidate solutions. Our algorithm learns policy and value functions which, combined with the upper confidence bound for trees, allow it to balance exploration and exploitation. A common challenge in applying machine learning approaches to syntax-guided synthesis is the scarcity of training data. To address this, we present a method for automatically generating training data for SyGuS based on anti-unification of existing first-order satisfiability problems, which we use to train our MCTS policy. We implement and evaluate this setup and demonstrate that learned policy and value improve the synthesis performance over a baseline by over 26 percentage points in the training and testing sets. Our tool outperforms state-of-the-art tool cvc5 on the training set and performs comparably in terms of the total number of problems solved on the testing set (solving 23% of the benchmarks on which cvc5 fails). We make our data set publicly available, to enable further application of machine learning methods to the SyGuS problem.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (47)
  1. Counterexample guided inductive synthesis modulo theories. In International Conference on Computer Aided Verification, 270–288. Springer.
  2. Syntax-guided synthesis. In Formal Methods in Computer-Aided Design, FMCAD 2013, Portland, OR, USA, October 20-23, 2013, 1–8. IEEE.
  3. Syntax Guided Synthesis Competition. https://sygus.org/.
  4. Scaling Enumerative Program Synthesis via Divide and Conquer. In TACAS (1), volume 10205 of Lecture Notes in Computer Science, 319–336.
  5. Term rewriting and all that. Cambridge University Press.
  6. DeepCoder: Learning to Write Programs. In ICLR (Poster). OpenReview.net.
  7. cvc5: A Versatile and Industrial-Strength SMT Solver. In TACAS (1), volume 13243 of Lecture Notes in Computer Science, 415–442. Springer.
  8. AutoPandas: neural-backed generators for program synthesis. Proc. ACM Program. Lang., 3(OOPSLA): 168:1–168:27.
  9. Leveraging grammar and reinforcement learning for neural program synthesis. In International Conference on Learning Representations.
  10. Cazenave, T. 2013. Monte-Carlo Expression Discovery. Int. J. Artif. Intell. Tools, 22(1).
  11. Anti-unification and Generalization: A Survey. CoRR, abs/2302.00277.
  12. Using SyGuS to Synthesize Reactive Motion Plans. In SYNT@CAV, volume 229 of EPTCS, 3–20.
  13. XGBoost: A Scalable Tree Boosting System. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD ’16, 785–794. New York, NY, USA: ACM. ISBN 978-1-4503-4232-2.
  14. Program Synthesis Using Deduction-Guided Reinforcement Learning. In CAV (2), volume 12225 of Lecture Notes in Computer Science, 587–610. Springer.
  15. ENIGMA-NG: Efficient Neural and Gradient-Boosted Inference Guidance for E. In CADE, volume 11716 of Lecture Notes in Computer Science, 197–215. Springer.
  16. Program Synthesis for Program Analysis. ACM Trans. Program. Lang. Syst., 40(2): 5:1–5:45.
  17. Z3: An Efficient SMT Solver. In TACAS, volume 4963 of Lecture Notes in Computer Science, 337–340. Springer.
  18. Write, Execute, Assess: Program Synthesis with a REPL. In NeurIPS, 9165–9174.
  19. Machine Learning Guidance for Connection Tableaux. J. Autom. Reason., 65(2): 287–320.
  20. Quantified Invariants via Syntax-Guided Synthesis. In CAV (1), volume 11561 of Lecture Notes in Computer Science, 259–277. Springer.
  21. Program synthesis using conflict-driven learning. In PLDI, 420–435. ACM.
  22. Gauthier, T. 2020. Deep Reinforcement Learning for Synthesizing Functions in Higher-Order Logic. In LPAR, volume 73 of EPiC Series in Computing, 230–248. EasyChair.
  23. Predicting SMT Solver Performance for Software Verification. In F-IDE@FM, volume 240 of EPTCS, 20–37.
  24. DeepMath - Deep Sequence Models for Premise Selection. In NIPS, 2235–2243.
  25. ENIGMA: Efficient Learning-Based Inference Guiding Machine. In CICM, volume 10383 of Lecture Notes in Computer Science, 292–302. Springer.
  26. Oracle-guided component-based program synthesis. In ICSE (1), 215–224. ACM.
  27. A theory of formal synthesis via inductive learning. Acta Informatica, 54(7): 693–726.
  28. Reinforcement Learning of Theorem Proving. In NeurIPS, 8836–8847.
  29. Verified lifting of stencil computations. In PLDI, 711–726. ACM.
  30. Bandit Based Monte-Carlo Planning. In ECML, volume 4212 of Lecture Notes in Computer Science, 282–293. Springer.
  31. Kutsia, T. 2013. Anti-Unification: Algorithms and Applications. In UNIF@RTA/TLCA, volume 19 of EPiC Series in Computing, 2. EasyChair.
  32. Learning to Find Proofs and Theorems by Learning to Refine Search Strategies: The Case of Loop Invariant Synthesis. In NeurIPS.
  33. Accelerating search-based program synthesis using learned probabilistic models. In PLDI, 436–449. ACM.
  34. An Efficient Unification Algorithm. ACM Trans. Program. Lang. Syst., 4(2): 258–282.
  35. What Can We Learn Even from the Weakest? Learning Sketches for Programmatic Strategies. In AAAI, 7761–7769. AAAI Press.
  36. Grammar Filtering for Syntax-Guided Synthesis. In AAAI, 1611–1618. AAAI Press.
  37. BUSTLE: Bottom-Up Program Synthesis Through Learning-Guided Exploration. In ICLR. OpenReview.net.
  38. Plotkin, G. D. 1970. A Note on Inductive Generalization. Machine Intelligence, 5: 153–163.
  39. Programming by Example Using Least General Generalizations. In AAAI, 283–290. AAAI Press.
  40. cvc4sy: Smart and Fast Term Enumeration for Syntax-Guided Synthesis. In CAV (2), volume 11562 of Lecture Notes in Computer Science, 74–83. Springer.
  41. SyGuS Techniques in the Core of an SMT Solver. In SYNT@CAV, volume 260 of EPTCS, 81–96.
  42. Code2Inv: A Deep Learning Framework for Program Verification. In CAV (2), volume 12225 of Lecture Notes in Computer Science, 151–164. Springer.
  43. A general reinforcement learning algorithm that masters chess, shogi, and Go through self-play. Science, 362(6419): 1140–1144.
  44. Solar-Lezama, A. 2009. The sketching approach to program synthesis. In Asian Symposium on Programming Languages and Systems, 4–13. Springer.
  45. Learning compositional programs with arguments and sampling. CoRR, abs/2109.00619.
  46. The SMT Competition 2015-2018. J. Satisf. Boolean Model. Comput., 11(1): 221–259.
  47. Anti-unification in Constraint Logic Programming. Theory Pract. Log. Program., 19(5-6): 773–789.
User Edit Pencil Streamline Icon: https://streamlinehq.com
Authors (2)
  1. Julian Parsert (7 papers)
  2. Elizabeth Polgreen (20 papers)
Citations (2)

Summary

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