DocumentCode :
2136987
Title :
Light-weight theorem proving for debugging and verifying units of code
Author :
Déharbe, David ; Ranise, Silvio
Author_Institution :
INRIA-Lorraine, Lorraine, France
fYear :
2003
fDate :
22-27 Sept. 2003
Firstpage :
220
Lastpage :
228
Abstract :
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 perform much better on others.
Keywords :
binary decision diagrams; program compilers; program debugging; program testing; program verification; programming language semantics; theorem proving; BDD; binary decision diagrams; code verification; correctness proving; program debugging; proof obligation; theorem proving; Boolean functions; Computer bugs; Data structures; Debugging; Error correction; Gold; Java; Logic; Programming profession; Simultaneous localization and mapping;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Engineering and Formal Methods, 2003.Proceedings. First International Conference on
Conference_Location :
Brisbane, Queensland, Australia
Print_ISBN :
0-7695-1949-0
Type :
conf
DOI :
10.1109/SEFM.2003.1236224
Filename :
1236224
Link To Document :
بازگشت