On Wed, May 19, 2010 at 01:12:16PM +0000, R J wrote:
> 
> Is this how a rigorous Haskeller would lay out the proofs of the following 
> theorems?  This is Bird 1.4.6.
> (i)                           
> Theorem:  (*) x = (* x)
> Proof:
>       (*) x  =    {definition of partial application}      \y -> x * y  =    
> {commutativity of "*"}      \y -> y * x  =    {definition of "(* x)"}      (* 
> x)
> (ii)
> Theorem:  (+) x = (x +)
> Proof:
>       (+) x  =    {definition of partial application}      \y -> x + y  =    
> {definition of "(x +)"}      (x +)

I would put each step and each {reason} on a separate line (or perhaps
there is something wrong with the way your mail client handles
newlines?) but other than that these look good.

> (iii)
> Theorem:  (-) x /= (- x)
> Proof:
>       (-) x  =    {definition of partial application}      \y -> x - y  /=   
> {definition of prefix negation, which is not a section}      (- x)

This is not a proof.  To prove an inequality like this you should
simply give a counterexample.

-Brent
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to