当前位置: X-MOL 学术Sci. Comput. Program. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
A dependently typed calculus with polymorphic subtyping
Science of Computer Programming ( IF 1.3 ) Pub Date : 2021-04-15 , DOI: 10.1016/j.scico.2021.102655
Mingqi Xue , Bruno C.d.S. Oliveira

A polymorphic subtyping relation, which relates more general types to more specific ones, is at the core of many modern functional languages. As those languages start moving towards dependently typed programming a natural question is how can polymorphic subtyping be adapted to such settings.

This paper presents the dependent implicitly polymorphic calculus (λI): a simple dependently typed calculus with polymorphic subtyping. The subtyping relation in λI generalizes the well-known polymorphic subtyping relation by Odersky and Läufer (1996). Because λI is dependently typed, integrating subtyping in the calculus is non-trivial. To overcome many of the issues arising from integrating subtyping with dependent types, the calculus employs unified subtyping, which is a technique that unifies typing and subtyping into a single relation. Moreover, λI employs explicit casts instead of a conversion rule, allowing unrestricted recursion to be naturally supported. We prove various non-trivial results, including type soundness and transitivity of unified subtyping. λI and all corresponding proofs are mechanized in the Coq theorem prover.



中文翻译:

具有多态子类型的依存类型演算

一个多态性分型关系,这涉及更普遍的类型,以更具体的,是在许多现代函数式编程语言的核心。随着这些语言开始走向依赖类型的编程,一个自然的问题是如何将多态子类型应用于此类设置。

本文介绍了相关的隐式多态演算(λ一世):具有多态子类型的简单依存类型演算。中的子类型关系λ一世归纳了Odersky和Läufer(1996)众所周知的多态子类型关系。因为λ一世如果是依存类型的,则将微分中的子类型集成起来并非易事。为了克服因将子类型与依赖类型集成而产生的许多问题,演算采用统一子类型,这是一种将类型和子类型统一为单个关系的技术。而且,λ一世使用显式强制转换而不是转换规则,从而自然支持不受限制的递归。我们证明了各种非平凡的结果,包括类型健全性和统一子类型的可传递λ一世 并在Coq定理证明者中机械化了所有相应的证明。

更新日期:2021-04-16
down
wechat
bug