cvc4sy: Smart and Fast Term Enumeration for Syntax-Guided Synthesis

We present cvc4sy, a syntax-guided synthesis (SyGuS) solver based on three bounded term enumeration strategies. The first encodes term enumeration as an extension of the quantifier-free theory of algebraic datatypes. The second is based on a highly optimized brute-force algorithm. The third combines elements of the others. Our implementation of the strategies within the satisfiability modulo theories (SMT) solver cvc4 and a heuristic to choose between them leads to significant improvements over state-of-the-art SyGuS solvers.

[1]  Cesare Tinelli,et al.  Splitting on Demand in SAT Modulo Theories , 2006, LPAR.

[2]  Sanjit A. Seshia,et al.  Combinatorial sketching for finite programs , 2006, ASPLOS XII.

[3]  Daniel Kroening,et al.  Counterexample Guided Inductive Synthesis Modulo Theories , 2018, CAV.

[4]  Viktor Kuncak,et al.  Counterexample-Guided Quantifier Instantiation for Synthesis in SMT , 2015, CAV.

[5]  Cesare Tinelli,et al.  An Abstract Decision Procedure for Satisfiability in the Theory of Recursive Data Types , 2007, PDPAR/PaUL@FLoC.

[6]  Arjun Radhakrishna,et al.  Scaling Enumerative Program Synthesis via Divide and Conquer , 2017, TACAS.

[7]  Cesare Tinelli,et al.  Satisfiability Modulo Theories , 2021, Handbook of Satisfiability.

[8]  Sumit Gulwani,et al.  Programming by examples: applications, algorithms, and ambiguity resolution , 2016, IJCAR.

[9]  Rajeev Alur,et al.  TRANSIT: specifying protocols with concolic snippets , 2013, PLDI.

[10]  Sumit Gulwani Programming by examples: applications, algorithms, and ambiguity resolution , 2017, PPDP.

[11]  Rajeev Alur,et al.  Syntax-guided synthesis , 2013, 2013 Formal Methods in Computer-Aided Design.

[12]  Cesare Tinelli,et al.  Datatypes with Shared Selectors , 2018, IJCAR.

[13]  Cesare Tinelli,et al.  On Solving Quantified Bit-Vectors using Invertibility Conditions , 2018, CAV.

[14]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[15]  Jasmin Christian Blanchette,et al.  A Decision Procedure for (Co)datatypes in SMT Solvers , 2016, Journal of Automated Reasoning.