CS 838: Topics in Model Checking (Spring 2011)
7385 Computer Sciences Building
Office hours for Somesh Jha: TBD
Time and place
Monday and Friday, 2:30-3:45, CS 1289
This course covers a broad range of topics in model checking.
Model checking is a technique for verifying finite state concurrent systems such as sequential circuit designs and communication protocols. It has a number of advantages over traditional approaches that are based on simulation, testing, and deductive reasoning. In particular, model checking is automatic and usually quite fast. Also, if the design contains an error, model checking will produce a counterexample that can be used to pinpoint the source of the error. Model checking been used successfully in practice to verify real industrial designs, and companies are beginning to market commercial model checkers. The main challenge in model checking is dealing with the state space explosion problem. This problem occurs in systems with many components that can interact with each other or systems with data structures that can assume many different values. In such cases the number of global states can be enormous. Researchers have made considerable progress on this problem over the last ten years.
Course notes and papers distributed by instructor and the following required text:
Edmund M. Clarke Jr., Orna Grumberg, and Doron A. Peled, Model Checking, The MIT Press (January 7, 1999).
Mathematical maturity and programming experience. Undergraduate students need permission of the instructor.
Participation, assignments, and projects. See course document for details.