DeepAI AI Chat
Log In Sign Up

π 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

08/27/2018

Context-Free Session Types for Applied Pi-Calculus

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

Intrinsically-Typed Mechanized Semantics for Session Types

Session types have emerged as a powerful paradigm for structuring commun...
07/07/2022

Scoped Capabilities for Polymorphic Effects

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

The Vectorial Lambda Calculus Revisited

We revisit the Vectorial Lambda Calculus, a typed version of Lineal. Vec...
09/12/2019

Towards Gradually Typed Capabilities in the Pi-Calculus

Gradual typing is an approach to integrating static and dynamic typing w...
08/17/2017

Towards Algorithmic Typing for DOT

The Dependent Object Types (DOT) calculus formalizes key features of Sca...
10/31/2022

Polymorphic Typestate for Session Types

Session types provide a principled approach to typed communication proto...