Corso di Metdodi per il Ragionamento Automatico
Prof. Silvio Ghilardi
Laurea Magistrale in Informatica - a.a. 2009/2010
AVVISI:
Le slides dell'intervento della prof. M. Heiner sono disponibili a questo
link, nella sottodirectory ->publications->tutorials.
Le slides del corso di dottorato tenuto dal prof. De Moura
(Microsoft Research, Redmond, USA) i cui argomenti hanno ampia intersezione con le tematiche affrontate nel corso di Metodi per il
Ragionamento Automatico, sono disponibili sulla mia pagina web principale (sotto ->teaching).
Caratteristiche del corso |
Programma
del corso | Orari
| Modalità d'esame | Materiali
didattici | Appelli
d'esame
- Caratteristiche del corso
Questo corso, a differenza degli altri corsi di area logica,
è direttamente incentrato su aspetti di sviluppo e di sperimentazione. Per questo motivo, è richiesta
agli studenti una partecipazione attiva, dopo un breve periodo di training. L'intenzione è di discutere ed approntare
assieme formalizzazioni di problemi di verifica, di sottoporle al model checker MCMT e di elaborare soluzioni idonee a livello
di specifica, di impostazioni e di implementazione.
- Programma del corso
Il corso si suddividerà in due tronconi, il primo riguardante gli SMT solvers e
il secondo il model-checking a stati infiniti. Nella parte finale del corso si
descriverà l'integrazione fra le due tematiche, così come si sta concretizzando nel sistema
MCMT (Model Checker Modulo Theories), che è in corso di sviluppo.
Programma della prima parte:
- richiami su concetti base di logica proposizionale e predicativa;
- problemi SAT, procedura DPLL;
- procedure di decisione per teorie significative (teoria dell'uguaglianza con simboli non interpretati,
aritmetica lineare reale e intera, teoria degli array);
- integrazione delle procedure di decisione nell'algoritmo DPLL;
- il progetto SMT-LIB e gli SMT-solvers;
- introduzione al sistema Yices.
Programma della seconda parte:-
il model-checking simbolico nei sistemi a stati finiti;
- risultati generali sui sistemi a stati infiniti "ben strutturati";
- teorema di Kruskal, esempi di wqo;
- applicazioni: protocolli di broadcast, canali con perdita di informazione, ecc;
- sistemi basati su array: format delle formule per le transizioni, per gli stati iniziali e finali;
- procedure di decisione negli algoritmi di 'backward reachability'.
- Orari delle lezioni
- Mercoledì, auletta 5, ore 16.30-18.30
- Giovedì, auletta 5, ore 16.30-18.30
L'orario di ricevimento del prof. Ghilardi è il
venerdì mattina alle ore 11.30.
- Modalità d'esame
L'esame sarà costitutito da un colloquio e da un progetto. È
possibile sostituire (in tutto o in parte) gli argomenti del corso
utilizzando materiale didattico che verrà fornito dal docente su
richiesta.
- Materiali didattici
Il corso viene tenuto per la prima volta; date le sue caratteristiche, il materiale didattico
si baserà su appunti tratti dalle lezioni e dalle discussioni in aula. Indichiamo qui oltre però
anche del materiale più
strutturato che potrebbe risultare utile.
- Per la parte relativa alle procedure di decisione, indichiamo il testo di A. Bradley - Z. Manna "The Calculus of Computation
(Decision Procedures with Applications to Verification)", Springer 2007.
- Per informazioni generali sul model checking a stati infiniti, indichiamo due articoli interessanti scaricabili
qui e
qui.
La pagina web del sistema MCMT si trova qui.
Da tale pagina si possono scaricare: (i) gli eseguibili per Linux e Mac (esiste anche una versione del sistema per Windows che
verrà fornita direttamente dal docente su richiesta); (ii) il manuale utente e una serie
di files di esempi già pronti; (iii) articoli vari relativi sia agli aspetti teorici che a quelli implementativi.
- Appelli d'esame
L'esame è su appuntamento e può essere sostenuto (previo
accordo con il docente) durante un qualsiasi orario di ricevimento. Per la
registrazione formale, occorre iscriversi al SIFA al più una settimana prima,
in corrispondenza delle date degli appelli del corso di Logica Matematica della Laurea Magistrale.
Ultimo aggiornamento: 1/4/2010