Free theorems for functional logic programs

Jan Christiansen, Daniel Seidel, Janis Voigtländer. Free theorems for functional logic programs. In Cormac Flanagan, Jean-Christophe Filliâtre, editors, Proceedings of the 4th ACM Workshop Programming Languages meets Program Verification, PLPV 2010, Madrid, Spain, January 19, 2010. pages 39-48, ACM, 2010. [doi]

Abstract

Type-based reasoning is popular in functional programming. In particular, parametric polymorphism constrains functions in such a way that statements about their behavior can be derived without consulting function definitions. Is the same possible in a strongly, and polymorphically, typed functional logic language? This is the question we study in this paper. Logical features like nondeterminism and free variables cause interesting effects, which we examine based on examples and address by identifying appropriate conditions that guarantee standard free theorems or inequational versions thereof to hold. We see this case study as a stepping stone for a general theory, not provided here, involving the definition of a logical relation and other machinery required for parametricity arguments appropriate to functional logic languages.

Predecessors

The following are older variants of this publication: