Practical Refinement-Type Checking (1997)
Cached
Download Links
| Citations: | 25 - 1 self |
BibTeX
@TECHREPORT{Davies97practicalrefinement-type,
author = {Rowan Davies and Frank Pfenning},
title = {Practical Refinement-Type Checking},
institution = {},
year = {1997}
}
Years of Citing Articles
OpenURL
Abstract
Refinement types allow many more properties of programs to be expressed and statically checked than conventional type systems. We present a practical algorithm for refinement-type checking in a -calculus enriched with refinement-type annotations. We prove that our basic algorithm is sound and complete, and show that every term which has a refinement type can be annotated as required by our algorithm. Our positive experience with an implementation of an extension of this algorithm to the full core language of Standard ML demonstrates that refinement types can be a practical program development tool in a realistic programming language. The required refinement type definitions and annotations are not much of a burden and serve as formal, machine-checked explanations of code invariants which otherwise would remain implicit. 1 Introduction The advantages of statically-typed programming languages are well known, and have been described many times (e.g. see [Car97]). However, conventional ty...







