MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Using a software testing technique to improve theorem proving (2004) [3 citations — 2 self]

Download:
Download as a PDF
by Reiner Hähnle, Angela Wallenburg
Post Conference Proceedings, FATES 2003, volume 2931 of LNCS
http://www.math.chalmers.se/~reiner/papers/fates.pdf
Add To MetaCart

Abstract:

Abstract. 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. 1

Citations

627 Dynamic Logic – Harel - 1984
157 Toward a Theory of Test Data Selection – Goodenough, Gerhart - 1975
124 Partition testing does not inspire confidence – Hamlet, Taylor - 1990
87 Reliability of the path analysis testing strategy – Howden - 1976
63 Theories of program testing and the application of revealing subdomains – Weyuker, Ostrand - 1980
58 A dynamic logic for the formal verification of Java Card programs – Beckert - 2001
43 Automatic generation of program specifications – Nimmer, Ernst - 2002
31 Program proving as hand simulation with a little induction – Burstall - 1974
28 Partition analysis: A method combining testing and verification – Richardson, Clarke - 1985
22 The KeY system: Integrating object-oriented design and formal methods – Ahrendt, Baar, et al. - 2002
19 Derivation and use of induction schemes in higher-order logic – Slind - 1997
10 Test data as an aid in proving program correctness – Geller - 1978
7 Program verification by symbolic execution and induction – Heisel, Reif, et al. - 1987
6 An interactive verification system based on dynamic logic – Hahnle, Heisel, et al. - 1986
3 Verification of hardware systems with first-order logic – Claessen, Hähnle, et al. - 2002
2 T.J.: Theories of Program Testing and the Application of Revealing Subdomains – Weyuker, Ostrand - 1980