Extending Pruning Techniques to Polymorphic Second order Lambda-Calculus

Type theory and constructive logics allow us, from a proof of a formula, to extract a program that satisfies the specification expressed by this formula. Normally, programs extracted in this way are inefficient. Optimization algorithms for these programs have been developed. In this paper we show an algorithm to optimize programs represented by second order typed λ-terms. We prove also that the simplified programs are observational equivalent to the original ones.