SyGuS Techniques in the Core of an SMT Solver

@inproceedings{Reynolds2017SyGuSTI,
  title={SyGuS Techniques in the Core of an SMT Solver},
  author={Andrew Reynolds and Cesare Tinelli},
  booktitle={SYNT@CAV},
  year={2017}
}
We give an overview of recent techniques for implementing syntax-guided synthesis (SyGuS) algorithms in the core of Satisfiability Modulo Theories (SMT) solvers. We define several classes of synthesis conjectures and corresponding techniques that can be used when dealing with each class of conjecture. 
Rewrites for SMT Solvers using Syntax-Guided Enumeration ( Work in Progress )
TLDR
This paper presents the preliminary experience with this feature in the SMT solver cvc4, showing its impact on its rewriting capabilities using several internal metrics, and its subsequent impact on solving bit-vector and string constraints.
Syntax-Guided Rewrite Rule Enumeration for SMT Solvers
TLDR
A framework that uses enumerative syntax-guided synthesis (SyGuS) to propose rewrite rules that are not implemented in a given SMT solver is proposed and implemented in cvc4, a state-of-the-art SMT and SyGuS solver, and a variation of this approach can be used to test the correctness of a rewriter.
SyGuS-Comp 2017: Results and Analysis
TLDR
The Syntax-Guided Synthesis Competition (SyGuS-Comp) is an effort to facilitate, bring together and accelerate research and development of efficient solvers for SyGuS by providing a platform for evaluating different synthesis techniques on a comprehensive set of benchmarks.
Datatypes with Shared Selectors (Technical Report)
TLDR
Evidence that the use of shared selectors improves state-of-the-art SMT-based approaches for datatype constraints is shown.
Datatypes with Shared Selectors
TLDR
It is shown that the satisfiability problem for the traditional theory of algebraic datatypes can be reduced to problems where selectors are mapped to shared symbols based on a transformation provided in this paper.
SyGuS-Comp 2018: Results and Analysis
TLDR
The Syntax-Guided Synthesis competition is an effort to facilitate, bring together and accelerate research and development of efficient solvers for SyGuS by providing a platform for evaluating different synthesis techniques on a comprehensive set of benchmarks.
Cognification of Program Synthesis - A Systematic Feature-Oriented Analysis and Future Direction
TLDR
A systematic domain analysis is conducted to explore the extent to the automatic generation of code can be enabled via the next generation of cognified MDE frameworks that support recent DL and NLP techniques.
Automating Common Data Science Matrix Transformations
TLDR
This paper presents the first system that is able to automatically synthesise program snippets in R given an input data matrix and an output matrix, partially filled by the user representing the required transformation.
Live Programming By Example
TLDR
The goal is to use live programming to give novice programmers a new way to interact and understand programming, as well as being a useful development tool for more advanced programmers.
AUTOMAT[R]IX: learning simple matrix pipelines
TLDR
AUTOMAT [R] IX is presented, a system that is able to induce R program snippets from a single (and possibly partial) matrix transformation example provided by the user, and a probabilistic model to estimate the probability of each sequence of primitives from their frequency of use and a text hint provided byThe user.
...
...

References

SHOWING 1-10 OF 46 REFERENCES
Refutation-based synthesis in SMT
We introduce the first program synthesis engine implemented inside an SMT solver. We present an approach that extracts solution functions from unsatisfiability proofs of the negated form of synthesis
Counterexample-Guided Model Synthesis
In this paper we present a new approach for solving quantified formulas in Satisfiability Modulo Theories (SMT), with a particular focus on the theory of fixed-size bit-vectors. We combine
Scaling Enumerative Program Synthesis via Divide and Conquer
TLDR
An enumerative approach to solve SyGuS instances is proposed, which performs well on small to medium sized benchmarks, produces succinct expressions, and has the ability to generalize from input-output examples, but whose performance degrades drastically with the size of the smallest solution.
Counterexample-Guided Quantifier Instantiation for Synthesis in SMT
We introduce the first program synthesis engine implemented inside an SMT solver. We present an approach that extracts solution functions from unsatisfiability proofs of the negated form of synthesis
Playing with Quantified Satisfaction
TLDR
The algorithm is based on recent progress in solving Quantified Boolean Formulas, but it generalizes beyond propositional logic to theories, such aslinear arithmetic over integers, linear arithmetic over reals, algebraic data-types and arrays.
Linear Arithmetic Satisfiability via Strategy Improvement
TLDR
A novel decision procedure for LRA that leverages SMT solvers for the ground fragment of LRA, but avoids explicit quantifier elimination and synthesizes a winning strategy for one of the players by iteratively improving candidate strategies for both.
A Decision Procedure for (Co)datatypes in SMT Solvers
TLDR
A decision procedure that combines reasoning about datatypes and codatatypes is presented that decides universal problems and is composable via the Nelson–Oppen method.
Linear Quantifier Elimination as an Abstract Decision Procedure
TLDR
This paper develops abstract quantifier elimination procedures for linear arithmetic over the reals and integers formulated as theory solvers in the context of an abstract DPLL-based search and compares it with several alternatives.
Efficient E-Matching for SMT Solvers
TLDR
An index that works on E-graphs is introduced, called E-matching code treesthat combine features of substitution and code trees, used in saturation based theorem provers and shows substantial performance improvements over existing state-of-the-art SMT solvers.
Automated Discovery of Simulation Between Programs
TLDR
This paper presents SimAbs, the first fully automated SMT-based approach to synthesize an abstraction of one program called target that simulates another program called source, and presents a novel algorithm for dealing with such formulas using an incremental SMT solver.
...
...