Software Open Access

A Theory of Higher-Order Subtyping with Type Intervals — Agda Formalization

Sandro Stucki; Paolo G. Giarrusso

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^\omega_{..}\), a rigorous theoretical foundation for Scala's higher-kinded types.  \(F^\omega_{..}\) extends \(F^\omega_{<:}\) 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^\omega_{..}\), 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.

Software description
This package contains the mathematical proofs for the associated paper, formalized in the Agda proof assistant, both as a source archive, and as a virtual machine containing the necessary dependencies to check the proofs.

The latest version of the source code is available on GitHub at

For instructions, see the file included in the archives.
Files (525.3 MB)
Name Size
2.6 MB Download
522.7 MB Download
All versions This version
Views 7842
Downloads 163
Data volume 3.3 GB527.9 MB
Unique views 6132
Unique downloads 92


Cite as