The Impact of seq on Free Theorems-Based Program Transformations

Authors: P. Johann and J. Voigtländer
Published: Fundamenta Informaticae, volume 69(1-2), pages 63-102, IOS Press, 2006.
BibTeX: JV06.bib
Abstract: Parametric polymorphism constrains the behavior of pure functional programs in a way that allows the derivation of interesting theorems about them solely from their types, i.e., virtually for free. Unfortunately, standard parametricity results - including so-called free theorems - fail for nonstrict languages supporting a polymorphic strict evaluation primitive such as Haskell's seq. A folk theorem maintains that such results hold for a subset of Haskell corresponding to a Girard-Reynolds calculus with fixpoints and algebraic datatypes even when seq is present provided the relations which appear in their derivations are required to be bottom-reflecting and admissible. In this paper we show that this folklore is incorrect, but that parametricity results can be recovered in the presence of seq by restricting attention to left-closed, total, and admissible relations instead. The key novelty of our approach is the asymmetry introduced by left-closedness, which leads to "inequational" versions of standard parametricity results together with preconditions guaranteeing their validity even when seq is present. We use these results to derive criteria ensuring that both equational and inequational versions of short cut fusion and related program transformations based on free theorems hold in the presence of seq.
Download: TheImpactOfSeqOnFreeTheoremsBasedProgramTransformations.pdf
Rights: Copyright held by the authors. Exclusive publishing license granted to IOS Press.
Slides: Slides of a talk I gave about this paper are here.