MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Recursive Subtyping Revealed (2000) [27 citations — 3 self]

by Vladimir Gapeyev ,  Michael Levin ,  Benjamin Pierce
Journal of Functional Programming
Add To MetaCart

Abstract:

Algorithms for checking subtyping between recursive types lie at the core of many programming language implementations. But the fundamental theory of these algorithms and how they relate to simpler declarative specifications is not widely understood, due in part to the difficulty of the available introductions to the area. This tutorial paper offers an "end-to-end" introduction to recursive types and subtyping algorithms, from basic theory to efficient implementation, set in the unifying mathematical framework of coinduction. 1. INTRODUCTION Recursively defined types in programming languages and lambda-calculi come in two distinct varieties. Consider, for example, the type X described by the equation X = Nat!(Nat\ThetaX): An element of X is a function that maps a number to a pair consisting of a number and a function of the same form. This type is often written more concisely as X.Nat!(Nat\ThetaX). A variety of familiar recursive types such as lists and trees can be defined analogou...

Citations

2701 Communication and Concurrency – Milner - 1989
1077 A Calculus for Communication Systems – Milner - 1980
751 Introduction to Lattices and Order – Davey, Priestley - 1991
368 A lattice--theoretical fixpoint theorem and its applications – Tarski - 1955
279 Subtyping recursive types – Amadio, Cardelli - 1993
149 An Introduction to Inductive Definitions – Aczel - 1977
124 Regular expression types for XML – Hosoya, Vouillon, et al. - 2005
120 Fundamental properties of infinite trees – Courcelle - 1983
111 Lambda Calculus Models of Programming Languages – Morris - 1982
70 The Liar: An Essay on Truth and Circularity – Barwise, Etchemendy - 1987
69 Co-induction in relational semantics – Milner, Tofte - 1991
66 What is a recursive module – Crary, Harper, et al. - 1999
45 F.: Coinductive axiomatization of recursive type equality and subtyping – Brandt, Henglein - 1998
41 Type inference with recursive types: Syntax and semantics – Cardone, Coppo - 1991
22 A tutorial on co-induction and functional programming – Gordon - 1994
21 Ecient Recursive Subtyping – Kozen, Palsberg, et al. - 1995
13 Type inference in systems of recursive types with subtyping. Manuscript, available at http://www.cs.purdue.edu/homes/palsberg/publications.html – Jim, Palsberg - 1999
2 Non-Well-Founded Sets. Stanford Center for the Study of Language and Information – Aczel - 1988