π with leftovers: a mechanisation in Agda

05/08/2020
by   Uma Zalakain, et al.
0

The π-calculus is a computational model for communication and concurrency. The linear π-calculus is a typed version of the π-calculus where channels must be used exactly once. It is an underlying theoretical and practical framework on top of which more advanced types and theories are built, including session types. Linearity is key for type safety in session communication. We present the first full mechanisation in Agda of a π-calculus with linear, graded and shared types, all under the same unified framework. While linearity is key for type safety in communication-centric programming, graded and shared types are needed to model real-world software systems. We present the syntax, semantics, type system and corresponding type safety properties. For the first time in the π-calculus, we use leftover typing to encode our typing rules in a way that propagates linearity constraints into process continuations. We generalise the algebras on multiplicities, allowing the developer to choose a mix of linear, graded and shared typing. We provide framing, weakening and strengthening proofs that we then use to prove subject congruence. We show that the type system is stable under substitution and prove subject reduction. Our formalisation is fully mechanised in Agda and available at https://github.com/umazalakain/typing-linear-pi.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/27/2018

Context-Free Session Types for Applied Pi-Calculus

We present a binary session type system using context-free session types...
research
08/08/2019

Intrinsically-Typed Mechanized Semantics for Session Types

Session types have emerged as a powerful paradigm for structuring commun...
research
11/02/2017

On Polymorphic Sessions and Functions: A Tale of Two (Fully Abstract) Encodings

This work exploits the logical foundation of session types to determine ...
research
07/07/2020

The Vectorial Lambda Calculus Revisited

We revisit the Vectorial Lambda Calculus, a typed version of Lineal. Vec...
research
07/18/2023

Soundly Handling Linearity

We propose a novel approach to soundly combining linear types with effec...
research
09/12/2019

Towards Gradually Typed Capabilities in the Pi-Calculus

Gradual typing is an approach to integrating static and dynamic typing w...
research
07/07/2022

Scoped Capabilities for Polymorphic Effects

Type systems usually characterize the shape of values but not their free...

Please sign up or login with your details

Forgot password? Click here to reset