2016
DOI: 10.1007/978-3-319-40970-2_19
|View full text |Cite
|
Sign up to set email alerts
|

Synthesis of Domain Specific CNF Encoders for Bit-Vector Solvers

Abstract: SMT solvers are at the heart of a number of software engineering tools. These SMT solvers use a SAT solver as the back-end and convert the high-level constraints given by the user down to low-level boolean formulas that can be efficiently mapped to CNF clauses and fed into a SAT solver. Current SMT solvers are designed to be general purpose solvers that are suited to a wide range of problems. However, SAT solvers are very non-deterministic and hence, it is difficult to optimize a general purpose solver across … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
4
0

Year Published

2016
2016
2023
2023

Publication Types

Select...
4
3

Relationship

2
5

Authors

Journals

citations
Cited by 7 publications
(4 citation statements)
references
References 49 publications
(55 reference statements)
0
4
0
Order By: Relevance
“…[18-20, 22, 35, 39, 46, 50, 51, 59, 62, 69, 70] do not explicitly take resource usage into account during synthesis. Many of them, however, leverage domain knowledge to restrict the search space to only include efficient programs [14,25] or to encode domain-specific performance considerations as part of the functional specification [36,43,44].…”
Section: Related Workmentioning
confidence: 99%
“…[18-20, 22, 35, 39, 46, 50, 51, 59, 62, 69, 70] do not explicitly take resource usage into account during synthesis. Many of them, however, leverage domain knowledge to restrict the search space to only include efficient programs [14,25] or to encode domain-specific performance considerations as part of the functional specification [36,43,44].…”
Section: Related Workmentioning
confidence: 99%
“…Even with a restrictive set of primitives, the search-space grows exponentially with the size of the code-fragments that one aims to discover, making it difficult to scale beyond a dozen or so lines of code. There are some instances of systems that have been able to discover more complex algorithms, either by building them incrementally [54], or by breaking down the problem into smaller pieces-either by providing the synthesizer with the interfaces of sub-components to use [57], or by leveraging some domain-specific structure of the problem to decompose it into a large number of independent sub-problems [34].…”
Section: Program Synthesismentioning
confidence: 99%
“…Program synthesis by sketching, as embodied by the Sketch synthesis tool [30], is a popular technique that has been applied to a wide variety of problems [5,7,13,14,15,16,18,22,29]. A Sketch input (henceforth a sketch) is a program written in a C-like language augmented with holes, unknown constants, and generators, unknown expressions.…”
Section: Introductionmentioning
confidence: 99%