Bounded Program Verification Using an SMT Solver: A Case Study

Software Testing, Verification and Validation(2012)

引用 27|浏览0
暂无评分
摘要
We present a novel approach to bounded program verification that exploits recent advances of SMT solvers in modular checking of object-oriented code against its full specification. Bounded program verification techniques exhaustively check the specifications of a bounded program with respect to a bounded domain. To our knowledge, however, those techniques that target data-structure-rich programs reduce the problem to propositional logic directly, and use a SAT solver as the backend engine. Scalability, therefore, becomes a major issue due to bit blasting problems. In this paper, we present a novel approach that translates bounded Java programs and their JML specifications to quantified bit-vector formulas (QBVF) with arrays, and solves them using an SMT solver. QBVF allows logical constraints that are structurally closer to the original program and specification, and can be significantly simplified via high-level reasonings before being flattened in a basic logic. We also present a case study on a large-scale implementation of Dijkstra's shortest path algorithm. The results indicate that our approach provides significant speedups over a SAT-based approach.
更多
查看译文
关键词
novel approach,original program,jml specification,target data-structure-rich program,bounded domain,bounded program verification,sat-based approach,case study,bounded program verification technique,smt solver,bounded program,java program,java,object oriented,object oriented programming,propositional logic,shortest path,shortest path algorithm,indexes,resource management,dijkstra shortest path,formal specification,null value,graph theory,encoding,indexation,sat solver,dijkstra shortest path algorithm,reactive power,resource manager,object oriented code,data structure,computability
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要