Session types are used to specify and verify communication protocols and have been integrated in the {\pi}-calculus and a linear concurrent {\lambda}-calculus -- Good Variation (GV), among others. Session type systems guarantee communication safety and session fidelity, but cannot guarantee deadlock freedom and avoid bad 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, deadlock freedom in GV is guaranteed by combining channel creation and thread spawning under the same operation, called fork. In both GV and CP, deadlock freedom is achieved at the expense of expressivity as the only communication structures allowed are trees. Dardha and Gay define Priority CP (PCP), which allows for cyclic structures and restores deadlock freedom by adding priorities to types, in line with Kobayashi and Padovani's work. Following PCP, we present Priority GV (PGV), a variant of GV which decouples channel creation from thread spawning, and restores deadlock freedom by adding priorities. PGV has strong ties to linear logic and solves several problems in the original GV. We show 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.
翻译:届会类型系统保证通信安全和会议忠诚,但不能保障僵局自由,避免不同会议之间的不愉快。在经典进程(CP)中,基于经典线性逻辑的流程计算,僵局自由通过将频道创建和平行构成合并在逻辑性削减规则下得到保障。同样,通过将频道创建和平行构成结合起来,全球之声的僵局自由得到保证,在同一个操作下将频道创建和线线性产卵结合起来,呼吁叉;在GV和CP中,实现僵局自由是以表达为代价的,因为只有允许的通信结构是树木。Dardha和Gay界定了优先CP(PCP),它允许循环结构并恢复僵局自由,根据Kobayashi和Padovani的工作,在种类上增加优先事项。在五氯苯酚之后,我们提出了优先GV(GV),将频道创建和线性产和线性产物混合在一起,在螺旋尾轴中,我们从螺旋尾轴和直线性G(G)中将稳定下来。