|Wednesday||2:30 PM - 4:30 PM||lesson||Lecture Hall I|
|Friday||11:30 AM - 1:30 PM||lesson||Lecture Hall I|
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.
|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|
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.