Abstract: Traditional software model-checkers build over-approximating abstractions of the programs they analyze and typically bias their analysis towards proving that a (safety) property of interest holds (verification). On the other hand, since model-checkers are widely known for their bug-finding abilities, they are often used for refutation. In this case, the above approach seems unreasonable: why introduce spurious behavior and make it more difficult to find a real bug? For such circumstances, one would just want to prove that the property is false (refutation), without necessarily building a witness for that.
In this talk, I will present YASM -- a symbolic software model-checker based on exact abstraction that combines over- and under-approximating abstractions in a single model. YASM can prove and disprove properties with equal effectiveness. Our experiments show that performance of the tool is comparable with standard over-approximating model-checkers. The implementation makes use of a number of ideas from the existing approaches to Counterexample Guided Abstraction Refinement (CEGAR), which we have generalized for our purposes. More importantly, minor modifications of the CEGAR framework enable an array of useful analyzes, such as analyzing programs with non-deterministic control flow, reasoning about arbitrary CTL properties, reusing previously computed abstractions, and many others.
![]() Appointments: dcm@cs.cmu.edu |
Maintainer | [ Home > Seminar ] |
Last modified: Wed Jan 24 11:09:10 EDT 2007 |