Teacher: Sverre Hendseth
Formal verification of software is on the rise for more reasons.
You will likely encounter the formal verification requirement during your career. The purpose of this module is to build some intuition on what this entails.
Going through this module you will:
Curriculum will be the open book Theory and Practice of Concurrency by Roscoe. We aim at a reasonable understanding of the concept of Refinement. If you can appreciate example 5.1.1 on page 120 in the book you are well set for the exam (but see under for alternative route for passing the course).
The book introduces a branch of mathematics concerning «Communicating Sequential Processes» (CSP) and is quite theoretical (lots of axioms, operators, theorems etc.).
Sverre will cover this theory in 7×2 hour lectures.
You are encouraged to choose this route.
The oral exam will then not be centered around the Roscoe theory, but on your study/ your results. (We will discuss the timing… If bureaucracy allows, and you want, we will grade you then and there after your presentation.)
For those choosing the alternative route, the 7×2 lectures are mandatory.
If not doing the alternative route I also … very strongly encourage you to model the «hard to find bug» (a 20 line semaphore program from TTK4145 and the Burns and Wellings «Real-Time Systems and Programming Languages» book) in either FSP/LTSA or FDR3, just to ensure that you are not taking too lightly on the theory.