Formal Methods in Software Development
Master Degree in Computer Science
A. A. 2019/2020
lecturers: Ivano Salvo and Igor Melatti
melatti@diNOSPAM.uniroma1.it, salvo@di.uniroma1.it
Announcement
For scheduled online exams, it is possible for students which do not have all the required hardware (PC, smartphone, Internet, etc) to ask for a physical workstation to be used in a Sapienza laboratory. To this aim, students must send a motivated email to the segreteria didattica (segr.didattica@diNOSPAM.uniroma1.it).
Index
Exams Program TextBooks Lessons Timetable Software
Results
These are the results for the exam of the 12/2/2020. Votes are at most 16; they will be summed up with the results of either the project or the paper discussion. Who is not present in this list, is not sufficient.
Results
These are the results for the exam of the 22/1/2020. Votes are at most 16; they will be summed up with the results of either the project or the paper discussion. Who is not present in this list, is not sufficient.
Exams
It is mandatory to pass a written exam. Once passed such exam, students have to either write a course project or describe a recent scientific paper on the course arguments.
Session |
Date |
Time |
Where |
Confirmed |
Notes |
Exam Number on Infostud |
Infostud registration expires on |
1 |
22/01/2020 |
10:00 - 13:00 |
Aula 2 (RM018) in Via del Castro Laurenziano 7a |
Yes |
|
693149 |
expired |
2 |
12/02/2020 |
10:30 - 13:00 |
Colossus Lab |
Yes |
|
693150 |
expired |
straord1 |
30/04/2020 |
10:00 - 12:00 |
Online |
Yes |
|
711799 |
expired |
3 |
19/06/2020 |
15:00 - 18:00 |
Online |
Yes |
|
714631 |
expired |
4 |
14/07/2020 |
09:00 - 12:00 |
Online |
Yes |
|
717213 |
expired |
5 |
09/09/2020 |
09:00 - 12:00 |
Online |
Yes |
|
719854 |
expired |
straord2 |
29/11/2020 |
09:00 - 10:00 |
Online |
Yes |
|
734734 |
expired |
It is mandatory to sign up in Infostud
by selecting, for the desired session, the exam number shown in the last-but-one column above.
For online exams, instructions will be sent by email to registered-on-Infostud students only
Projects
To model the
Dolev Strong protocol in one of the model checkers seen during lessons
To modify Murphi or SPIN so as to use Bloom filters instead of hash compaction
Implement statistical model checking in Murphi/SPIN/NuSMV
Given a game map (a grid with obstacles and a goal), create a
NuSMV model which generates a controller for that game. Follow the definition of "controller" given
here (paragraph 4.1)
Program of the Course
Modelling of Discrete Systems: Kripke structures.
Temporal Logics: CTL, LTL, CTL*
Formal verification that a system satisfy a specification: Model Checking Problem, computational complexity and classical solutions.
Main solutions to the Model Checking problem:
- explicit: Buchi automata, on-the-fly computation, state space reduction (symmetric reduction and partial order reduction)
- symbolic: mu-calculus, OBDD.
Compositional Reasoning
Software Model Checking
Bounded Model Checking
Probabilistic Model Checking
Using Model Checkers for HW/SW systems verification:
- Explicit model checkers: SPIN and Murphi
- Symbolic bounded and unbounded model checker: NuSMV
- Software model checkers: CBMC
- Probabilistic model checkers: FHP-Murphi and PRISM
For each model checker, the following will be discussed:
- input language
- execution model
- logic for properties specification
- implementation techniques
Textbooks and links
"Model Checking, Second Edition", di Edmund M. Clarke, Jr., Orna Grumberg, Daniel Kroening, Doron Peled and Helmut Veith, 2018
Lessons
N |
Data |
Material |
Topics |
Notes |
11 |
29/10/2019 |
lesson 6-S |
Salvo: The problem of Fairness. LTL and CTL model checking with fairness |
|
14 |
12/11/2019 |
lesson 8-S |
Salvo: Symbolic CTL model checking with fairness, Symbolic LTL model checking, and mu-calculus. |
|
23 |
17/12/2019 |
lesson 12-S |
Salvo: Probabilistic Model Checking II: PCTL, linear time properties, probabilistic bisimulation. |
|
21 |
10/12/2019 |
lesson 11-S |
Salvo: Probabilistic Model Checking I: Markov chains, probabilistic (constrained) reachability, qualitative properties |
|
13 |
05/11/2019 |
lesson 7-S |
Salvo: OBDDs, fixpoints, and Symbolic CTL model checking. |
|
7 |
15/10/2019 |
lesson 4-S |
Salvo: Model checking and automata: regular and \omega-regular properties. LTL on-the-fly model checking. |
|
1 |
24/09/2019 |
lesson 1-S |
Salvo: Formal methods, introduction to modeling concurrent systems (Aula "B" - Main Campus Sapienza) |
|
3 |
01/10/2019 |
lesson 2-S |
Salvo: Defining specifications, CTL* syntax and semantics, Linear Time properties, LTL and LTL model checking (Aula Magna Sociologia) |
|
5 |
08/10/2019 |
lesson 3-S |
Salvo: CTL. LTL vs CTL. CTL model checking. CTL* model checking. |
|
18 |
26/11/2019 |
lesson 10-S |
Salvo: Counteracting the state explosion problem III: abstract interpretation and symmetries. |
|
16 |
19/11/2019 |
lesson 9-S |
Salvo: Counteracting the state explosion problem II: bisimulation, simulation and ACTL, and cone of influence |
|
9 |
22/10/2019 |
lesson 5-S |
Salvo: Counteracting the state explosion problem I: partial order reduction |
|
15 |
13/11/2019 |
lesson 7-M models 7-M NuSMV tutorial NuSMV user manual |
Melatti: the NusMV model checker |
|
17 |
20/11/2019 |
lesson 8-M models 8-M |
Melatti: the NusMV model checker |
|
10 |
23/10/2019 |
lesson 5-M SPIN code |
Melatti: SPIN verification algorithm |
|
12 |
30/10/2019 |
lesson 6-M models 6-M |
Melatti: optimzations for SPIN verification algorithm |
|
6 |
09/10/2019 |
material 3-M |
Melatti: Murphi algorithm; Modeling of a complex system (turbogas) |
|
4 |
02/10/2019 |
lesson 2-M |
Melatti: Murphi algorithm (Aula Magna Sociologia) |
|
8 |
16/10/2019 |
lesson 4-M slides on Promela |
Melatti: Introduction to SPIN usage |
|
2 |
25/09/2019 |
lesson 1-M other material |
Melatti: Introduction to Murphi usage (Aula "B" - Main Campus Sapienza) |
|
20 |
04/12/2019 |
paper lesson 10-M |
Melatti: FHP-Murphi |
|
24 |
18/12/2019 |
|
Melatti: discussions on ongoing students' projects |
|
22 |
11/12/2019 |
lesson 11-M |
Melatti: CBMC and software model checking |
|
19 |
27/11/2019 |
paper |
Melatti: Caching and Disk Murphi |
|
|
06/11/2019 |
|
CANCELLED |
|
|
03/12/2019 |
|
CANCELLED |
|
Timetable
Day |
From |
To |
Where |
Tuesday |
14:00 |
17:00 |
Aula 2 (RM018) in Via del Castro Laurenziano 7a |
Wednesday |
14:00 |
16:00 |
Aula 2 (RM018) in Via del Castro Laurenziano 7a |
Free Software for the Course
CMurphi
Spin
NuSMV
CBMC
FHP-Murphi
PRISM