Tutorial: Designing Distributed Software in mCRL2

04/21/2021
by   Jan Friso Groote, et al.
0

Distributed software is very tricky to implement correctly as some errors only occur in peculiar situations. For such errors testing is not effective. Mathematically proving correctness is hard and time consuming, and therefore, it is rarely done. Fortunately, there is a technique in between, namely model checking, that, if applied with skill, is both efficient and able to find rare errors. In this tutorial we show how to create behavioural models of parallel software, how to specify requirements using modal formulas, and how to verify these. For that we use the mCRL2 language and toolset (https://www.mcrl2.org/). We discuss the design of an evolution of well-known mutual exclusion protocols, and how model checking not only provides insight in their behaviour and correctness, but also guides their design.

READ FULL TEXT
research
05/09/2019

Evaluating Model Testing and Model Checking for Finding Requirements Violations in Simulink Models

Matlab/Simulink is a development and simulation language that is widely ...
research
04/29/2022

MET: Model Checking-Driven Explorative Testing of CRDT Designs and Implementations

Internet-scale distributed systems often replicate data at multiple geog...
research
07/01/2021

On the (Non-)Applicability of a Small Model Theorem to Model Checking STMs

Software Transactional Memory (STM) algorithms provide programmers with ...
research
07/23/2019

Using Model Checking to Formally Verify Rendezvous Algorithms for Robots with Lights in Euclidean Space

The paper details the first successful attempt at using model-checking t...
research
07/11/2023

Process-Algebraic Models of Multi-Writer Multi-Reader Non-Atomic Registers

We present process-algebraic models of multi-writer multi-reader safe, r...
research
02/09/2023

Verification of Distributed Artificial Intelligence Systems in Bioinformatics

Software is a great enabler for a number of projects that otherwise woul...
research
09/07/2019

GoTcha: An Interactive Debugger for GoT-Based Distributed Systems

Debugging distributed systems is hard. Most of the techniques that have ...

Please sign up or login with your details

Forgot password? Click here to reset