Automated program verification (2011/2012)

Course code
Name of lecturer
Maria Paola Bonacina
Maria Paola Bonacina
Number of ECTS credits allocated
Academic sector
Language of instruction
II semestre dal Mar 1, 2012 al Jun 15, 2012.

Lesson timetable

II semestre
Day Time Type Place Note
Wednesday 2:30 PM - 4:30 PM lesson Lecture Hall I  
Friday 11:30 AM - 1:30 PM lesson Lecture Hall I  

Learning outcomes

The class presents problems and methods for program analysis and verification, by automated reasoning techniques such as theorem proving or model checking. Objective of the class is that the student understands the problems arising in expressing the behavior of programs in logical formulae, and in designing automated reasoners capable to handle them efficiently.


Theorem proving in propositional and first-order logic. First-order theories. Hoare logic, annotations, partial and total correctness, states, paths, invariants. Verification conditions for partial and total correctness: generation and proof of validity. Decision procedures for satisfiability modulo theories: equality, data structures, their combination.

Assessment methods and criteria

The grade is given by 30% C1 + 35% C2 + 35% P, where C1 is the midterm exam, C2 is the final exam, and P is an individual project. This applies to the final exam at the end of the course.
In the following sessions, the exam consists of a written exam (E), whose difficulty is such to be equivalent to that of the union of C1, C2 and P, and whose grade determines alone the final grade.
Cheating is forbidden and will determine loss of points. Students may withdraw only by not handing-in the test.