loading...
 This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
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
Peter Dybjer, Chalmers University of Technology, Sweden
Qiao Haiyan, Chalmers University of Technology, Sweden
Makoto Takeyama, Chalmers University of Technology, Sweden
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.