π 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

Please sign up or login with your details

Forgot password? Click here to reset