Automated program verification (2012/2013)

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 4, 2013 al Jun 14, 2013.

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.


Proof procedures 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: congruence closure, lists, arrays, combination of procedures by equality sharing.

Reference books
Author Title Publisher Year ISBN Note
Daniel Kroening, Ofer Strichman Decision Procedures. An algorithmic point of view Springer 2008 978-3-540-74104-6
Aaron R. Bradley, Zohar Manna The Calculus of Computation - Decision Procedures with Applications to Verification (Edizione 1) Springer 2007 9783540741

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 exam session at the end of the course.
In the following sessions, the exam consists of a written test (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. All grades will be registered: students may withdraw by informing the instructor. Cheating is forbidden and will determine loss of points for all students involved.