• DocumentCode
    1256010
  • Title

    SMT-Based Bounded Model Checking for Embedded ANSI-C Software

  • Author

    Cordeiro, Lucas ; Fischer, Bernd ; Marques-Silva, Joao

  • Author_Institution
    Inf. Res. Center, Fed. Univ. of Amazonas, Manaus, Brazil
  • Volume
    38
  • Issue
    4
  • fYear
    2012
  • Firstpage
    957
  • Lastpage
    974
  • Abstract
    Propositional bounded model checking has been applied successfully to verify embedded software, but remains limited by increasing propositional formula sizes and the loss of high-level information during the translation preventing potential optimizations to reduce the state space to be explored. These limitations can be overcome by encoding high-level information in theories richer than propositional logic and using SMT solvers for the generated verification conditions. Here, we propose the application of different background theories and SMT solvers to the verification of embedded software written in ANSI-C in order to improve scalability and precision in a completely automatic way. We have modified and extended the encodings from previous SMT-based bounded model checkers to provide more accurate support for variables of finite bit width, bit-vector operations, arrays, structures, unions, and pointers. We have integrated the CVC3, Boolector, and Z3 solvers with the CBMC front-end and evaluated them using both standard software model checking benchmarks and typical embedded software applications from telecommunications, control systems, and medical devices. The experiments show that our ESBMC model checker can analyze larger problems than existing tools and substantially reduce the verification time.
  • Keywords
    embedded systems; formal verification; SMT based bounded model checking; SMT solvers; embedded ANSI-C software; embedded software verification; model checkers; software model checking benchmarks; Electronic mail; Embedded software; Encoding; Optimization; Safety; Space exploration; Software engineering; formal methods; model checking; verification;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2011.59
  • Filename
    5928354