Binary session types guarantee communication safety and session fidelity, but alone they cannot rule out deadlocks arising from the interleaving of different sessions. In Classical Processes (CP)$-$a process calculus based on classical linear logic$-$deadlock freedom is guaranteed by combining channel creation and parallel composition under the same logical cut rule. Similarly, in Good Variation (GV)$-$a linear concurrent $\lambda$-calculus$-$deadlock freedom is guaranteed by combining channel creation and thread spawning under the same operation, called fork. In both CP and GV, deadlock freedom is achieved at the expense of expressivity, as the only processes allowed are tree-structured. Dardha and Gay define Priority CP (PCP), which allows cyclic-structured processes and restores deadlock freedom by using priorities, in line with Kobayashi and Padovani. Following PCP, we present Priority GV (PGV), a variant of GV which decouples channel creation from thread spawning. Consequently, we type cyclic-structured processes and restore deadlock freedom by using priorities. We show that our type system is sound by proving subject reduction and progress. We define an encoding from PCP to PGV and prove that the encoding preserves typing and is sound and complete with respect to the operational semantics.
翻译:Binary 会话类型保证通信安全和会议忠诚,但单是它们无法排除不同会议交错产生的僵局。 在经典过程(CP)-美元过程中,基于经典线性逻辑-美元-死锁自由的流程计算通过将频道创建和平行构成结合到同一逻辑分解规则下而得到保障。同样,在良好变换(GV)-美元(线性双数)中,美元-美元(美元-计算-美元-死锁自由)中,通过将频道创建和线性滚动结合到同一操作中,这些变式(要求叉)。因此,在CP和GV中,僵局的实现是以表达性为代价的,因为唯一允许的流程是树结构化。Dardha和Gay界定了优先CP(PCP),它允许循环结构化进程和平行组成,并通过使用与Kobayashi和Padovani相一致的优先事项,恢复僵局自由。在使用五氯苯酚后,我们提出了GV优先方案(PGV)的变式(GV),它使频道的创建和线性滚动通道产生脱裂。因此,我们输入了循环结构结构结构进程,并恢复了运作模式,我们用正确的格式定义了僵化了僵化的系统。