A Tool for Checking ANSI-C Programs

  • Edmund Clarke
  • Daniel Kroening
  • Flavio Lerda
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2988)


We present a tool for the formal verification of ANSI-C programs using Bounded Model Checking (BMC). The emphasis is on usability: the tool supports almost all ANSI-C language features, including pointer constructs, dynamic memory allocation, recursion, and the float and double data types. From the perspective of the user, the verification is highly automated: the only input required is the BMC bound. The tool is integrated into a graphical user interface. This is essential for presenting long counterexample traces: the tool allows stepping through the trace in the same way a debugger allows stepping through a program.


Register Transfer Level Bound Model Check Behavioral Consistency Error Trace Dynamic Memory Allocation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Biere, A., Cimatti, A., Clarke, E.M., Yhu, Y.: Symbolic model checking without BDDs. In: Tools and Algorithms for Construction and Analysis of Systems, pp. 193–207 (1999)Google Scholar
  2. 2.
    Pixley, C.: Guest Editor’s Introduction: Formal Verification of Commercial Integrated Circuits. IEEE Design & Test of Computers 18(4), 4–5 (2001)CrossRefGoogle Scholar
  3. 3.
    Clarke, E., Kroening, D., Yorav, K.: Behavioral consistency of C and Verilog programs using Bounded Model Checking. Technical Report CMU-CS-03-126, Carnegie Mellon University, School of Computer Science (2003)Google Scholar
  4. 4.
    Kroening, D., Clarke, E., Yorav, K.: Behavioral consistency of C and Verilog programs using bounded model checking. In: Proceedings of DAC 2003, pp. 368–371. ACM Press, New York (2003)Google Scholar
  5. 5.
    Moskewicz, M.W., Madigan, C.F., Zhao, Y., Zhang, L., Malik, S.: Chaff: Engineering an efficient SAT solver. In: Proceedings of the 38th Design Automation Conference (DAC 2001) (June 2001)Google Scholar
  6. 6.
    Groce, A.: Error explanation with distance metrics. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 108–122. Springer, Heidelberg (2004)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Edmund Clarke
    • 1
  • Daniel Kroening
    • 1
  • Flavio Lerda
    • 1
  1. 1.Carnegie Mellon University 

Personalised recommendations