2006 · 92 citations · 40 references
ComputingComputer EngineeringComputer ScienceFormal MethodsSystems ModelingTheory Of ComputationDeductive VerificationEquivalence CheckingFinite State Machine ModelingHardware Modeling For Digital SystemsModel CheckingVerificationComplexityFinite-state VerificationFormal VerificationHardware Equivalence CheckingHardware Model CheckingModel-based VerificationProgram Verification
With the success of formal verification techniques like equivalence checking and model checking for hardware designs, there has been growing interest in applying such techniques for formal analysis and automatic verification of software programs. This paper provides a brief tutorial on model checking of C programs. The essential approach is to model the semantics of C programs in the form of finite state systems by using suitable abstractions. The use of abstractions is key, both for modeling programs as finite state systems and for reducing the model sizes in order to manage verification complexity. We provide illustrative details of a verification platform called F-Soft, which provides a range of abstractions for modeling software, and uses customized SAT-based and BDD-based model checking techniques targeted for software.
40
Graph-Based Algorithms for Boolean Function Manipulation
Bryant · IEEE Transactions on Computers · 1986 · 8.9K citations · Full text
E. M. Clarke, Orna Grümberg, D. Long · 1996 · 6.9K citations
Patrick Cousot, Radhia Cousot · 1977 · 6.2K citations
Gerard J. Holzmann · IEEE Transactions on Software Engineering · 1997 · 3.8K citations
Matthew W. Moskewicz, Conor Madigan, Ying Zhao et al. · 2001 · 2.9K citations