First International Conference on Software Engineering and Formal Methods (SEFM'03)
Light-Weight Theorem Proving for Debugging and Verifying Units of Code
Brisbane, Australia
September 22-September 27
ISBN: 0-7695-1949-0
Software bugs are very difficult to detect even in small units of code. Several techniques to debug or prove correct such units are based on the generation of a set of formulae whose unsatisfiability reveals the presence of an error. These techniques assume the availability of a theorem prover capable of automatically discharging the resulting proof obligations. Building such a tool is a difficult, long, and error-prone activity. In this paper, we describe techniques to build provers which are highly automatic and flexible by combining state-of-the-art superposition theorem provers and BDDs. We report experimental results on formulae extracted from the debugging of C functions manipulating pointers showing that an implementation of our techniques can discharge proof obligations which cannot be handled by Simplify (the theorem prover used in the ESC/Java tool) and performs much better on others.
Citation:
David Déharbe, Silvio Ranise, "Light-Weight Theorem Proving for Debugging and Verifying Units of Code," sefm, pp.220, First International Conference on Software Engineering and Formal Methods (SEFM'03), 2003