Syntax-guided synthesis
read more
Citations
Syntax-guided synthesis
Synthesizing data structure transformations from input-output examples
FlashMeta: a framework for inductive program synthesis
Automatic software repair: a survey
Reactive synthesis from signal temporal logic specifications
References
Induction of Decision Trees
OpenFlow: enabling innovation in campus networks
Programs for Machine Learning
Language identification in the limit
Queries and Concept Learning
Related Papers (5)
Frequently Asked Questions (14)
Q2. What is the key ingredient in the current approaches to synthesis?
Many current approaches to synthesis blend induction and deduction [22]; syntax guidance is usually a key ingredient in these approaches.
Q3. What is the common approach to inductive synthesis?
A common approach to inductive synthesis is to formulate the overall synthesis problem as one of active learning using a query-based model.
Q4. What is the way to solve the inductive synthesis problem?
In program synthesis via active learning, the query oracles are often implemented using deductive procedures such as model checkers or satisfiability solvers.
Q5. What is the use of a constraint solver?
The symbolic CEGIS approach uses a constraint solver both for searching for a candidate expression that works for a set of concrete input examples (concept learning) and verification of validity of an expression for all possible inputs.
Q6. How many expressions were stored in the example?
For instance, in the run of the algorithm on the example, although the algorithm enumerated about 200 expressions, only about 80 expressions were stored.
Q7. What is the current set of benchmarks?
The current set of benchmarks is limited to synthesis of loop-free functions with no optimality criterion; nevertheless, the benchmarks provide an initial demonstration of the expressiveness of the base formalism and of the relative merits of the individual solution strategies presented earlier.
Q8. What is the probability of making e the new candidate?
Given the original candidate e, and a mutation e′ thus obtained, the probability of making e′ the new candidate is given by the Metropolis-Hastings acceptance ratio α(e, e′) = min(1,Score(e′)/Score(e)).
Q9. How many buckets are used to report the solution times of different solutions?
To account for variability and for the constant factors introduced by the prototype nature of the implementations, the authors report only the order of magnitude of the solution times in five different buckets: 0.1 for solution times less than half a second, 1 for solution times between half a second and 15 seconds, 100 for solution times up to two minutes, 300 for solution times of up to 5 minutes, and infinity for runs that time out after 5 minutes.
Q10. How many solvers were affected by the encoding of the problem?
The authors can see in the data that all solvers were affected by the encoding of the problem for at least some benchmark; although in some cases, the pruning strategies used by the solvers were able to ameliorate the impact of the larger search space.
Q11. What does the grammar do to help you with a synthesis problem?
Although adding support for multiple functions does notfundamentally increase the expressiveness of the notation, it does offer significant convenience in encoding real-world synthesis problems.
Q12. What is the popular approach to inductive synthesis today?
Counterexample-guided inductive synthesis (CEGIS) [16], [24] shown in Figure 1 is perhaps the most popular approach to inductive synthesis today.
Q13. How do the authors switch to a search at size n?
Starting with n = 1, with some probability pm (set by default to 0.01), the authors switch at each step to one of the searches at size n±1.
Q14. What is the way to fix an inductive synthesis algorithm?
Given the tuple (T , f , ϕ, L), there are two important choices one must make to fix an inductive synthesis algorithm: (1) search strategy: