Verifying Haskell programs by combining testing and proving
Paper i proceeding, 2003

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.

proof-assistants

random testing

BDDs and Haskell

program verification

type theory

Författare

Peter Dybjer

Chalmers, Institutionen för datavetenskap, Programmeringslogik

Haiyan Qiao

Chalmers, Institutionen för datavetenskap, Programmeringslogik

Makoto Takeyama

Chalmers, Institutionen för datavetenskap, Programmeringslogik

Proceedings 3rd International Conference on Quality Software, IEEE Computer Society Press

1550-6002 (ISSN)

272-279

Ämneskategorier

Annan matematik

DOI

10.1109/QSIC.2003.1319111

ISBN

0-7695-2015-4