Introduction to Model-Checking Techniques

June 14-25, Politecnico di Milano

Michal Young [email: michal@cs.uoregon.edu]

Jump to: Home | Schedule | Lectures


Introduction

Duration: 20 hours of lecture over 8 sessions from June 14 through June 25
Class meets Tuesday-Friday of each week, varying between 2 and 3 hours in the afternoon.

See the detailed schedule with readings

Objectives

Understand when and why to use model-checking techniques. Understand where model-checking techniques fit on a spectrum ranging from simple syntactic properties to formal verification, and their relation to dynamic testing.

Understand some differences and trade-offs among model-checking techniques well and how one might choose among them. Understand some fundamental problems facing all verification techniques and how those problems are addressed in different techniques.

Gain some experience in building and checking models. You cannot become an expert model designer in this short time, but exercises and discussions should give you a starting point to build skill through further experimentation on your own.

Background

Here I use the term "model-checking" in the wider, informal sense of a set of techniques for verifying finite-state models of systems (often, but not always, concurrent systems), rather than the narrower sense of temporal logic model checking. We will begin with temporal logic model checking of concurrent systems, but we will also look at related finite-state verification techniques.

The intended audience is Ph.D. students. No special background is necessary beyond what one would normally assume of a Ph.D. student in computer science. I expect the actual background of students will vary widely.

Teaching Approach

Lectures and readings will be in English. (Mi diaspace per non parlo l'Italiano.) The style will be as interactive as possible, and I ask all students to participate in discussion. Especially do not let any doubts about your English prevent you from joining in, even if you need help from a classmate to translate something. I will try to speak clearly and slowly enough, but you should also feel free to ask me for clarification if you have trouble understanding me.

The reading assignments will be fairly heavy considering the short duration of the course. Please do your best to read them before class, so we can have a good discussion. If you get stuck, it is better to skim over some details than to stop before the end of a paper. Bring questions to class; it is almost certain that other students will have the same problems with the papers, so your questions will be valuable for discussion.

Preparing

Please try to read at least the first paper before the first class. If you have time to read more, that could be useful in reducing your work load during the course. You may also find it useful to install some of the software packages that we will use.


Michal Young / michal@cs.uoregon.edu / $Id: index.html,v 1.2 2004/06/17 12:45:42 michal Exp $