This is an old revision of the document!
Table of Contents
Course Outline
Programming Logic for Complex Systems This course covers program verification methods for a class of programs, commonly referred to as reactive programs. Reactive programs typically never terminate and are run in order to maintain some interaction with the environment. An adequate description of reactive systems must refer not only to initial and final states, but also to the ongoing behaviour as a (possibly infinite) sequence of states and events. The purpose of this course is to investigate the use of logical calculi for the specification, design and verification of reactive systems. Topics include: modelling of discrete event systems, semantics of real-time languages, logical and discrete calculi (e.g. temporal logic) for specifying and verifying safety, liveness, deadlock, priority and fairness properties of reactive programs, and prolog tools for automating verification
Week 1
Models in engineering (e.g. electrical circuits).
Week 2
Models of discrete event systems in Event-B (Mon) and Spin (Wed). The Event-B model is the bridge controller. The Spin model is of a mutual exclusion algorithm using semaphores. Safety and liveness properties in linear time temporal logic.
Week 3
Continuation of Event-B. Refining a model.