Verifying Asynchronous Interactions via Communicating Session Automata

01/28/2019
by   Julien Lange, et al.
0

The relationship between communicating automata and session types is the cornerstone of many diverse theories and tools, including type checking, code generation, and runtime verification. A serious limitation of session types is that, while endpoint programs interact asynchronously, the underlying property which guarantees safety of session types is too synchronous: it requires a one-to-one synchronisation between send and receive actions. This paper proposes a sound procedure to verify properties of communicating session automata (CSA), i.e., communicating automata that correspond to multiparty session types. We introduce a new asynchronous compatibility property for CSA, called k-multiparty compatibility (k-MC), which is a strict superset of the synchronous multiparty compatibility proposed in the literature. It is decomposed into two bounded properties: (i) a condition called k-safety which guarantees that, within the bound, all sent messages can be received and each automaton can make a move; and (ii) a condition called k-exhaustivity which guarantees that all k-reachable send actions can be fired within the bound. We show that k-exhaustive systems soundly and completely characterise systems where each automaton behaves uniformly for any bound greater or equal to k. We show that checking k-MC is PSPACE-complete, but can be done efficiently over large systems by using partial order reduction techniques. We demonstrate that several examples from the literature are k-MC, but not synchronous compatible.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/05/2018

On Urgency in Asynchronous Timed Session Types

We study an urgent semantics of asynchronous timed session types, where ...
research
05/25/2023

A Logical Interpretation of Asynchronous Multiparty Compatibility

Session types are types for specifying the protocols that communicating ...
research
11/23/2021

kmclib: Automated Inference and Verification of Session Types

Theories and tools based on multiparty session types offer correctness g...
research
05/26/2023

Complete Multiparty Session Type Projection with Automata

Multiparty session types (MSTs) are a type-based approach to verifying c...
research
12/23/2021

Deadlock-free asynchronous message reordering in Rust with multiparty session types

Rust is a modern systems language focused on performance and reliability...
research
06/30/2019

A Sound Algorithm for Asynchronous Session Subtyping (extended version)

Session types, types for structuring communication between endpoints in ...
research
10/26/2020

Precise Subtyping for Asynchronous Multiparty Sessions

This paper presents the first formalisation of the precise subtyping rel...

Please sign up or login with your details

Forgot password? Click here to reset