Testing systems is great, but tests can only explore a finite set of inputs and behaviours, while many distributed systems have an infinite state space. If you want to be sure that a program does the right thing in all possible situations, testing is not sufficient: only mathematical proof can cover an infinite state space. This talk introduces Isabelle/HOL, an interactive proof assistant (a kind of programming language and REPL for proofs), and explores how to formally verify distributed algorithms.

THIS TALK IN THREE WORDS

Distributed

Formal

Verification

OBJECTIVES

Attendees will:

Get a taste of why and how we can formally verify software and algorithms

Understand the most important reasoning tools available, such as proof by induction

Learn about the difference between proof assistants like Isabelle and model-checkers like TLA+

TARGET AUDIENCE

Software developers who have experience developing distributed systems, but who have not previously done any formal verification.