Using a Software Testing Technique to Improve Theorem Proving
Paper in proceeding, 2004

Most efforts to combine formal methods and software testing go in the direction of exploiting formal methods to solve testing problems, most commonly test case generation. Here we take the reverse viewpoint and show how the technique of partition testing can be used to improve a formal proof technique (induction for correctness of loops). We first compute a partition of the domain of the induction variable, based on the branch predicates in the program code of the loop we wish to prove. Based on this partition we derive a partitioned induction rule, which is (hopefully) easier to use than the standard induction rule. In particular, with an induction rule that is tailored to the program to be verified, less user interaction can be expected to be required in the proof. We demonstrate with a number of examples the practical efficiency of our method.

mathematical induction

software testing

interactive theorem proving

partition analysis

program verification


Angela Wallenburg

University of Gothenburg

Reiner Hähnle

Chalmers, Department of Computing Science

Chalmers, Department of Computing Science, Formal Methods

Formal Approaches to Software Testing

Vol. LNCS 2931 30-41
3-540-20894-1 (ISBN)

Subject Categories

Computer Science



More information