2017
DOI: 10.4204/eptcs.240.2
|View full text |Cite
|
Sign up to set email alerts
|

Predicting SMT Solver Performance for Software Verification

Abstract: The Why3 IDE and verification system facilitates the use of a wide range of Satisfiability Modulo Theories (SMT) solvers through a driver-based architecture. We present Where4: a portfolio-based approach to discharge Why3 proof obligations. We use data analysis and machine learning techniques on static metrics derived from program source code. Our approach benefits software engineers by providing a single utility to delegate proof obligations to the solvers most likely to return a useful result. It does this i… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
7
0

Year Published

2018
2018
2023
2023

Publication Types

Select...
6
1

Relationship

0
7

Authors

Journals

citations
Cited by 12 publications
(7 citation statements)
references
References 32 publications
0
7
0
Order By: Relevance
“…In the setting of SMT solver applications, symbolic execution tools have used algorithm selection strategies [64] and portfolio strategies [33] for the specific classes of instances within the context of the bit-vector theory. This would be an ideal use case of MachSMT, since we provide a more complete solution.…”
Section: Algorithm Selection For Logic Solvers and Their Applicationsmentioning
confidence: 99%
“…In the setting of SMT solver applications, symbolic execution tools have used algorithm selection strategies [64] and portfolio strategies [33] for the specific classes of instances within the context of the bit-vector theory. This would be an ideal use case of MachSMT, since we provide a more complete solution.…”
Section: Algorithm Selection For Logic Solvers and Their Applicationsmentioning
confidence: 99%
“…We achieve similar performance to MachSMT without pre-training by decoupling solver choice from time allocation and allowing for mistakes by selecting a sequence of solvers to run, instead of a single solver. Where4 [18] is a portfolio-based SMT solver that uses regression models to select which solver to run. It extracts features from WhyML programs rather than SMT queries and does not allocate time between solvers.…”
Section: Related Workmentioning
confidence: 99%
“…SATzilla [34] considers SAT solver selection as an algorithm selection problem and adopts existing portfolio-solving techniques. Healy et al [19] apply similar techniques to the SMT solving domain. Our work focuses on how to apply portfolio-solving in the symbolic execution domain, and proposes domain-specific optimizations to accelerate the extraction of path constraint features.…”
Section: Background and Related Workmentioning
confidence: 99%
“…For example, KLEE [10] and JDART [25] embed the pySMT framework [15] and the JConstraints interface, respectively, as a unified interface for solvers. In addition, because solver selection is a type of algorithm selection problem, several portfolio-solving techniques have been applied to select solvers [19], [34]. However, because the time spent on constraint processing and prediction was not included in their evaluation, it remains unclear how effective these solutions are when applied to improve the overall performance of symbolic execution.…”
Section: Introductionmentioning
confidence: 99%