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...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Science of computer programming 2021-08, Vol.208, p.102655, Article 102655
Hauptverfasser: Xue, Mingqi, Oliveira, Bruno C.d.S.
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
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