Verifying Haskell Programs by Combining Testing and Proving

  • Authors:
  • Peter Dybjer;Qiao Haiyan;Makoto Takeyama

  • Affiliations:
  • -;-;-

  • Venue:
  • QSIC '03 Proceedings of the Third International Conference on Quality Software
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

We propose a method for improving confidence in thecorrectness of Haskell programs by combining testing andproving. Testing is used for debugging programs and specificationbefore 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 thatis guaranteed to be correct. To demonstrate the method wehave extended the Agda/Alfa proof assistant for dependenttype theory with a tool for random testing. As an examplewe show how the correctness of a BDD-algorithm written inHaskell is verified by testing properties of component functions.We also discuss faithful translations from Haskell totype theory.