🤖 AI Summary
This work addresses the static deadlock verification problem for concurrent functional programs modeled by context-free session types (CFST). Existing CFST systems ensure protocol conformance but provide no guarantees against deadlocks. To bridge this gap, we propose the first priority-ordered, polymorphic, and recursive static type system for CFST that strictly guarantees both protocol adherence and runtime deadlock-freedom for well-typed programs. Our approach embeds channel interactions into partial-order constraints, thereby reducing deadlock-freedom to type decidability. While preserving the expressive tree-structured protocols of standard CFST, our system significantly extends its safety boundary. Evaluation demonstrates that our method supports richer communication patterns than prior approaches and achieves, for the first time, complete static deadlock verification for highly expressive session types.
📝 Abstract
We consider the problem of statically ensuring that message-passing programs never run into deadlocks. We focus on concurrent functional programs governed by context-free session types, which can express rich tree-like structures not expressible in standard session types. Existing techniques based on context-free session types enforce protocol conformance but not deadlock freedom. We propose a type system that enhances context-free session types with a priority-based approach to deadlock freedom, considering polymorphic and recursive types. Interestingly, the notions needed for avoiding deadlocks fit nicely into this expressive setting. We prove that well-typed programs respect their protocols and never run into deadlocks at run-time; we also demonstrate the expressiveness gains with respect to prior work by means of examples.