Session types enable the static verification of message-passing programs. A session type specifies a channel's protocol as sequences of messages. Prior work established a minimality result: every process typable with standard session types can be compiled down to a process typable using minimal session types: session types without the sequencing construct. This result justifies session types in terms of themselves; it holds for a higher-order session \pi-calculus, where values are abstractions (functions from names to processes). This paper establishes a new minimality result but now for the session \pi-calculus, the language in which values are names and for which session types have been more widely studied. Remarkably, this new minimality result can be obtained by composing known results. We develop optimizations of our new minimality result, and establish its static and dynamic correctness.
翻译:会话类型允许静态校验信件传递程序。 会话类型指定频道协议为信件序列。 先前的工作确立了一个最小值结果: 使用最小会话类型可以将标准会话类型的每个进程编成一个可使用最小会话类型打印的进程: 会话类型没有顺序构造。 此结果可以说明会话类型本身的理由; 它会话类型属于更高层次的会话 \pi- 计算, 其值是抽象的( 从名称到进程的职能) 。 此文件确立了一个新的最小值结果, 但现在的会话为\pi- 计算结果, 即数值是名称的语言, 并且会话类型已经得到了更广泛的研究。 值得注意的是, 可以通过组合已知的结果来取得这种新的最小值结果。 我们开发了我们新的最小值结果的优化, 并确立其静态和动态的正确性 。