Arrow Research search
Back to CSL

CSL 2005

Bounded Model Checking of Pointer Programs

Conference Paper Verification and Model Checking Logic in Computer Science · Theoretical Computer Science

Abstract

Abstract We propose a bounded model checking procedure for programs manipulating dynamically allocated pointer structures. Our procedure checks whether a program execution of length n ends in an error (e. g. a NULL dereference) by testing if the weakest precondition of the error condition together with the initial condition of the program (e. g. program variable x points to a circular list) is satisfiable. We express error conditions as formulas in the 2-variable fragment of the Bernays-Schönfinkel class with equality. We show that this fragment is closed under computing weakest preconditions. We express the initial conditions by unary relations which are defined by monadic Datalog programs. Our main contribution is a small model theorem for the 2-variable fragment of the Bernays-Schönfinkel class extended with least fixed points expressible by certain monadic Datalog programs. The decidability of this extension of first-order logic gives us a bounded model checking procedure for programs manipulating dynamically allocated pointer structures. In contrast to SAT-based bounded model checking, we do not bound the size of the heap a priori, but allow for pointer structures of arbitrary size. Thus, we are doing bounded model checking of infinite state transition systems.

Authors

Keywords

No keywords are indexed for this paper.

Context

Venue
Annual Conference on Computer Science Logic
Archive span
1988-2026
Indexed papers
1413
Paper id
507345997090232938
v2026.09.13