People take hardware and software reliability for granted. We assume that the computer systems in workstations, planes, hospital equipment, and missile navigation systems were carefully designed and tested before reaching the market. In reality, instances of each kind of system have exhibited serious errors, even after extensive testing and simulation. The consequences have been severe, both financially and life-critically.
Computer-aided verification, a collection of techniques for formally analyzing system behavior, yields increased reliability and robustness. Industry is increasingly interested in these techniques, but few designers have been exposed to them, much less trained in their use. This seminar will explore several aspects of applying computer-aided verification in practice.
We will study techniques for modeling systems and specifying their behavior using common verification tools. In particular, we will look at protocol verification, circuit verification, and software specification. In the process, we will address such questions as:
This course meets on Wednesdays from 2-4pm in CE 1075.