A Theory of Higher-Order Subtyping with Type Intervals — Agda Formalization
Creators
- 1. Chalmers University of Technology / University of Gothenburg
- 2. Bedrock Systems Inc.
Description
Abstract
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 https://github.com/sstucki/f-omega-int-agda.
Notes
Files
Files
(525.3 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:80666e8888393e08652911eab3093f3b
|
2.6 MB | Download |
|
md5:4f8963064ca9f5a9db19d0426347826e
|
522.7 MB | Download |
Additional details
Related works
- Is supplement to
- Journal article: 10.1145/3473574 (DOI)