移动进程合约与会话类型系统
1. 合约基础概念
在移动进程的研究中,合约是一个重要的概念。存在三个特殊的合约元素:0、1 和 Ω,它们两两不同。其中,0 是 ⪯ 关系中的最小元素,若 T ≈ 0,则意味着不存在能保证 T 取得进展的上下文,即具有合约 T 的进程类型错误。1 表示最终终止,而 Ω 表示无限进展,1 与 Ω 不等价,因为 1 ▷◁ 1 但 1 ̸▷◁ Ω。
⪯ 对于无约束变量的动作前缀是预同余关系,且对于 ⊕ 也是预同余关系,即 R ▷◁ T ⊕ S 当且仅当 R ▷◁ T 且 R ▷◁ S。然而,⪯ 对于 + 不是预同余关系,例如 0 ⪯ c?a.0,但 c?a.1 + 0 ̸⪯ c?a.1 + c?a.0,这使得对 ⪯ 进行公理化变得困难。
为了解决这个问题,引入了强子合约关系 ⊑。定义如下:
定义 5(强子合约关系)
设 ⊑ 是包含于 ⪯ 且对于 + 是预同余的最大关系,即 T ⊑ S 定义为对于每个 R,T + R ⪯ S + R。用 ≃ 表示由 ⊑ 诱导的等价关系。
一般情况下,0 ̸⊑ T,但 π.0 ⊑ π.T 成立。下面的定理表明 ⪯ 和 ⊑ 的差异:
定理 1
如果 T ▷◁ 且 T ⪯ S,那么 T ⊑ S。
这意味着 ⪯ 和 ⊑ 仅在 ⪯ 较小的合约不可行时才不同。实际上,使用 ⊑ 代替 ⪯ 没有影响,T ⊑ 0 完全刻画了不可行合约。⊑ 还允许通过合约来推理进程的属性:
命题 1
以下属性成立:
1. T ▷◁ 当且仅当 T ̸⊑ 0;
2. 1 + T
超级会员免费看
订阅专栏 解锁全文
4303

被折叠的 条评论
为什么被折叠?



