Third International Conference On Quality Software Verifying Haskell Programs by Combining Testing and Proving Dallas, Texas November 06-November 07 ISBN: 0-7695-2015-4
We propose a method for improving confidence in the correctness of Haskell programs by combining testing and proving. Testing is used for debugging programs and specification before a costly proof attempt. During a proof development, testing also quickly eliminates wrong conjectures. Proving helps us to decompose a testing task in a way that is guaranteed to be correct. To demonstrate the method we have extended the Agda/Alfa proof assistant for dependent type theory with a tool for random testing. As an example we show how the correctness of a BDD-algorithm written in Haskell is verified by testing properties of component functions. We also discuss faithful translations from Haskell to type theory.
Index Terms:
program verification, random testing, proof-assistants, type theory, BDDs and Haskell
Citation:
Peter Dybjer, Qiao Haiyan, Makoto Takeyama, "Verifying Haskell Programs by Combining Testing and Proving," qsic, pp.272, Third International Conference On Quality Software, 2003 Usage of this product signifies your acceptance of the Terms of Use. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||