English

Bounded Model Checking of Pointer Programs Revisited

Logic in Computer Science 2016-03-02 v1 Programming Languages

Abstract

Bounded model checking of pointer programs is a debugging technique for programs that manipulate dynamically allocated pointer structures on the heap. It is based on the following four observations. First, error conditions like dereference of a dangling pointer, are expressible in a~fragment of first-order logic with two-variables. Second, the fragment is closed under weakest preconditions wrt. finite paths. Third, data structures like trees, lists etc. are expressible by inductive predicates defined in a fragment of Datalog. Finally, the combination of the two fragments of the two-variable logic and Datalog is decidable. In this paper we improve this technique by extending the expressivity of the underlying logics. In a~sequence of examples we demonstrate that the new logic is capable of modeling more sophisticated data structures with more complex dependencies on heaps and more complex analyses.

Keywords

Cite

@article{arxiv.1602.09061,
  title  = {Bounded Model Checking of Pointer Programs Revisited},
  author = {Witold Charatonik and Piotr Witkowski},
  journal= {arXiv preprint arXiv:1602.09061},
  year   = {2016}
}
R2 v1 2026-06-22T13:00:06.492Z