E0 223: Automated Verification


January - April 2010
Instructor: Aditya Kanade
Office Hours: Thursdays, 3.30pm - 4.30pm
(by prior email appointment)
Timings:
Wednesdays: 6pm - 7.30pm
Fridays: 8.30am - 10am
Classroom: 254



Announcements



Introduction


Computer systems in today's world are large, complex, costly, and perhaps safety-critical. Their correctness is as critical as their performance. While testing is an indispensable technique for exploring behaviors of systems, it can rarely cover all behaviors of the system. Many bugs still make it past testing. Automated verification is an alternative to testing wherein a mathematical model of a system is built and analyzed, algorithmically, with respect to logical specifications. Some examples of successful applications of verification to real world systems are IEEE Futurebus+ cache coherence protocol, primary flight control software of Airbus A340, and Windows device drivers.

In this course, we will discuss formal modeling of systems and logical specifications of their properties. Our focus will be on understanding the core algorithmic techniques for formal analysis. Students can tailor the course to their liking by doing a course project in their area of interest: hardware, software, or embedded systems.

Course contents



Reference texts



Slides and other material