Bounded Refinement Types
Programming Languages
2015-07-03 v1 Software Engineering
Abstract
We present a notion of bounded quantification for refinement types and show how it expands the expressiveness of refinement typing by using it to develop typed combinators for: (1) relational algebra and safe database access, (2) Floyd-Hoare logic within a state transformer monad equipped with combinators for branching and looping, and (3) using the above to implement a refined IO monad that tracks capabilities and resource usage. This leap in expressiveness comes via a translation to "ghost" functions, which lets us retain the automated and decidable SMT based checking and inference that makes refinement typing effective in practice.
Keywords
Cite
@article{arxiv.1507.00385,
title = {Bounded Refinement Types},
author = {Niki Vazou and Alexander Bakst and Ranjit Jhala},
journal= {arXiv preprint arXiv:1507.00385},
year = {2015}
}
Comments
14 pages, International Conference on Functional Programming, ICFP 2015