• 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