[Haskell] Announce: revamped free theorems generator

Janis Voigtländer jv at informatik.uni-bonn.de
Tue Jun 22 10:56:19 EDT 2010


Jean-Philippe Bernardy schrieb:
> On Tue, Jun 22, 2010 at 1:32 PM, Janis Voigtländer
> <jv at informatik.uni-bonn.de> wrote:
> 
>>> I need to read his paper again for the proof idea. Maybe I'll find a
>>> counter example then.
>> In personal communication, Jean-Philippe added that for your type "(Bool
>> -> a) -> a" the statement that any such function is either ($True) or
>> ($False) does *not* follow from the results in that paper. So I gather
>> that you will find neither proof nor counterexample for the more general
>> statement in that paper either. (It's worth reading nevertheless!)
> 
> Actually I had misread the type. Transforming
> 
> forall a. (Bool -> a) -> a
> 
> into
> 
> Bool
> 
> is a direct consequence of our main theorem.

Good!

> In fact it is a consequence of the simpler theorem:
> 
> forall a. (F a -> a) -> a = μ F

I like your use of the word "simpler" here. :-)

And this now reminds me of Wadler's note "Recursive types for free!"
which is of course just that, and should be able to answer Sebastian's
question in many cases:

http://homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/free-rectypes.txt

Ciao,
Janis.

-- 
Jun.-Prof. Dr. Janis Voigtländer
http://www.iai.uni-bonn.de/~jv/
mailto:jv at iai.uni-bonn.de


More information about the Haskell mailing list