• Corpus ID: 6182675

From F to DOT: Type Soundness Proofs with Definitional Interpreters

@article{Rompf2015FromFT,
  title={From F to DOT: Type Soundness Proofs with Definitional Interpreters},
  author={Tiark Rompf and Nada Amin},
  journal={ArXiv},
  year={2015},
  volume={abs/1510.05216}
}
Scala's type system unifies ML modules, object-oriented, and functional programming. The Dependent Object Types (DOT) family of calculi has been proposed as a new foundation for Scala and similar languages. Unfortunately, it is not clear how DOT relates to any well-known type systems, and type soundness has only been established for very restricted subsets. In fact, important Scala features are known to break at least one key metatheoretic property such as environment narrowing or subtyping… 

Figures from this paper

Type Soundness for Dependent Object Types ( DOT ) Tiark Rompf
TLDR
This paper demonstrates how, perhaps surprisingly, a rich DOT calculus that includes recursive type refinement and a subtyping lattice with intersection types can still be proved sound.
Type soundness for dependent object types (DOT)
TLDR
This paper demonstrates how, perhaps surprisingly, a rich DOT calculus that includes recursive type refinement and a subtyping lattice with intersection types can still be proved sound.
Towards Algorithmic Typing for DOT
TLDR
Based on the approach taken in the Scala compiler, the Step Typing and Step Subtyping relations for D<: are presented and it is proved these relations sound and decidable.
Towards algorithmic typing for DOT (short paper)
  • A. Nieto
  • Computer Science
    SCALA@SPLASH
  • 2017
TLDR
Based on the approach taken in the Scala compiler, the Step Typing and Step Subtyping relations for D<: are presented, which are sound and decidable.
κDOT: scaling DOT with mutation and constructors
Scala unifies concepts from object and module systems by allowing for objects with type members which are referenced via path-dependent types. The Dependent Object Types (DOT) calculus of Amin et al.
Mutable WadlerFest DOT
TLDR
This work presents an extension to DOT that adds typed mutable reference cells and presents the key features of the extended calculus and its soundness proof, and discusses the challenges that were encountered in the search for a sound design.
Higher-Order Subtyping with Type Intervals
TLDR
This dissertation proposes type intervals as a unifying concept for expressing (1--3) and other related constructs and develops an extension of F-omega with interval kinds as a formal theory of higher-order subtyping with type intervals, and shows how the familiar concepts ofHigher-order bounded quantification, bounded operator abstraction and singleton kinds can all be encoded in a semantics-preserving way using interval kinds.
Gentrification gone too far? affordable 2nd-class values for fun and (co-)effect
TLDR
This paper formalizes second-class values with stack-bounded lifetimes as an extension to simply-typed λ calculus, and for richer type systems such as F<: and systems with path-dependent types, and proves type soundness and lifetime properties in Coq.
Functional Big-Step Semantics
TLDR
This paper considers an alternative: using a recursive function akini¾?to an interpreter for the language, and believes that this style of semantics is well suited for compiler verification, including proofs of divergence preservation.
Dependent Object Types
TLDR
A new type-theoretic foundation of Scala and languages like it: the Dependent Object Types (DOT) calculus, which normalizes Scala’s type system by unifying the constructs for type members and by providing classical intersection and union types which simplify greatest lower bound and least upper bound computations.
...
...

References

SHOWING 1-10 OF 52 REFERENCES
Foundations of path-dependent types
TLDR
This work explores the design space bottom-up, teasing apart inherent from accidental complexities, while fully mechanizing the authors' models at each step, and presents DOT, which captures the essence - DOT stands for Dependent Object Types.
A Syntactic Approach to Type Soundness
TLDR
A new approach to proving type soundness for Hindley/Milner-style polymorphic type systems by an adaptation of subject reduction theorems from combinatory logic to programming languages and the use of rewriting techniques for the specification of the language semantics is presented.
Dependent Object Types
TLDR
A new type-theoretic foundation of Scala and languages like it: the Dependent Object Types (DOT) calculus, which normalizes Scala’s type system by unifying the constructs for type members and by providing classical intersection and union types which simplify greatest lower bound and least upper bound computations.
Safe type-level abstraction in Scala
TLDR
Scalina is presented, a purely object-oriented calculus that employs the same abstraction mechanisms at the type level as well as at the kind level, and soundness for both levels can be proven by essentially the same arguments.
Featherweight Java: a minimal core calculus for Java and GJ
TLDR
This work extends Featherweight Java with generic classes in the style of GJ and gives a detailed proof of type safety, which formalizes for the first time some of the key features ofGJ.
Mechanized Metatheory for the Masses: The PoplMark Challenge
TLDR
An initial set of benchmarks for measuring progress in this area of programming languages are proposed, based on the metatheory of System F<:, a typed lambda-calculus with second-order polymorphism, subtyping, and records.
Definitional interpreters for higher-order programming languages
TLDR
This work considers the definition of a simple applicative programming language by means of an interpreter written in a similar language, and considers the treatment of imperative features such as jumps and assignment.
A Nominal Theory of Objects with Dependent Types
We design and study vObj, a calculus and dependent type system for objects and classes which can have types as members. Type members can be aliases, abstract types, or new types. The type system can
Putting type annotations to work
TLDR
It is shown that type reconstruction in the Hindley/Milner system can be reduced to the decidable problem of first-order unification under a mixed prefix.
...
...