This program is tentative and subject to change.
Refinement types—types qualified with logical predicates—have proven effective for lightweight verification in languages like Liquid Haskell, F*, and Dafny. However, in these systems refinements are either written in a separate specification language or treated as second-class annotations, disconnected from the host language's type system. This disconnect creates usability barriers: programmers must maintain two mental models, and refinements cannot interact with features like type inference, subtyping, or overloading.
We present the design of first-class refinement types for Scala 3, where refinements are ordinary types that participate in subtyping, inference, and pattern matching alongside existing language features. We prove type soundness of a core, pure calculus mechanized in Rocq, combining dependent function types, bounded polymorphism, positive equi-recursive types, union and intersection types, and refinement types, using a fuel-bounded definitional interpreter and semantic typing. A distinctive design choice is our partial-correctness semantics: predicates are arbitrary terms that may diverge, and type soundness requires no termination assumptions. Finally, we implement our design as a prototype extension of the Scala 3 compiler with a lightweight e-graph-based solver for predicate entailment.
This program is tentative and subject to change.
Tue 6 OctDisplayed time zone: Pacific Time (US & Canada) change
15:30 - 17:00 | Refinement Types and Functional ProgrammingOOPSLA at East Hall 2 Chair(s): Nadia Polikarpova University of California at San Diego | ||
15:30 18mTalk | PLEX: Normalization for Refinement Types OOPSLA Alessio Ferrarini IMDEA Software Institute; Universidad Politécnica de Madrid, Niki Vazou IMDEA Software Institute, Wouter Swierstra Utrecht University Link to publication DOI | ||
15:48 18mTalk | First-Class Refinement Types for Scala OOPSLA DOI Pre-print | ||
16:06 18mTalk | Effectively Propositional Higher-Order Functional Programming OOPSLA Nicholas V. Lewchenko University of Colorado Boulder, Kunha Kim University of Colorado Boulder, Bor-Yuh Evan Chang University of Colorado Boulder; Amazon, Gowtham Kaki University of Colorado Boulder DOI | ||
16:24 18mTalk | DeCo: A Core Calculus for Incremental Functional Programming with Generic Data Types OOPSLA Timon Böhler TU Darmstadt, Tobias Reinhard TU Darmstadt, David Richter TU Darmstadt, Mira Mezini Technische Universität Darmstadt; ATHENE; hessian.AI DOI Pre-print | ||