Session types are a discipline for the static verification of message-passing programs. A session type specifies a channel's protocol as sequences of exchanges. It is most relevant to investigate session-based concurrency by identifying the essential notions that enable program specification and verification. Following that perspective, prior work identified minimal session types (MSTs), a sub-class of session types without the sequentiality construct (;), which specifies the structure of communication actions. This notion led to establish a minimality result: every process typable with standard session types can be compiled down to a process typable using MSTs, which mimics sequentiality in types via additional synchronizations. Such a minimality result is significant because it justifies session types in terms of themselves, without resorting to external notions; it was proven for a higher-order session $\pi$-calculus, where values are abstractions (functions from names to processes). This paper studies MSTs and their associated minimality result but now for the session $\pi$-calculus, the (first-order) language in which values are names and for which session types have been more widely studied. We first show that this new minimality result can be obtained by composing known results. Then, we develop optimizations of this new minimality result and prove that the associated transformation into processes with MSTs satisfies dynamic correctness.
翻译:会话类型是一种用于静态验证消息传递程序的学科。会话类型指定了通道的协议作为交换序列。通过识别启用程序规范和验证的基本概念,研究基于会话的并发性变得更加重要。遵循这个角度,之前的研究确定了最简会话类型(MSTs),它是没有顺序构造(;)的会话类型子类,它指定了通信行为的结构。这个概念提供了一个极简结果:使用标准会话类型可编译成可使用MSTs类型实现的进程,通过增加额外的同步来模拟类型中的顺序性。这种最小化结果是重要的,因为它仅仅使用自己的会话类型就可以证明会话类型的合理性,而不需要诉诸于外部概念。这个结果已被证明适用于高阶会话π演算,其中值是抽象(从名称到进程的函数)。本文研究了MST及其相关的最小化结果,但是现在针对会话π-演算,即名称为值且会话类型已被广泛研究的一阶语言进行研究。我们首先证明了通过组合已知结果可以得到这个新的极简结果。然后,我们优化了这个新的极简结果,并证明了与MSTs相关的转换满足动态正确性。