The SemGuS Toolkit
Pages 27 - 40
Abstract
Semantics-Guided Synthesis (SemGuS) is a programmable framework for defining synthesis problems in a domain- and solver-agnostic way. This paper presents the standardized SemGuS format, together with an open-source toolkit that providesa parser, a verifier, and enumerative SemGuS solvers. The paper also describes an initial set of SemGuS benchmarks, which form the basis for comparing SemGuS solvers, and presents an evaluation of the baseline enumerative solvers.
References
[1]
Alur, R., et al.: Syntax-guided synthesis. In: 2013 Formal Methods in Computer-Aided Design, pp. 1–8 (2013).
[2]
Alur R, Radhakrishna A, and Udupa A Legay A and Margaria T Scaling enumerative program synthesis via divide and conquer Tools and Algorithms for the Construction and Analysis of Systems 2017 Heidelberg Springer 319-336
[3]
Barrett, C., Fontaine, P., Tinelli, C.: The SMT-LIB Standard: Version 2.6. Technical report, Department of Computer Science, The University of Iowa (2017). www.SMT-LIB.org
[4]
Center for High Throughput Computing: Center for high throughput computing (2006)., https://chtc.cs.wisc.edu/
[5]
Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Graham, R.M., Harrison, M.A., Sethi, R. (eds.) Conference Record of the Fourth ACM Symposium on Principles of Programming Languages, Los Angeles, California, USA, January 1977, pp. 238–252. ACM (1977)., https://doi.org/10.1145/512950.512973
[6]
Cousot P and Cousot R Abstract interpretation and application to logic programs J. Log. Program. 1992 13 2 &3 103-179
[7]
D’Antoni L, Hu Q, Kim J, and Reps T Silva A and Leino KRM Programmable program synthesis Computer Aided Verification 2021 Cham Springer 84-109
[8]
Fedyukovich G, Prabhu S, Madhukar K, and Gupta A Dillig I and Tasiran S Quantified invariants via syntax-guided synthesis Computer Aided Verification 2019 Cham Springer 259-277
[9]
Gulwani, S.: Synthesis from examples. In: WAMBSE (Workshop on Advances in Model-Based Software Engineering) Special Issue, Infosys Labs Briefings. vol. 10. Citeseer (2012)
[10]
Gulwani, S., Jha, S., Tiwari, A., Venkatesan, R.: Synthesis of loop-free programs. In: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation. PLDI ’11, New York, NY, USA, pp. 62–73. Association for Computing Machinery (2011).
[11]
Gulwani S, Polozov O, and Singh R Program synthesis Found. Trends® Program. Lang. 2017 4 1–2 1-119
[12]
Hu Q and D’Antoni L Chockler H and Weissenbacher G Syntax-guided synthesis with quantitative syntactic objectives Computer Aided Verification 2018 Cham Springer 386-403
[13]
Huang, K., Qiu, X., Shen, P., Wang, Y.: Reconciling enumerative and deductive program synthesis. In: Donaldson, A.F., Torlak, E. (eds.) Proceedings of the 41st ACM SIGPLAN International Conference on Programming Language Design and Implementation, PLDI 2020, London, UK, June 15–20, 2020, pp. 1159–1174. ACM (2020)., https://doi.org/10.1145/3385412.3386027
[14]
Jha, S., Gulwani, S., Seshia, S.A., Tiwari, A.: Oracle-guided component-based program synthesis. In: Kramer, J., Bishop, J., Devanbu, P.T., Uchitel, S. (eds.) Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1, ICSE 2010, Cape Town, South Africa, 1–8 May 2010, pp. 215–224. ACM (2010).
[15]
Kim J, Hu Q, D’Antoni L, and Reps T Semantics-guided synthesis Proc. ACM Program. Lang. 2021 5 POPL 1-32
[16]
Lee M, So S, and Oh H Synthesizing regular expressions from examples for introductory automata assignments SIGPLAN Not. 2016 52 3 70-80
[17]
Li, X., Zhou, X., Dong, R., Zhang, Y., Wang, X.: Efficient bottom-up synthesis for programs with local variables. Proc. ACM Program. Lang. 8(POPL) (2024).
[18]
Miltner, A., Padhi, S., Millstein, T.D., Walker, D.: Data-driven inference of representation invariants. In: Donaldson, A.F., Torlak, E. (eds.) Proceedings of the 41st ACM SIGPLAN International Conference on Programming Language Design and Implementation, PLDI 2020, London, UK, June 15–20, 2020, pp. 1–15. ACM (2020).
[19]
Niemetz A, Preiner M, Reynolds A, Barrett C, and Tinelli C Chockler H and Weissenbacher G Solving quantified bit-vectors using invertibility conditions Computer Aided Verification 2018 Cham Springer 236-255
[20]
Nötzli A et al. Janota M, Lynce I, et al. Syntax-guided rewrite rule enumeration for SMT solvers Theory and Applications of Satisfiability Testing – SAT 2019 2019 Cham Springer 279-297
[21]
Padhi, S., Polgreen, E., Raghothaman, M., Reynolds, A., Udupa, A.: The sygus language standard version 2.1. CoRR abs/2312.06001 (2023).
[22]
Polgreen E, Reynolds A, and Seshia SA Finkbeiner B and Wies T Satisfiability and synthesis modulo oracles Verification, Model Checking, and Abstract Interpretation 2022 Cham Springer 263-284
[23]
Polozov, O., Gulwani, S.: FlashMeta: a framework for inductive program synthesis. In: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 107–126 (2015)
[24]
Reynolds A, Barbosa H, Nötzli A, Barrett C, and Tinelli C Dillig I and Tasiran S cvc4sy: smart and fast term enumeration for syntax-guided synthesis Computer Aided Verification 2019 Cham Springer 74-83
[25]
Willsey, M., Nandi, C., Wang, Y.R., Flatt, O., Tatlock, Z., Panchekha, P.: EGG: fast and extensible equality saturation. Proc. ACM Program. Lang. 5(POPL) (2021).
Index Terms
- The SemGuS Toolkit
Index terms have been assigned to the content through auto-classification.
Recommendations
A java toolkit for teaching distributed algorithms
ITiCSE '02: Proceedings of the 7th annual conference on Innovation and technology in computer science educationWe present a toolkit for developing and visualizing distributed algorithms in Java. This toolkit consists of a Java class library with a simple programming interface that allows to develop distributed algorithms in a message passing model. The resulting ...
The vine toolkit: a Java framework for developing grid applications
PPAM'07: Proceedings of the 7th international conference on Parallel processing and applied mathematicsThe Vine Toolkit is a modular, extensible Java library that offers developers an easy-to-use, high-level API for Grid-enabling applications. It supports a wide-variety of application environments and Grid middleware platforms.
Comments
Information & Contributors
Information
Published In
![cover image Guide Proceedings](/cms/asset/ed2d95ad-5559-401e-952a-295977fcbfbd/978-3-031-65633-0.cover.jpg)
Jul 2024
596 pages
© The Author(s) 2024.
Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made.The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.
Publisher
Springer-Verlag
Berlin, Heidelberg
Publication History
Published: 26 July 2024
Qualifiers
- Article
Contributors
Other Metrics
Bibliometrics & Citations
Bibliometrics
Article Metrics
- 0Total Citations
- 0Total Downloads
- Downloads (Last 12 months)0
- Downloads (Last 6 weeks)0
Reflects downloads up to 11 Feb 2025