Software Open Access

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

Sandro Stucki; Paolo G. Giarrusso

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.

For instructions, see the README.md file included in the archives.
Files (525.3 MB)
Name Size
f-omega-int-agda-src-1.0.tar.gz
md5:80666e8888393e08652911eab3093f3b
2.6 MB Download
f-omega-int-agda-vm-1.0.tar.gz
md5:4f8963064ca9f5a9db19d0426347826e
522.7 MB Download
78
16
views
downloads
All versions This version
Views 7842
Downloads 163
Data volume 3.3 GB527.9 MB
Unique views 6132
Unique downloads 92

Share

Cite as