| | |
Summary: A Logic for Parametric Polymorphism
Gordon Plotkin \Lambda Mart'in Abadi y
Abstract
In this paper we introduce a logic for parametric polymorphism. Just as LCF is a
logic for the simplytyped –calculus with recursion and arithmetic, our logic is a logic for
System F. The logic permits the formal presentation and use of relational parametricity.
Parametricity yields---for example---encodings of initial algebras, final coalgebras and
abstract datatypes, with corresponding proof principles of induction, coinduction and
simulation.
1 Introduction
In this paper we introduce a logic for parametric polymorphism, in the binary relational
sense of Reynolds [Rey83]. Just as LCF is a firstorder logic for the simplytyped –calculus,
with recursion and arithmetic, so our logic is a secondorder logic for System F. It is intended
as a step towards a general logic of polymorphically typed programs. The terms are those
of the secondorder –calculus, and the formulae are built from equations and relations by
propositional operators and quantifiers over elements of types, or over types, or over relations
between types. The logic permits the formal presentation and use of relational parametricity,
which is expressed by an axiom schema. Parametricity yields---for example---encodings of
initial algebras, final coalgebras and abstract datatypes, with corresponding proof principles
of induction, coinduction and simulation.
|