Lecturer: Professor M.J.C. Gordon (email@example.com)
No. of lectures: 12
Prerequisite course: Logic and Proof
This course is a prerequisite for Specification and Verification II.
The aim of the course is to motivate and illustrate the use of rigorous methods and mechanised tools for reasoning about the functional behaviour of imperative programs. A goal is to show the similarities and differences between hardware and software verification.
By the end of the course students should have an understanding of some aspects of the following topics. Partial and total correctness. Hoare notation. Axioms and rules of Floyd-Hoare logic. Soundness and completeness. Mechanised program verification using verification conditions. Program refinement. Weakest preconditions. Semantic embedding in higher order logic. Limitations of program verification. Problems of reasoning about C programs.
None (comprehensive notes supplied).