2010 · 46 citations · 22 references
ComputingComputer ScienceFormal MethodsLogicProgramming LanguagesPredicate LogicType SystemsAbstractionDependent TypesKind SystemsLambda CalculusPolymorphic Type SystemsPredicate Logic SemanticsType TheoryType Unification
Reynolds' abstraction theorem shows how a typing judgement in System F can be translated into a relational statement (in second order predicate logic) about inhabitants of the type. We (in second order predicate logic) about inhabitants of the type. We obtain a similar result for a single lambda calculus (a pure type system), in which terms, types and their relations are expressed. Working within a single system dispenses with the need for an interpretation layer, allowing for an unusually simple presentation. While the unification puts some constraints on the type system (which we spell out), the result applies to many interesting cases, including dependently-typed ones.
22
Philip Wadler · 1989 · 776 citations
Types, Abstraction and Parametric Polymorphism.
John Reynolds · IFIP Congress · 1983 · 771 citations
How to make ad-hoc polymorphism less ad hoc
Philip Wadler, Stephen Blott · 1989 · 770 citations · Full text
Andrew Gill, John Launchbury, Simon Jones · 1993 · 415 citations · Full text
Conor McBride, James McKinna · Journal of Functional Programming · 2004 · 327 citations · Full text