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
f-omega-int-agda-vm-1.0.tar.gz
md5:4f8963064ca9f5a9db19d0426347826e
522.7 MB
78
16
views
All versions This version
Views 7842
Data volume 3.3 GB527.9 MB
Unique views 6132