Principles and Applications of Refinement Types - Gordon, Andy; Fournet, Cédric (2009)
A refinement type x:T|C is the subset of the type T consisting of the values x to satisfy the formula C. In these tutorial notes we explain the principles of refinement types by developing from first principles a concurrent lambda-calculus whose type system supports refinement types. Moreover, we describe a series of applications of our refined type theory and of related systems.