A subtyping 0 is entailed by a set of subtyping constraints C, written C j= 0, if every valuation (mapping of type variables to ground types) that satisfies C also satisfies 0. ...
Refinement types sharpen systems of simple and dependent types by offering expressive means to more precisely classify well-typed terms. We present a system of refinement types for...
Inheritance is one of the key features in object-oriented design and analysis. It especially supports an incremental development by allowing to stepwise add new functionality to an...
We show how extensible records with structural subtyping can be represented directly in Higher-Order Logic (HOL). Exploiting some specific properties of HOL, this encoding turns o...
We propose union types for statically typed class-based objectoriented languages as a means to enhance the flexibility of subtyping. As its name suggests, a union type can be con...