DeepAI AI Chat
Log In Sign Up

π with leftovers: a mechanisation in Agda

by   Uma Zalakain, et al.

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


page 1

page 2

page 3

page 4


Context-Free Session Types for Applied Pi-Calculus

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

Intrinsically-Typed Mechanized Semantics for Session Types

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

Scoped Capabilities for Polymorphic Effects

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

The Vectorial Lambda Calculus Revisited

We revisit the Vectorial Lambda Calculus, a typed version of Lineal. Vec...

Towards Gradually Typed Capabilities in the Pi-Calculus

Gradual typing is an approach to integrating static and dynamic typing w...

Towards Algorithmic Typing for DOT

The Dependent Object Types (DOT) calculus formalizes key features of Sca...

Polymorphic Typestate for Session Types

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