Explicit Refinement Types
Programming Languages
2023-11-27 v1
Abstract
We present {\lambda}ert, a type theory supporting refinement types with explicit proofs. Instead of solving refinement constraints with an SMT solver like DML and Liquid Haskell, our system requires and permits programmers to embed proofs of properties within the program text, letting us support a rich logic of properties including quantifiers and induction. We show that the type system is sound by showing that every refined program erases to a simply-typed program, and by means of a denotational semantics, we show that every erased program has all of the properties demanded by its refined type. All of our proofs are formalised in Lean 4.
Keywords
Cite
@article{arxiv.2311.13995,
title = {Explicit Refinement Types},
author = {Jad Elkhaleq Ghalayini and Neel Krishnaswami},
journal= {arXiv preprint arXiv:2311.13995},
year = {2023}
}
Comments
31 pages, published at ICFP 2023