**Next:**Specification and Verification II

**Up:**Lent Term 2009: Part

**Previous:**Natural Language Processing

**Contents**

##

Specification and Verification I

*Lecturer: Professor M.J.C. Gordon*

*No. of lectures:* 12

*Prerequisite course: Logic and Proof*

*This course is a prerequisite for Specification and Verification II.*

**Aims**

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.

**Lectures**

**Program specification.**Partial and total correctness. Hoare notation. [2 lectures]**Program verification.**Axioms and rules of Floyd-Hoare logic. Discussion of soundness and completeness. [4 lectures]**Mechanised program verification.**Annotation. Verification condition generation. [3 lectures]**Program refinement.**Definition of the refinement relation. Derivation of laws. [1 lecture]**Semantic embedding.**Deep*versus*shallow embedding. Shallow embedding of Hoare notation in higher order logic. Programming logic as a special case of general logic. [2 lectures]

**Objectives**

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. Semantic embedding in higher order logic. Limitations of program verification.

**Recommended reading**

Comprehensive notes supplied.

**Next:**Specification and Verification II

**Up:**Lent Term 2009: Part

**Previous:**Natural Language Processing

**Contents**