Model Checking & Games (MCG)
PhDCourse@DISI
Location: DISI University of Genova
Date: July 19-23, 2010
Hours:
20
Teachers:
Giorgio Delzanno (Assoc.
Prof., DISI, Univ. of Genova) giorgio@disi.unige.it
Arnaud Sangnier (PostDoc, DISI, Univ. of Genova) sangnier@disi.unige.it
Contents:
Per
model checking si
intende una famiglia di metodi formali per la verifica automatica di
macchine a stati finiti (finite-state machine), un modello che puo'
essere utilizzato pre rappresentare il funzionamento di design
hardware, protocolli di comunicazione e sistemi concorrenti, o
astrazioni di programmi. Il problema del model checking e' definito
partendo da nozioni di logica matematica. Un sistema viene
rappresentato come un modello di Kripke (un grafo) mentre le sue
proprieta' vengono formalizzate tramite formule in logiche che
esprimono proprieta' della computazione (ad es. in tutte le
esecuzioni non raggiungo mai uno stato di errore). Formalmente, dato
un modello ed una formula, il problema del model checking consiste
nel provare automaticamente che la formula e' soddisfacibile nel
modello. Nel corso presenteremo diversi formalismi che possono essere
usati per descrivere proprieta' qualitative e quantitative di
macchine a stati (o loro estensioni). Studieremo algoritmi e
strutture dati per risolvere in maniera efficiente il problema del
model checking. Inoltre vedremo come estendere il metodo al caso di
macchine con spazio degli stati infinito ed in particolare a sistemi
parametrici (ad esempio, sistemi costituiti da un numero finito ma
arbitrario di componenti ripetute).
Infine vedremo come la game theory (teoria dei giochi), ed in particolare 2-players game, puo' essere utilizzata per rappresentare modelli di sistemi che interagiscono con un ambiente. Per questo tipo di modelli studieremo algoritmi per decidere l'esistenza di strategie vincenti e la loro applicazione per model checking di sistemi aperti.
Model
checking is a formal method for the automatic verification of
finite-state models of a computer system (e.g. hardware design,
abstractions of communication protocols and software code). The
principle of model-checking is the following: the system is
represented by a mathematical model and the property to verify is
given by a logic formula. The aim of model-checking is to check
whether the model satisfies the formula. In the first part of the
course we present different logical formalisms (Modal Logic, Linear
Temporal Locic, Branching Temporal Logic,etc.) that can be used to
formally describe the temporal behavior of a computer system modelled
as a finite state automaton (or Kripke structure). We will study the
expressivity of these different logical formalisms and explain how
the problem of model-checking can be solved efficiently. We then
discuss how to extend the method to models with infinite state space
(infinite-state systems). An important class of these models consists
of parameterized families of finite-state automata (used to represent
families of hardware design or concurrent processes). In general, the
model-checking problem is undecidable for infinite-state systems. In
the seminars we discuss subclasses of infinite-state systems and of
verification properties that have decidability properties.
Finally we present another mathematical formalism which is more
suited for the verification of open systems whose behavior depend on
the action of an environment. These systems can be seen as 2-player
games where the first player models the system and the second player
represents the environment. The aim is then to see if there exists a
way (or strategy) for player 1 to achieve an objective no matter what
player 2 choose to do. In this context we discuss
algorithms to analyze 2-player games. Furthermore, we show that there
exist strong connections between model-checking of temporal logics
over finite state automata and the verification of 2-player games.
Introduzione
ai modelli di Kripke, automi finiti ed infiniti
Logica modale e temporale (branching e lineare)
mu-calculus
Algoritmi efficienti per model checking
Estensioni al caso di sistemi infinite-state
Giochi a 2 ruoli
Algoritmi per risolvere giochi
Relazione tra giochi e model checking
Brief
introduction to Kripke structures, finite automata and infinite
automata
Modal, linear and branching temporal Logic
mu-calculus
Efficient algorithms for model-checking
Toward infinite state systems
Introduction to 2-player finite state games
Algorithms to solve games
Connection between games and model-checking
L'esame
consiste in una presentazione (seminario) di 20 minuti su argomenti e
materiale proposto dai docenti.
The
exam will take the form of a 20 minutes oral presentation (in
english).
Bibliography and material for students:
Automatic
verification of finite state concurrent systems using temporal
logic,
E.M.
Clarke,
E.A. Emerson, and A.P. Sistla,
ACM
Trans.
on Programming Languages and Systems, 8(2), pp. 244–263,1986.
Model Checking, Edmund M. Clarke, Jr., Orna Grumberg and Doron A. Peled,MIT Press,1999.