超限步索引:解耦具体步骤与逻辑步骤
在程序语义学领域,为了处理递归定义的语义域,步索引技术应运而生。本文将详细介绍基于 $\omega^2$ 的步索引理论,以及如何运用该理论定义逻辑关系,并证明其在上下文近似方面的合理性。
1. 基本概念
在介绍步索引之前,我们先明确一些基本概念。在 $\Delta; \Gamma \vdash e_I \leq e_S : \tau$ 中,$e_I$ 被称为左表达式或实现,$e_S$ 被称为右表达式或规范。上下文等价 $\Delta; \Gamma \vdash e_1 \cong_{ctx} e_2 : \tau$ 定义为从左到右和从右到左的上下文近似的合取。
2. 基于 $\omega^2$ 的步索引
步索引常用于解决在建模非直谓不变量时出现的语义域递归定义问题。由于递归变量的逆变出现,这些定义在集合论中无解。因此,我们使用步索引对构造进行分层。
2.1 语义域的定义
我们的目标是将语义域定义为一个在步索引集合范畴上的适当收缩函子的不动点。例如,考虑类型 - 世界的循环问题,我们希望在步索引集合范畴中解决以下方程:
[Type \cong \blacktriangleright ((Loc_{fin} \rightharpoonup Type)_{mon} \to UPred(Val))]
其中,$\blacktriangleright$ 是延迟算子,确保在展开递归定义时“下降一步”。直观地说,这保证了步索引为 $i$ 的 $Type$ 仅根据严格小于 $i$ 的步索引 $j$ 的 $Type$ 来定义,从而使方程有解。同时,我们将值上的谓词 $P(Va
超级会员免费看
订阅专栏 解锁全文

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



