Symbolic Optimization with SMT Solvers

被引:72
|
作者
Li, Yi [1 ]
Albarghouthi, Aws [1 ]
Kincaid, Zachary [1 ]
Gurfinkel, Arie
Chechik, Marsha [1 ]
机构
[1] Univ Toronto, Toronto, ON M5S 1A1, Canada
关键词
optimization; satisfiability modulo theories; invariant generation; symbolic abstraction; program analysis; SATISFIABILITY MODULO; ABSTRACTIONS;
D O I
10.1145/2535838.2535857
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The rise in efficiency of Satisfiability Modulo Theories (SMT) solvers has created numerous uses for them in software verification, program synthesis, functional programming, refinement types, etc. In all of these applications, SMT solvers are used for generating satisfying assignments (e.g., a witness for a bug) or proving unsatisfiability/ validity (e.g., proving that a subtyping relation holds). We are often interested in finding not just an arbitrary satisfying assignment, but one that optimizes (minimizes/maximizes) certain criteria. For example, we might be interested in detecting program executions that maximize energy usage (performance bugs), or synthesizing short programs that do not make expensive API calls. Unfortunately, none of the available SMT solvers offer such optimization capabilities. In this paper, we present SYMBA, an efficient SMT-based optimization algorithm for objective functions in the theory of linear real arithmetic (LRA). Given a formula phi and an objective function t, SYMBA finds a satisfying assignment of phi that maximizes the value of t. SYMBA utilizes efficient SMT solvers as black boxes. As a result, it is easy to implement and it directly benefits from future advances in SMT solvers. Moreover, SYMBA can optimize a set of objective functions, reusing information between them to speed up the analysis. We have implemented SYMBA and evaluated it on a large number of optimization benchmarks drawn from program analysis tasks. Our results indicate the power and efficiency of SYMBA in comparison with competing approaches, and highlight the importance of its multi-objective-function feature.
引用
收藏
页码:607 / 618
页数:12
相关论文
共 50 条
  • [1] Induction for SMT Solvers
    Reynolds, Andrew
    Kuncak, Viktor
    [J]. VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION (VMCAI 2015), 2015, 8931 : 80 - 98
  • [2] Integrating SMT solvers in Rodin
    Deharbe, David
    Fontaine, Pascal
    Guyot, Yoann
    Voisin, Laurent
    [J]. SCIENCE OF COMPUTER PROGRAMMING, 2014, 94 : 130 - 143
  • [3] SMT Solvers: Foundations and Applications
    Bjorner, Nikolaj
    [J]. DEPENDABLE SOFTWARE SYSTEMS ENGINEERING, 2016, 45 : 24 - 32
  • [4] Extending Sledgehammer with SMT Solvers
    Blanchette, Jasmin Christian
    Boehme, Sascha
    Paulson, Lawrence C.
    [J]. AUTOMATED DEDUCTION - CADA-23, 2011, 6803 : 116 - +
  • [5] The Proof Complexity of SMT Solvers
    Robere, Robert
    Kolokolova, Antonina
    Ganesh, Vijay
    [J]. COMPUTER AIDED VERIFICATION, CAV 2018, PT II, 2018, 10982 : 275 - 293
  • [6] Learning SMT(LRA) Constraints using SMT Solvers
    Kolb, Samuel
    Teso, Stefano
    Passerini, Andrea
    De Raedt, Luc
    [J]. PROCEEDINGS OF THE TWENTY-SEVENTH INTERNATIONAL JOINT CONFERENCE ON ARTIFICIAL INTELLIGENCE, 2018, : 2333 - 2340
  • [7] SMT Solvers for Integer Overflows
    Xiao, Qixue
    Chen, Yu
    Huang, Hui
    Qi, Lanlan
    [J]. 2013 THIRD INTERNATIONAL CONFERENCE ON INSTRUMENTATION & MEASUREMENT, COMPUTER, COMMUNICATION AND CONTROL (IMCCC), 2013, : 106 - 113
  • [8] Extending Sledgehammer with SMT Solvers
    Blanchette, Jasmin Christian
    Boehme, Sascha
    Paulson, Lawrence C.
    [J]. JOURNAL OF AUTOMATED REASONING, 2013, 51 (01) : 109 - 128
  • [9] Extending Sledgehammer with SMT Solvers
    Jasmin Christian Blanchette
    Sascha Böhme
    Lawrence C. Paulson
    [J]. Journal of Automated Reasoning, 2013, 51 : 109 - 128
  • [10] Parallelizing simplex within SMT solvers
    Milan Banković
    [J]. Artificial Intelligence Review, 2017, 48 : 83 - 112