On the Monitorability of Session Types, in Theory and Practice (Extended Version)

by   Christian Batrolo Burlò, et al.

In concurrent and distributed systems, software components are expected to communicate according to predetermined protocols and APIs - and if a component does not observe them, the system's reliability is compromised. Furthermore, isolating and fixing protocol/API errors can be very difficult. Many methods have been proposed to check the correctness of communicating systems, ranging from compile-time to run-time verification; among such methods, session types have been applied for both static type-checking, and run-time monitoring. This work takes a fresh look at the run-time verification of communicating systems using session types, in theory and in practice. On the theoretical side, we develop a novel formal model of session-monitored processes; with it, we formulate and prove new results on the monitorability of session types, connecting their run-time and static verification - in terms of soundness (i.e., whether monitors only flag ill-typed processes) and completeness (i.e., whether all ill-typed processes can be flagged by a monitor). On the practical side, we show that our monitoring theory is indeed realisable: building upon our formal model, we develop a Scala toolkit for the automatic generation of session monitors. Our executable monitors can be used to instrument black-box processes written in any programming language; we assess the viability of our approach with a series of benchmarks.



There are no comments yet.


page 5

page 7

page 9

page 13

page 15

page 21

page 25

page 33


Minimal Session Types for the π-calculus (Extended Version)

Session types enable the static verification of message-passing programs...

Idris 2: Quantitative Type Theory in Practice

Dependent types allow us to express precisely what a function is intende...

Minimal Session Types (Extended Version)

Session types are a type-based approach to the verification of message-p...

Session Coalgebras: A Coalgebraic View on Session Types and Communication Protocols

Compositional methods are central to the development and verification of...

A stochastically verifiable autonomous control architecture with reasoning

A new agent architecture called Limited Instruction Set Agent (LISA) is ...

Topological Run-time Monitoring for Complex Systems

In this paper we introduce a new data-driven run-time monitoring system ...

Taming Concurrency for Verification Using Multiparty Session Types (Technical Report)

The additional complexity caused by concurrently communicating processes...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.