Abstract
Session types provide a principled programming discipline for structured interactions. They represent a wide spectrum of type-systems for concurrency. Their type safety is thus extremely important. EMTST is a tool to aid in representing and validating theorems about session types in the Coq proof assistant. On paper, these proofs are often tricky, and error prone. In proof assistants, they are typically long and difficult to prove. In this work, we propose a library that helps validate the theory of session types calculi in proof assistants. As a case study, we study two of the most used binary session types systems: we show the impossibility of representing the first system in alpha -equivalent representations, and we prove type preservation for the revisited system. We develop our tool in the Coq proof assistant, using locally nameless for binders and small scale reflection to simplify the handling of linear typing environments.
Highlights
Given the prevalence of distributed computing and multi-core processors, concurrency is a key aspect of modern computing
We concentrate on providing tools for reasoning about session types [10], a typing discipline for structured interactions in distributed systems
Type systems offer certain security properties by construction. These guarantees are backed by rigorous proofs
Summary
Given the prevalence of distributed computing and multi-core processors, concurrency is a key aspect of modern computing. Session types are applied to a wide range of problems, and their properties, such as deadlock-freedom, are well studied These calculi are very expressive, and rather complex, with features like: shared and linear communication channels, name passing, and fresh name generation. Type systems offer certain security properties by construction These guarantees are backed by rigorous proofs (these proofs conform the meta-theory of the system). We use the Coq proof assistant [20] to study the representation and meta-theory of the two systems described in [23]. We discuss how the revised system allows us to implement and prove type preservation In hindsight, this problem appears as evident, but it is an unexpected consequence, and it shows that mechanising proofs brings further understanding even to well-established and thoroughly studied systems.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.