This program is to verify (or to put into question) strictness conditions
on free theorems that arise if a polymorphic lambda calculus is enriched by
general recursion.
Given a type the program either returns an instance of the corresponding
unrestricted free theorem that does not hold and thereby verifies the need
of the additional restrictions or it returns without finding such an
instantiation and thereby suggests (but not proves) that the strictness
conditions are superfluous.
The underlying algorithm is described in "Automatically Generating
Counterexamples to Naive Free Theorems" (FLOPS'10) by Daniel Seidel and Janis
Voigtländer.
A webinterface for the program is also available at
http://www-ps.iai.uni-bonn.de/cgi-bin/exfind.cgi.
Related to this package you may be interested in the online free theorem generator
at http://www-ps.iai.uni-bonn.de/ft that is also available offline via
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/free-theorems-webui.
Also interesting may be the tool polyseq that generates "optimal" free theorems in a
polymorphic lambda calculus with selective strictness.
Polyseq can be downloaded at
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/polyseq
but the functionality is as well provided via a webinterface at
http://www-ps.iai.uni-bonn.de/cgi-bin/polyseq.cgi.