Modular verification of software components in C

被引:108
作者
Chaki, S [1 ]
Clarke, E [1 ]
Groce, A [1 ]
Jha, S [1 ]
Veith, H [1 ]
机构
[1] Carnegie Mellon Univ, Pittsburgh, PA 15213 USA
来源
25TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS | 2003年
关键词
D O I
10.1109/ICSE.2003.1201217
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present a new methodology for automatic verification of C programs against finite state machine specifications. Our approach is compositional, naturally enabling us to decompose the verification of large software systems into subproblems of manageable complexity. The decomposition reflects the modularity in the software design. We use weak simulation as the notion of conformance between the program and its specification. Following the abstract-verify-refine paradigm, our tool MAGIC first extracts a finite model from C source code using predicate abstraction and theorem proving. Subsequently, simulation is checked via a reduction to Boolean satisfiability. MAGIC is able to interface with several publicly available theorem provers and SAT solvers. We report experimental results with procedures from the Linux kernel and the OpenSSL toolkit.
引用
收藏
页码:385 / 395
页数:11
相关论文
共 31 条
  • [1] ONLINE ALGORITHMS FOR POLYNOMIALLY SOLVABLE SATISFIABILITY PROBLEMS
    AUSIELLO, G
    ITALIANO, GF
    [J]. JOURNAL OF LOGIC PROGRAMMING, 1991, 10 (01): : 69 - 90
  • [2] Automatic predicate abstraction of C programs
    Ball, T
    Millstein, T
    Majumdar, R
    Rajamani, SK
    [J]. ACM SIGPLAN NOTICES, 2001, 36 (05) : 203 - 213
  • [3] Ball Thomas, 2001, LECT NOTES COMPUTER, V2057
  • [4] Ball Thomas., 2001, Tools and Algorithms for the Construction and Analysis of Systems, Lecture Notes in Computer Science, V2031, P268, DOI [10.1007/3-540-45319-9_19, DOI 10.1007/3-540-45319-9_19]
  • [5] Biere A, 1999, LECT NOTES COMPUT SC, V1579, P193
  • [6] Clarke E, 2001, Model checking
  • [7] MODEL CHECKING AND ABSTRACTION
    CLARKE, EM
    GRUMBERG, O
    LONG, DE
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1994, 16 (05): : 1512 - 1542
  • [8] AUTOMATIC VERIFICATION OF FINITE-STATE CONCURRENT SYSTEMS USING TEMPORAL LOGIC SPECIFICATIONS
    CLARKE, EM
    EMERSON, EA
    SISTLA, AP
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1986, 8 (02): : 244 - 263
  • [9] CLARKE EM, 2000, COMPUTER AIDED VERIF, P157
  • [10] Das S., 1999, Computer Aided Verification. 11th International Conference, CAV'99. Proceedings (Lecture Notes in Computer Science Vol.1633), P160