On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
Handbook of theoretical computer science (vol. B)
A calculus for overloaded functions with subtyping
Information and Computation
ACM Computing Surveys (CSUR)
A practical subtyping system for Erlang
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dependent types in practical programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Labeling techniques and typed fixed-point operators
Higher order operational techniques in semantics
A Theory of Objects
The Definition of Standard ML
Structural Recursive Definitions in Type Theory
ICALP '98 Proceedings of the 25th International Colloquium on Automata, Languages and Programming
STACS '87 Proceedings of the 4th Annual Symposium on Theoretical Aspects of Computer Science
Constructor Subtyping in the Calculus of Inductive Constructions
FOSSACS '00 Proceedings of the Third International Conference on Foundations of Software Science and Computation Structures: Held as Part of the Joint European Conferences on Theory and Practice of Software,ETAPS 2000
Type Isomorphisms and Proof Reuse in Dependent Type Theory
FoSSaCS '01 Proceedings of the 4th International Conference on Foundations of Software Science and Computation Structures
Hi-index | 0.00 |
Constructor subtyping is a form of subtyping in which an inductive type σ is viewed as a subtype of another inductive type Τ if Τ has more constructors than σ. As suggested in [5,12], its (potential) uses include proof assistants and functional programming languages. In this paper, we introduce and study the properties of a simply typed λ-calculus with record types and datatypes, and which supports record subtyping and constructor subtyping. In the first part of the paper, we show that the calculus is confluent and strongly normalizing. In the second part of the paper, we show that the calculus admits a well-behaved theory of canonical inhabitants, provided one adopts expansive extensionality rules, including η-expansion, surjective pairing, and a suitable expansion rule for datatypes. Finally, in the third part of the paper, we extend our calculus with unbounded recursion and show that confluence is preserved.