Abstract

We present an extension of polymorphic context-free session types that allows passing channels on channels, commonly known as higher-order session types. The mixture of functional types and session types has proven to be a challenge for type equivalence formulation: whereas functional type equivalence is often inductive and presented as a system of derivation rules, session type equivalence is often coinductive and usually presented as a bisimulation. We propose a unifying approach that handles the equivalence of functional and higher-order context-free session types together in the form of a system of rules generating a coinductively defined relation. Decidability of type equivalence is obtained via reduction to bisimulation for simple grammars, for which practical algorithms are known. To bridge the gap between types and simple grammars, we introduce a language of types with canonical names instead of bindings (which we call c-types), and propose a notion of canonical renaming to translate types to c-types.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call