Effectively Propositional Higher-Order Functional Programming
Decidable automation is a key feature of program verification tools, which makes them easier for non-expert developers to use and understand. Unfortunately, decidable fragments of logic are very restrictive, and not ideal for the expression of idiomatic programs. The decidable {\em Extended EPR} fragment, combined with an encoding technique called {\em relational abstraction}, has seen wide use for its ability to handle both quantifiers and uninterpreted functions. However, the complexity of the relational abstraction encoding, combined with its inherent incompleteness, still poses a significant obstacle to non-experts.
In this paper, we show that Extended EPR and relational abstraction can be deployed to achieve decidable, quantified verification within a familiar, principled domain: a higher-order, purely-functional programming language. We observe that, by defining the semantics of our language in terms of partial functions, we obtain a well-behaved, three-valued logic that matches the behavior of the relational abstraction encoding while hiding its complexity. We demonstrate that our prototype implementation can ergonomically replicate EPR-based program verification benchmarks and verify recursive programs on inductive datatypes.
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 | ||