Parametricity as subtyping

A polymorphic function is parametric if it has uniform behavior for all type parameters. This property is useful when writing, reasoning about, and compiling functional programs. We show how to syntactically define and reason about parametricity in a language with intersection types and bounded polymorphism. Within this framework, parametricity is subtyping, and reasoning about parametricity becomes reasoning about the well-typedness of terms. This work also demonstrates the expressiveness of languages that combine intersection types and bounded polymorphism.

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

[2]  Harry G. Mairson Outline of a Proof Theory of Parametricity , 1991, FPCA.

[3]  Peter J. Freyd Structural Polymorphism , 1993, Theor. Comput. Sci..

[4]  Peter Lee,et al.  Metacircularity in the Polymorphic lambda-Calculus , 1991, Theor. Comput. Sci..

[5]  Philip Wadler,et al.  Theorems for free! , 1989, FPCA.

[6]  Luca Cardelli,et al.  An Extension of System F with Subtyping , 1994, Inf. Comput..

[7]  B. Pierce Programming with intersection types, union types, and polymorphism , 1991 .

[8]  B. Pierce Programming with intersection types and bounded polymorphism , 1992 .

[9]  Benjamin C. Pierce,et al.  Bounded quantification is undecidable , 1992, POPL '92.

[10]  John C. Reynolds,et al.  Preliminary design of the programming language Forsythe , 1988 .

[11]  John C. Mitchell,et al.  Second-Order Logical Relations (Extended Abstract) , 1985, Logic of Programs.

[12]  Giorgio Ghelli,et al.  Coherence of Subsumption , 1990, CAAP.

[13]  Frank Pfenning,et al.  Inductively Defined Types in the Calculus of Constructions , 1989, Mathematical Foundations of Programming Semantics.

[14]  Samson Abramsky,et al.  A relational approach to strictness analysis for higher-order polymorphic functions , 1991, POPL '91.

[15]  Gary T. Leavens,et al.  Typed Homomorphic Relations Extended with Sybtypes , 1991, MFPS.

[16]  Peter Lee,et al.  LEAP: A Language with Eval And Polymorphism , 1989, TAPSOFT, Vol.2.

[17]  Giorgio Ghelli,et al.  Subtyping + Extensionality: Confluence of beta-eta-top reduction in F<= , 1991, TACS.

[18]  Mariangiola Dezani-Ciancaglini,et al.  Functional Characters of Solvable Terms , 1981, Math. Log. Q..

[19]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[20]  John C. Reynolds,et al.  Towards a theory of type structure , 1974, Symposium on Programming.

[21]  John C. Reynolds,et al.  Types, Abstraction and Parametric Polymorphism , 1983, IFIP Congress.

[22]  Andre Scedrov,et al.  Functorial Polymorphism , 1990, Theor. Comput. Sci..

[23]  John C. Reynolds,et al.  The Coherence of Languages with Intersection Types , 1991, TACS.

[24]  John C. Reynolds,et al.  Types, Abstractions, and Parametric Polymorphism, Part 2 , 1991, MFPS.