Intensional datatype refinement: With application to scalable verification of pattern-match safety

2Citations
Citations of this article
6Readers
Mendeley users who have this article in their library.

Abstract

The pattern-match safety problem is to verify that a given functional program will never crash due to non-exhaustive patterns in its function definitions. We present a refinement type system that can be used to solve this problem. The system extends ML-style type systems with algebraic datatypes by a limited form of structural subtyping and environment-level intersection. We describe a fully automatic, sound and complete type inference procedure for this system which, under reasonable assumptions, is worst-case linear-time in the program size. Compositionality is essential to obtaining this complexity guarantee. A prototype implementation for Haskell is able to analyse a selection of packages from the Hackage database in a few hundred milliseconds.

Cite

CITATION STYLE

APA

Jones, E., & Ramsay, S. (2021). Intensional datatype refinement: With application to scalable verification of pattern-match safety. Proceedings of the ACM on Programming Languages, 5(POPL). https://doi.org/10.1145/3434336

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free