A dependently typed calculus with polymorphic subtyping
•A dependently-typed language that features implicit polymorphism, general recursion and explicit type-level computation.•Higher ranked subtype reasoning about the more-general-than relation between polymorphic types.•Fully mechanized proof of the type soundness and transitivity. A polymorphic subty...
Gespeichert in:
Veröffentlicht in: | Science of computer programming 2021-08, Vol.208, p.102655, Article 102655 |
---|---|
Hauptverfasser: | , |
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | •A dependently-typed language that features implicit polymorphism, general recursion and explicit type-level computation.•Higher ranked subtype reasoning about the more-general-than relation between polymorphic types.•Fully mechanized proof of the type soundness and transitivity.
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. |
---|---|
ISSN: | 0167-6423 1872-7964 |
DOI: | 10.1016/j.scico.2021.102655 |