On 25/10/2010, at 7:09 PM, Romain Demeyer wrote:
> I'm working on static verification in Haskell, and I search for existing 
> works on specification of Haskell programs (such as pre/post conditions, for 
> example) or any other functional language.

We have used Haskell extensively in the verification of the seL4 microkernel. 
One part of that was translating a prototype of the kernel into Isabelle and 
proving a large number of invariants as well as proving two refinement theorems 
about the translation. For our work the translation itself was not correctness 
critical, so we were happy to use our own somewhat ad-hoc tool for it.

Some papers on this are:

Pre/post verification and refinement of state monad programs:
http://www.cse.unsw.edu.au/~kleing/papers/Cock_KS_08.html

Experience report on the Haskell verification:
http://www.cse.unsw.edu.au/~kleing/papers/Klein_DE_09.html

The whole picture:
http://www.cse.unsw.edu.au/~kleing/papers/sosp09.html

More papers here: 
http://www.ertos.nicta.com.au/research/l4.verified/pubs.pml

In general, if your program does not use state monads, but is just a simple, 
straightforward functional program, the combination of Haskabelle and 
Isabelle/HOL can work quite nicely without a big formal apparatus such as a 
pre/post calculus. You can just state properties directly as you might in 
quickcheck.


> It would be great if there exists a prover based on this kind of 
> specifications. I already found the ESC/Haskell. Do you know some other works 
> which could be interesting?

We're using Isabelle/HOL. In the work above this was together with our own 
translator from Haskell to Isabelle, in the future it will possibly Haskabelle 
which has already been pointed out.

Cheers,
Gerwin

_______________________________________________
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to