Svoboda | Graniru | BBC Russia | Golosameriki | Facebook
skip to main content
article

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

Published: 01 July 2012 Publication History

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.

Cited By

View all
  • (2024)FuSeBMC v4: Improving Code Coverage with Smart Seeds via BMC, Fuzzing and Static AnalysisFormal Aspects of Computing10.1145/366533736:2(1-25)Online publication date: 20-May-2024
  • (2023)A Strategy to Unwind Loops in Incremental Bounded Model Checking for SoftwareProceedings of the 2023 3rd Guangdong-Hong Kong-Macao Greater Bay Area Artificial Intelligence and Big Data Forum10.1145/3660395.3660460(382-387)Online publication date: 22-Sep-2023
  • (2023)The FormAI Dataset: Generative AI in Software Security through the Lens of Formal VerificationProceedings of the 19th International Conference on Predictive Models and Data Analytics in Software Engineering10.1145/3617555.3617874(33-43)Online publication date: 8-Dec-2023
  • Show More Cited By

Index Terms

  1. SMT-Based Bounded Model Checking for Embedded ANSI-C Software
      Index terms have been assigned to the content through auto-classification.

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      IEEE Transactions on Software Engineering  Volume 38, Issue 4
      July 2012
      255 pages

      Publisher

      IEEE Press

      Publication History

      Published: 01 July 2012

      Author Tags

      1. Software engineering
      2. formal methods
      3. model checking
      4. verification

      Qualifiers

      • Article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)0
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 27 Aug 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)FuSeBMC v4: Improving Code Coverage with Smart Seeds via BMC, Fuzzing and Static AnalysisFormal Aspects of Computing10.1145/366533736:2(1-25)Online publication date: 20-May-2024
      • (2023)A Strategy to Unwind Loops in Incremental Bounded Model Checking for SoftwareProceedings of the 2023 3rd Guangdong-Hong Kong-Macao Greater Bay Area Artificial Intelligence and Big Data Forum10.1145/3660395.3660460(382-387)Online publication date: 22-Sep-2023
      • (2023)The FormAI Dataset: Generative AI in Software Security through the Lens of Formal VerificationProceedings of the 19th International Conference on Predictive Models and Data Analytics in Software Engineering10.1145/3617555.3617874(33-43)Online publication date: 8-Dec-2023
      • (2023)Reverse Engineering of Obfuscated Lua Bytecode via Interpreter Semantics TestingIEEE Transactions on Information Forensics and Security10.1109/TIFS.2023.328925418(3891-3905)Online publication date: 1-Jan-2023
      • (2023)Sibyl: Improving Software Engineering Tools with SMT SelectionProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00184(2185-2197)Online publication date: 14-May-2023
      • (2023)ESBMC v7.3: Model Checking C++ Programs Using Clang ASTFormal Methods: Foundations and Applications10.1007/978-3-031-49342-3_9(141-152)Online publication date: 4-Dec-2023
      • (2022)CBMC-SSM: Bounded Model Checking of C Programs with Symbolic Shadow MemoryProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering10.1145/3551349.3559523(1-5)Online publication date: 10-Oct-2022
      • (2022)ESBMC-Jimple: verifying Kotlin programs via jimple intermediate representationProceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3533767.3543294(777-780)Online publication date: 18-Jul-2022
      • (2022)ESBMC-CHERI: towards verification of C programs for CHERI platforms with ESBMCProceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3533767.3543289(773-776)Online publication date: 18-Jul-2022
      • (2022)NNSMT: Deep Neural Networks for SMT Solvers FuzzingProceedings of the 8th International Conference on Computing and Artificial Intelligence10.1145/3532213.3532221(46-53)Online publication date: 18-Mar-2022
      • Show More Cited By

      View Options

      View options

      Get Access

      Login options

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media