Verifying properties of well-founded linked lists

The work

TitleVerifying properties of well-founded linked lists
AuthorsShuvendu K. Lahiri; Shaz Qadeer
Typearticle
Year2006
Citekeylahiri2006verifyingb

Where it appeared

Published inACM SIGPLAN Notices
PublisherAssociation for Computing Machinery
Volume41
Issue1
Pages115--126

Identifiers

DOI10.1145/1111320.1111048
OpenAlexW4253618974

Access

Landing pagehttps://doi.org/10.1145/1111320.1111048

Abstract

We describe a novel method for verifying programs that manipulate linked lists, based on two new predicates that characterize reachability of heap cells. These predicates allow reasoning about both acyclic and cyclic lists uniformly with equal ease. The crucial insight behind our approach is that a circular list invariably contains a distinguished head cell that provides a handle on the list. This observation suggests a programming methodology that requires the heap of the program at each step to be well-founded , i.e., for any field f in the program, every sequence u .f, u .f.f, ... contains at least one head cell. We believe that our methodology captures the most common idiom of programming with linked data structures. We enforce our methodology by automatically instrumenting the program with updates to two auxiliary variables representing these predicates and adding assertions in terms of these auxiliary variables.To prove program properties and the instrumented assertions, we provide a first-order axiomatization of our two predicates. We also introduce a novel induction principle made possible by the well-foundedness of the heap. We use our induction principle to derive from two basic axioms a small set of additional first-order axioms that are useful for proving the correctness of several programs.We have implemented our method in a tool and used it to verify the correctness of a variety of nontrivial programs manipulating both acyclic and cyclic singly-linked lists and doubly-linked lists. We also demonstrate the use of indexed predicate abstraction to automatically synthesize loop invariants for these examples.

Copy held

KindPDF, 180.1 kB
Retrieved2026-08-05
Heldlocal, for personal reference
Where it came fromhttps://doi.org/10.1145/1111320.1111048

Where this came from

How it got herethe agent went looking · found via openalex
First seen2026-08-04
Approved2026-08-05

Cite it as

@article{lahiri2006verifyingb,
  title = {Verifying properties of well-founded linked lists},
  author = {Shuvendu K. Lahiri and Shaz Qadeer},
  year = {2006},
  journal = {ACM SIGPLAN Notices},
  volume = {41},
  number = {1},
  pages = {115--126},
  publisher = {Association for Computing Machinery},
  doi = {10.1145/1111320.1111048},
  url = {https://doi.org/10.1145/1111320.1111048},
}

This record lives at https://refs.drheap.org/lahiri2006verifyingb/ and will keep doing so.