by Harry G. Mairson
Proc. 5th International Symposium on Functional Programming Languages and Computer Architecture
http://www.cs.brandeis.edu/~mairson/Papers/para.ps.gz
Add To MetaCart
Abstract:
Reynolds ' Parametricity Theorem (also known as the Abstraction Theorem), a result concerning the model theory of the second order polymorphic typed-calculus (F 2), has recently been used by Wadler to prove some unusual and interesting properties of programs. We present a purely syntactic version of the Parametricity Theorem, showing that it is simply an example of formal theorem proving in second order minimal logic over a first order equivalence theory on-terms. We analyze the use of parametricity in proving program equivalences, and show that structural induction is still required: parametricity is not enough. As in Leivant's transparent presentation of Girard's Representation Theorem for F 2, we show that algorithms can be extracted from the proofs, such that if a-term can be proven parametric, we can synthesize from the proof an "equivalent " parametric-term that is moreover F 2-typable. Given that Leivant showed how proofs of termination, based on inductive data types and structural induction, had computational content, we show that inductive data types are indeed parametric, hence providing a connection between the two approaches. 1
Citations
|
1128
|
Monads for functional programming
– Wadler
- 1992
|
|
356
|
The formulas-as-types notion of construction
– Howard
- 1980
|
|
318
|
Towards a theory of type structure
– Reynolds
|
|
266
|
Types, abstraction, and parametric polymorphism
– Reynolds
- 1983
|
|
260
|
Proofs and Types
– Girard, Taylor, et al.
- 1989
|
|
227
|
Interpretation Fonctionelle et Elimination des Coupures dans l'Arithmetique d'Ordre Superieure
– Girard
- 1972
|
|
216
|
Theorems for Free
– Wadler
- 1989
|
|
44
|
Automatic Synthesis of Typed -Programs on Term Algebras
– Bohm, Berarducci
- 1985
|
|
35
|
Logical Relations and the Typed Lambda Calculus
– Statman
|
|
30
|
The semantics of secondorder lambda calculus
– Bruce, Meyer, et al.
- 1990
|
|
26
|
Contracting proofs to programs
– Leivant
- 1990
|
|
26
|
Programming in higher-order typed lambda-calculi
– Pierce, Dietzen, et al.
- 1989
|
|
23
|
The Complexity of Type Inference for Higher-Order Typed Lambda Calculi
– Henglein, Mairson
- 1991
|
|
11
|
Type systems for programming languages, in `Handbook of theoretical computer science' (van Leeuwen, ed
– Mitchell
- 1990
|
|
5
|
A guide to polymorphic types
– Scedrov
- 1990
|
|
3
|
An Introduction to the Polymorphic Lambda Calculus
– Reynolds
- 1988
|
|
2
|
Logic and Structure
– Daalen
- 1979
|
|
1
|
eine bisher noch nict benute Erweiterung des finiten Standpunktes. Dialectica 12
– Uber
- 1958
|