A Theory of Higher-Order Subtyping with Type Intervals (Extended Version)

07/05/2021
by   Sandro Stucki, et al.
0

The calculus of Dependent Object Types (DOT) has enabled a more principled and robust implementation of Scala, but its support for type-level computation has proven insufficient. As a remedy, we propose F^ω_.., a rigorous theoretical foundation for Scala's higher-kinded types. F^ω_.. extends F^ω_<: with interval kinds, which afford a unified treatment of important type- and kind-level abstraction mechanisms found in Scala, such as bounded quantification, bounded operator abstractions, translucent type definitions and first-class subtyping constraints. The result is a flexible and general theory of higher-order subtyping. We prove type and kind safety of F^ω_.., as well as weak normalization of types and undecidability of subtyping. All our proofs are mechanized in Agda using a fully syntactic approach based on hereditary substitution.

READ FULL TEXT
research
04/12/2022

Functional Pearl: Dependent type inference via free higher-order unification

Many type theories rely significantly on dependent types. Implementing a...
research
03/24/2022

Higher-order Context-free Session Types in System F

We present an extension of System F with higher-order context-free sessi...
research
05/07/2019

A Type Theory for Defining Logics and Proofs

We describe a Martin-Löf-style dependent type theory, called Cocon, that...
research
10/11/2022

Controlling unfolding in type theory

We present a novel mechanism for controlling the unfolding of definition...
research
12/15/2022

Higher-order Games with Dependent Types

This paper generalises the notion of a higher-order game, by accounting ...
research
08/01/2019

Refinement Kinds: Type-safe Programming with Practical Type-level Computation (Extended Version)

This work introduces the novel concept of kind refinement, which we deve...
research
07/14/2022

Node Replication: Theory And Practice

We define and study a term calculus implementing higher-order node repli...

Please sign up or login with your details

Forgot password? Click here to reset