PLEX: Normalization for Refinement Types
This program is tentative and subject to change.
Refinement types often use SMT solvers to automate program verification.
However, since SMT solvers are first-order, verification of properties
that requires higher-order reasoning is not possible.
Proof by Logical Evaluation (PLE) is an algorithm that
provides a layer between refinement types and SMT solvers that
permits symbolic evaluation of functions, but it lacks support for
higher-order reasoning.
We introduce PLEX, an extension to PLE, that supports $\eta$-expansions,
$\beta$-reductions, and dependent
pattern matching. We prove that PLEX is sound and
terminating, describe its implementation in Liquid Haskell, and evaluate
it on examples that make essential use of
higher-order data, and as such they cannot be handled by PLE. The new
PLEX algorithm bridges the gap between higher-order languages and first-order
SMT solvers via refinement types.
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 Link to publication DOI | ||
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 | ||