Scala step-by-step

Soundness for DOT with step-indexed logical relations in Iris

Journal Article (2020)
Author(s)

P.G. Giarrusso (TU Delft - Programming Languages)

Leo Stefanesco (Université de Paris)

Amin Timany (Aarhus University)

Lars Birkedal (Aarhus University)

Robbert Krebbers (TU Delft - Programming Languages)

Research Group
Programming Languages
Copyright
© 2020 P.G. Giarrusso, Leo Stefanesco, Amin Timany, Lars Birkedal, R.J. Krebbers
DOI related publication
https://doi.org/10.1145/3408996
More Info
expand_more
Publication Year
2020
Language
English
Copyright
© 2020 P.G. Giarrusso, Leo Stefanesco, Amin Timany, Lars Birkedal, R.J. Krebbers
Research Group
Programming Languages
Issue number
ICFP
Volume number
4
Pages (from-to)
114:1 - 114:29
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.