Subtyping with Singleton Types

We give syntax and a PER-model semantics for a typed λ-calculus with subtypes and singleton types. The calculus may be seen as a minimal calculus of subtyping with a simple form of dependent types. The aim is to study singleton types and to take a canny step towards more complex dependent subtyping systems. Singleton types have applications in the use of type systems for specification and program extraction: given a program P we can form the very tight specification {P} which is met uniquely by P. Singletons integrate abbreviational definitions into a type system: the hypothesis x: {M} asserts x=M. The addition of singleton types is a non-conservative extension of familiar subtyping theories. In our system, more terms are typable and previously typable terms have more (non-dependent) types.

[1]  Luca Cardelli,et al.  A Semantic Basis for Quest , 1991, J. Funct. Program..

[2]  Robert Harper,et al.  Type Checking with Universes , 1991, Theor. Comput. Sci..

[3]  Giorgio Ghelli,et al.  Coherence of Subsumption, Minimum Typing and Type-Checking in F<= , 1992, Math. Struct. Comput. Sci..

[4]  Erik Poll,et al.  Pure Type Systems with Definitions , 1994, LFCS.

[5]  Luca Cardelli,et al.  Structural subtyping and the notion of power type , 1988, POPL '88.

[6]  G. Longo,et al.  Lambda-Calculus Models and Extensionality , 1980, Math. Log. Q..

[7]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Information and Computation.

[8]  Kim B. Bruce,et al.  A modest model of records, inheritance and bounded quantification , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[9]  Thierry Coquand,et al.  Inheritance as Implicit Coercion , 1991, Inf. Comput..

[10]  Susumu Hayashi Singleton, Union and Intersection Types for Program Extraction , 1994, Inf. Comput..

[11]  Donald Sannella,et al.  The definition of Extended ML , 1994 .

[12]  Kim B. Bruce,et al.  A Modest Model of Records, Inheritance and Bounded Quantification , 1990, Inf. Comput..