Scala step-by-step

Soundness for DOT with step-indexed logical relations in Iris

Journal Article (2020)
Author(s)

Paolo G. Giarrusso (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Leo Stefanesco (Université de Paris)

Amin Timany (Aarhus University)

Lars Birkedal (Aarhus University)

Robbert Krebbers (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Research Group
Programming Languages
DOI related publication
https://doi.org/10.1145/3408996 Final published version
More Info
expand_more
Publication Year
2020
Language
English
Research Group
Programming Languages
Issue number
ICFP
Volume number
4
Article number
114
Pages (from-to)
114:1 - 114:29
Downloads counter
273
Collections
Institutional Repository
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

The metatheory of Scala's core type system - the Dependent Object Types (DOT) calculus - is hard to extend, like the metatheory of other type systems combining subtyping and dependent types. Soundness of important Scala features therefore remains an open problem in theory and in practice. To address some of these problems, we use a semantics-first approach to develop a logical relations model for a new version of DOT, called guarded DOT (gDOT). Our logical relations model makes use of an abstract form of step-indexing, as supported by the Iris framework, to model various forms of recursion in gDOT. To demonstrate the expressiveness of gDOT, we show that it handles Scala examples that could not be handled by previous versions of DOT, and prove using our logical relations model that gDOT provides the desired data abstraction. The gDOT type system, its semantic model, its soundness proofs, and all examples in the paper have been mechanized in Coq.