论文标题
滴答时钟作为依赖的右伴随:时钟类型理论的表示语义
Ticking clocks as dependent right adjoints: Denotational semantics for clocked type theory
论文作者
论文摘要
时钟类型理论(Clott)是一种针对具有共同类型的编程的保护递归的类型理论,可以在类型中对生产力进行编码,并使用Step-Indexing的抽象形式来推理高级编程语言功能。以前,克罗特(Clott)已被证明具有许多句法特性,包括方程理论的强归一化,规范性和可决定性。在本文中,我们提出了Clott有用的典型语义,例如,用于研究Clott的未来扩展,其结构(例如路径类型)。 构建此模型的主要挑战是对Clott中的时钟上的刻度概念进行建模,以进行共同诱导类型的共同推理。我们建立在以前用于用多个时钟建模的守护递归的类别。在此类别中,有一个时钟的对象,但没有滴答的对象,因此无法使用标准工具对上下文中的tick弹药进行建模。取而代之的是,我们使用依赖的右伴函数对tick进行了建模,这是对与家族的类别设置的类别理论概念的概括。已知依赖的右伴随是模拟惠誉式模态类型的模型,但是在克洛特的情况下,模态算子构成了一个按时钟类型理论内部索引的家庭。我们使用时钟对象上的切片类别上的依赖右伴随对这个家庭进行建模。最后,我们展示了如何使用语义替代来对克洛特的刻度常数进行建模。 这项工作改善了前两个命名作者的先前模型,这不仅存在缺陷,而且更加复杂。
Clocked Type Theory (CloTT) is a type theory for guarded recursion useful for programming with coinductive types, allowing productivity to be encoded in types, and for reasoning about advanced programming language features using an abstract form of step-indexing. CloTT has previously been shown to enjoy a number of syntactic properties including strong normalisation, canonicity and decidability of the equational theory. In this paper we present a denotational semantics for CloTT useful, e.g., for studying future extensions of CloTT with constructions such as path types. The main challenge for constructing this model is to model the notion of ticks on a clock used in CloTT for coinductive reasoning about coinductive types. We build on a category previously used to model guarded recursion with multiple clocks. In this category there is an object of clocks but no object of ticks, and so tick-assumptions in a context can not be modelled using standard tools. Instead we model ticks using dependent right adjoint functors, a generalisation of the category theoretic notion of adjunction to the setting of categories with families. Dependent right adjoints are known to model Fitch-style modal types, but in the case of CloTT, the modal operators constitute a family indexed internally in the type theory by clocks. We model this family using a dependent right adjoint on the slice category over the object of clocks. Finally we show how to model the tick constant of CloTT using a semantic substitution. This work improves on a previous model by the first two named authors which not only had a flaw but was also considerably more complicated.