论文标题

独立的内部化表示独立性

Internalizing Representation Independence with Univalence

论文作者

Angiuli, Carlo, Cavallo, Evan, Mörtberg, Anders, Zeuner, Max

论文摘要

在其通常的形式中,表示独立性元素可以提供外部保证,即在通过操作性的信函相关时,抽象接口的两个实现是可以互换的。但是,如果我们的编程语言是依赖性的,那么我们想在语言本身中诉诸此类不变性结果,以便通过从更简单的相关实现中转移它们来获取复杂实现的正确性定理。最近的证明助手的工作表明,Voevodsky的单价原则允许在同构类型之间转移定理,但是编程中代表独立性的许多实例都涉及非同构表示。 在本文中,我们通过使用较高的感应类型来通过它们之间的异质对应性,通过使用较高的电感类型来同时使用较高的电感类型来同时使用较高的归纳类型,从而在依赖类型理论中建立内部关系表示独立性。该对应关系成为商类型之间的同构,从而使我们能够通过单位获得实现的平等。我们通过考虑对矩阵,队列和有限多种群体的应用来说明我们的技术。我们的结果都是在Cubical AGDA中正式化的,Cubical AGDA是AGDA的最新扩展,它以计算良好的方式支持单相关性和较高的电感类型。

In their usual form, representation independence metatheorems provide an external guarantee that two implementations of an abstract interface are interchangeable when they are related by an operation-preserving correspondence. If our programming language is dependently-typed, however, we would like to appeal to such invariance results within the language itself, in order to obtain correctness theorems for complex implementations by transferring them from simpler, related implementations. Recent work in proof assistants has shown that Voevodsky's univalence principle allows transferring theorems between isomorphic types, but many instances of representation independence in programming involve non-isomorphic representations. In this paper, we develop techniques for establishing internal relational representation independence results in dependent type theory, by using higher inductive types to simultaneously quotient two related implementation types by a heterogeneous correspondence between them. The correspondence becomes an isomorphism between the quotiented types, thereby allowing us to obtain an equality of implementations by univalence. We illustrate our techniques by considering applications to matrices, queues, and finite multisets. Our results are all formalized in Cubical Agda, a recent extension of Agda which supports univalence and higher inductive types in a computationally well-behaved way.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源