Verifying Full Regular Temporal Properties of Programs via Dynamic Program Execution

被引:11
作者
Wang, Meng [1 ]
Tian, Cong [1 ]
Zhang, Nan [1 ]
Duan, Zhenhua [1 ]
机构
[1] Xidian Univ, ICTT & ISN Lab, Xian 710071, Shaanxi, Peoples R China
基金
中国国家自然科学基金;
关键词
MSVL; program execution; program verification; software model checking; temporal property; MODEL CHECKING APPROACH; DECISION PROCEDURE; VERIFICATION; LOGIC; SYSTEMS;
D O I
10.1109/TR.2018.2876333
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Verification of programs at code level has attracted more and more attentions since the cost is high to extract models from source code. Most of approaches available for code level verification are carried out by inserting assertions into programs and then checking whether the assertions are violated. In this way, only safety properties can be verified, however, other temporal properties of programs such as liveness are hard to be verified. To tackle this problem, a novel runtime verification approach, which can verify full regular temporal properties of a program, is proposed in this paper. With this approach, a program to be verified is written in a modeling, simulation and verification language (MSVL) as a program M and a desired property is specified by a propositional projection temporal logic formula P. The negation of the desired property is then translated to anMSVL program M'. Thus, whether M violates P can be checked by evaluating whether there exists an acceptable execution of the new MSVL program "M and M'." This problem can efficiently be solved with the MSVL compiler where verification cases are generated via dynamic symbolic execution. Further, we adopt parallel mechanism to handle various execution paths of a program for improving the efficiency. The proposed approach has been implemented in a tool called MSV. Experiments show that the performance of MSV outperforms existing tools such as T2, RiTHM, and LTLAutomizer in verifying temporal properties of real-world programs.
引用
收藏
页码:1101 / 1116
页数:16
相关论文
共 73 条
  • [1] [Anonymous], 1996, THESIS
  • [2] [Anonymous], 2002, MSRTR200121
  • [3] Bounded model checking of software using SMT solvers instead of SAT solvers
    Armando A.
    Mantovani J.
    Platania L.
    [J]. International Journal on Software Tools for Technology Transfer, 2009, 11 (01) : 69 - 83
  • [4] Ball T., 2001, Model Checking Software. 8th International SPIN Workshop. Proceedings (Lecture Notes in Computer Science Vol.2057), P103
  • [5] Boolean and Cartesian abstraction for model checking C programs
    Thomas Ball
    Andreas Podelski
    Sriram K. Rajamani
    [J]. International Journal on Software Tools for Technology Transfer, 2003, 5 (1) : 49 - 58
  • [6] Automatic predicate abstraction of C programs
    Ball, T
    Millstein, T
    Majumdar, R
    Rajamani, SK
    [J]. ACM SIGPLAN NOTICES, 2001, 36 (05) : 203 - 213
  • [7] Barnat Jiri, 2013, Computer Aided Verification. 25th International Conference, CAV 2013. Proceedings. LNCS 8044, P863, DOI 10.1007/978-3-642-39799-8_60
  • [8] Beyer Dirk, 2011, Computer Aided Verification. Proceedings 23rd International Conference, CAV 2011, P184, DOI 10.1007/978-3-642-22110-1_16
  • [9] The software model checker BlastApplications to software engineering
    Dirk Beyer
    Thomas A. Henzinger
    Ranjit Jhala
    Rupak Majumdar
    [J]. International Journal on Software Tools for Technology Transfer, 2007, 9 (5-6) : 505 - 525
  • [10] Beyer Dirk, 2009, Proceedings of the 2009 9th International Conference Formal Methods in Computer-Aided Design (FMCAD), P25, DOI 10.1109/FMCAD.2009.5351147