Write a Blog >>
Thu 23 Jan 2020 14:00 - 14:21 at POPL-A - Type Systems

Dependent Object Types (DOT) is a calculus with path dependent types, intersection types, and object self-references, which serves as the core calculus of Scala 3. Although the calculus has been proven sound, it remains open whether type checking in DOT is decidable. In this paper, we establish undecidability proofs of type checking and subtyping of D<:, a syntactic subset of DOT. It turns out that even for D<:, undecidability is surprisingly difficult to show, as evidenced by counterexamples for past attempts. To prove undecidability, we discover an equivalent definition of the D<: subtyping rules in normal form. Besides being easier to reason about, this definition makes the phenomenon of bad bounds explicit as a single inference rule. After removing this rule, we discover two decidable fragments of D<: subtyping and identify algorithms to decide them. We prove soundness and completeness of the algorithms with respect to the fragments, and we prove that the algorithms terminate. Our proofs are mechanized in a combination of Coq and Agda.

This program is tentative and subject to change.

Thu 23 Jan

POPL-2020-Research-Papers
14:00 - 15:05: Research Papers - Type Systems at POPL-A
POPL-2020-Research-Papers14:00 - 14:21
Talk
Jason Z.S. HuMcGill University, Ondřej LhotákUniversity of Waterloo
POPL-2020-Research-Papers14:21 - 14:43
Talk
Julian MackayVictoria University of Wellington, Alex PotaninVictoria University of Wellington, Jonathan AldrichCarnegie Mellon University, Lindsay GrovesVictoria University of Wellington
POPL-2020-Research-Papers14:43 - 15:05
Talk
Stephen ChangNortheastern University, Michael BallantynePLT @ Northeastern University, Milo TurnerNortheastern University, William J. BowmanUniversity of British Columbia