一句话:在 Ticked Cubical Type Theory 中证明,任意函子的终守卫余代数的双模拟等价于路径相等。
共归纳类型可用于表示进程,是证明助手中验证非终止反应式程序的关键,但生产率要求以及内置同一性与双相似性不一致,使其编程与推理困难。带守卫递归和时钟量化可编码共归纳类型。本文在 Ticked Cubical Type Theory 中研究守卫递归类型的双相似性,证明对任意函子,终守卫余代数的范畴论抽象双相似性在同伦类型论意义下等价于路径相等。以带守卫的标记迁移系统为例,证明路径相等与进程通常的双模拟概念一致,从而可用简单等式推理证明双相似性。该工作朝由编码获得共归纳类型的双相似性即路径相等迈进一步。
In type theory, coinductive types are used to represent processes, and are thus crucial for the formal verification of non-terminating reactive programs in proof assistants based on type theory, such as Coq and Agda. Currently, programming and reasoning about coinductive types is difficult for two reasons: The need for recursive definitions to be productive, and the lack of coincidence of the built-in identity types and the important notion of bisimilarity. Guarded recursion in the sense of Nakano has recently been suggested as a possible approach to dealing with the problem of productivity, allowing this to be encoded in types. Indeed, coinductive types can be encoded using a combination of guarded recursion and universal quantification over clocks. This paper studies the notion of bisimilarity for guarded recursive types in Ticked Cubical Type Theory, an extension of Cubical Type Theory with guarded recursion. We prove that, for any functor, an abstract, category theoretic notion of bisimilarity for the final guarded coalgebra is equivalent (in the sense of homotopy type theory) to path equality (the primitive notion of equality in cubical type theory). As a worked example we study a guarded notion of labelled transition systems, and show that, as a special case of the general theorem, path equality coincides with an adaptation of the usual notion of bisimulation for processes. In particular, this implies that guarded recursion can be used to give simple equational reasoning proofs of bisimilarity. This work should be seen as a step towards obtaining bisimilarity as path equality for coinductive types using the encodings mentioned above.
@article{paperbot664,
title = {Bisimulation as path type for guarded recursive types},
author = {Rasmus Ejlers Møgelberg and Niccolò Veltri},
journal = {Proceedings of the ACM on Programming Languages},
volume = {3},
number = {POPL},
year = {2019},
doi = {10.1145/3290317}
}