seminars
Detail
Publication date: 24 de February, 2025Iso-Recursive Multiparty Sessions and their Automated Verification
(1) the mechanisation of GMST and equi-recursion in proof assistants is utterly complex and eventually requires co-induction; and
(2) the implementation of GMST in type checkers relies on model checkers for environment verification, and thus the program analysis is not self-contained.
In this talk, we overcome these limitations by providing an iso-recursive typing system that computes the behavioural properties of environments. The type system relies on a terminating function named compliance that computes all final redexes of an environment, and determines when these redexes do not contain mismatches or deadlocks: compliant environments cannot go wrong. The function is defined theoretically by introducing the novel notions of deterministic LTS of environments and of environment closure, and can be implemented in mainstream programming languages and compilers. We showcase an implementation in OCaml by using exception handling to tackle the inherent non-determinism of synchronisation of branching and selection types. We assess that the implementation provides the desired properties, namely absence of mismatches and of deadlocks in environments, by resorting to automated deductive verification performed in tools of the OCaml ecosystem relying on Why3.
(** Joint work with Nobuko Yoshida *
Date | 19/03/2025 2:00 pm |
---|---|
Location | DI Seminars Room and Zoom |
Host Bio | Marco Giunti is a Research Associate at the University of Oxford. Previously, he worked in top-level research centers including NOVA LINCS, University of Lisbon, and Ecole Polytechnique. He participated in more than twenty national and international research projects, and co-led one. He co-chaired the Programming Languages track of the last two editions of the Symposium On Applied Computing. His research topics lay in the area of programming languages and formal verification. In recent years, his main attention is the development, implementation, and mechanisation of type-based static analysis techniques for concurrent and object-oriented languages. |