Model checking LTL properties over ANSI-C programs with bounded traces

被引:0
|
作者
Jeremy Morse
Lucas Cordeiro
Denis Nicole
Bernd Fischer
机构
[1] University of Southampton,Electronics and Computer Science
[2] Federal University of Amazonas,Electronic and Information Research Center
[3] Stellenbosch University,Division of Computer Science
来源
关键词
Model checking; Linear temporal logic; Software verification;
D O I
暂无
中图分类号
学科分类号
摘要
Context-bounded model checking has been used successfully to verify safety properties in multi-threaded systems automatically, even if they are implemented in low-level programming languages such as C. In this paper, we describe and experiment with an approach to extend context-bounded software model checking to safety and liveness properties expressed in linear-time temporal logic (LTL). Our approach checks the actual C program, rather than an extracted abstract model. It converts the LTL formulas into Büchi automata for the corresponding never claims and then further into C monitor threads that are interleaved with the execution of the program under analysis. This combined system is then checked using the ESBMC model checker. We use an extended, four-valued LTL semantics to handle the finite traces that bounded model checking explores; we thus check the combined system several times with different acceptance criteria to derive the correct truth value. In order to mitigate the state space explosion, we use a dedicated scheduler that selects the monitor thread only after updates to global variables occurring in the LTL formula. We demonstrate our approach on the analysis of the sequential firmware of a medical device and a small multi-threaded control application.
引用
收藏
页码:65 / 81
页数:16
相关论文
共 50 条
  • [1] Model checking LTL properties over ANSI-C programs with bounded traces
    Morse, Jeremy
    Cordeiro, Lucas
    Nicole, Denis
    Fischer, Bernd
    [J]. SOFTWARE AND SYSTEMS MODELING, 2015, 14 (01): : 65 - 81
  • [2] Context-Bounded Model Checking of LTL Properties for ANSI-C Software
    Morse, Jeremy
    Cordeiro, Lucas
    Nicole, Denis
    Fischer, Bernd
    [J]. SOFTWARE ENGINEERING AND FORMAL METHODS, 2011, 7041 : 302 - +
  • [3] A tool for checking ANSI-C programs
    Clarke, E
    Kroening, D
    Lerda, F
    [J]. TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PROCEEDINGS, 2004, 2988 : 168 - 176
  • [4] SMT-Based Bounded Model Checking for Embedded ANSI-C Software
    Cordeiro, Lucas
    Fischer, Bernd
    Marques-Silva, Joao
    [J]. 2009 IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, PROCEEDINGS, 2009, : 137 - 148
  • [5] SMT-Based Bounded Model Checking for Embedded ANSI-C Software
    Cordeiro, Lucas
    Fischer, Bernd
    Marques-Silva, Joao
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2012, 38 (04) : 957 - 974
  • [6] Loopfrog: A Static Analyzer for ANSI-C Programs
    Kroening, Daniel
    Sharygina, Natasha
    Tonetta, Stefano
    Tsitovich, Aliaksei
    Wintersteiger, Christoph M.
    [J]. 2009 IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, PROCEEDINGS, 2009, : 668 - 670
  • [7] Predicate abstraction of ANSI-C programs using SAT
    Clarke, E
    Kroening, D
    Sharygina, N
    Yorav, K
    [J]. FORMAL METHODS IN SYSTEM DESIGN, 2004, 25 (2-3) : 105 - 127
  • [8] Simple bounded LTL model checking
    Latvala, T
    Biere, A
    Heljanko, K
    Junttila, T
    [J]. FORMAL METHODS IN COMPUTER-AIDED DESIGN, PROCEEDINGS, 2004, 3312 : 186 - 200
  • [9] Hardware verification using ANSI-C programs as a reference
    Clarke, E
    Kroening, D
    [J]. ASP-DAC 2003: PROCEEDINGS OF THE ASIA AND SOUTH PACIFIC DESIGN AUTOMATION CONFERENCE, 2003, : 308 - 311
  • [10] Simple bounded LTL model checking
    Latvala, T
    Biere, AN
    Heljanko, K
    Junttila, T
    [J]. FORMAL METHODS IN COMPUTER-AIDED DESIGN, 2004, 3312 : 186 - 200