Course pages 2011–12 No. of lectures: 12 Prerequisite courses:
Logic and Proof The aim of the course is to introduce Hoare
logic as a basis for the formal specification and verification
of imperative programs. A simple language will be used to
illustrate core ideas. Both theoretical foundations and the
design of mechanized program verifiers will be covered. Some
current research activities and challenges will be outlined. -
Formal specification of imperative programs. Formal versus
informal methods. Specification using preconditions and
postconditions. - Axioms and rules of inference. Hoare logic for
a simple language with assignments, sequences, conditionals and
while-loops. - Loops and invariants. Various examples
illustrating loop invariants and how they can be found. -
Partial and total correctness. Hoare logic for proving
termination. Variants. - Additional constructs. Arrays and FOR-
commands. - Semantics. Mathematical interpretation of Hoare
logic. Deep and shallow semantic embedding. - Metatheory. Soun