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 条
  • [41] Computing predicate abstractions by integrating BDDs and SMT solvers
    Cavada, R.
    Cimatti, A.
    Franzen, A.
    Kalyanasundaram, K.
    Roveri, M.
    Shyamasundar, R. K.
    [J]. FMCAD 2007: FORMAL METHODS IN COMPUTER AIDED DESIGN, PROCEEDINGS, 2007, : 69 - 76
  • [42] SMTCoq: A Plug-In for Integrating SMT Solvers into Coq
    Ekici, Burak
    Mebsout, Alain
    Tinelli, Cesare
    Keller, Chantal
    Katz, Guy
    Reynolds, Andrew
    Barrett, Clark
    [J]. COMPUTER AIDED VERIFICATION (CAV 2017), PT II, 2017, 10427 : 126 - 133
  • [43] Using CP/SMT Solvers for Scheduling and Routing of AGVs
    Riazi, Sarmad
    Lennartson, Bengt
    [J]. IEEE TRANSACTIONS ON AUTOMATION SCIENCE AND ENGINEERING, 2021, 18 (01) : 218 - 229
  • [44] Rocket-fast proof checking for SMT solvers
    Moskal, Michal
    [J]. TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, 2008, 4963 : 486 - 500
  • [45] Improved usability and performance of SMT solvers for debugging specifications
    Cok D.R.
    [J]. International Journal on Software Tools for Technology Transfer, 2010, 12 (6) : 467 - 481
  • [46] SMT-based generation of symbolic automata
    Qin, Xudong
    Bliudze, Simon
    Madelaine, Eric
    Hou, Zechen
    Deng, Yuxin
    Zhang, Min
    [J]. ACTA INFORMATICA, 2020, 57 (3-5) : 627 - 656
  • [47] Parallel SMT Solving and Concurrent Symbolic Execution
    Rakadjiev, Emil
    Shimosawa, Taku
    Mine, Hiroshi
    Oshima, Satoshi
    [J]. 2015 IEEE TRUSTCOM/BIGDATASE/ISPA, VOL 3, 2015, : 17 - 26
  • [48] SMT-based generation of symbolic automata
    Xudong Qin
    Simon Bliudze
    Eric Madelaine
    Zechen Hou
    Yuxin Deng
    Min Zhang
    [J]. Acta Informatica, 2020, 57 : 627 - 656
  • [49] Extending SMT solvers with support for finite domain alldifferent constraint
    Milan Banković
    [J]. Constraints, 2016, 21 : 463 - 494
  • [50] Inter-theory Dependency Analysis for SMT String Solvers
    Minh-Thai Trinh
    Chu, Duc-Hiep
    Jaffar, Joxan
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2020, 4