Automatic verification of pointer programs using monadic second-order logic
The work
| Authors | Jakob L. Jensen; Michael E. Jørgensen; Michael I. Schwartzbach; Nils Klarlund |
|---|---|
| Editors | |
| Type | article |
| Year | 1997 |
| Citekey | jensen1997automatic |
Where it appeared
| Published in | ACM SIGPLAN Notices |
|---|---|
| Publisher | Association for Computing Machinery |
| Volume | 32 |
| Issue | 5 |
| Pages | 226--234 |
Identifiers
| DOI | 10.1145/258916.258936 |
|---|---|
| OpenAlex | W4232408220 |
Access
| Landing page | https://doi.org/10.1145/258916.258936 |
|---|---|
| Free full text | https://dl.acm.org/doi/pdf/10.1145/258916.258936 |
Empty on purpose
| copy |
Abstract
We present a technique for automatic verification of pointer programs based on a decision procedure for the monadic second-order logic on finite strings.We are concerned with a while-fragment of Pascal, which includes recursively-defined pointer structures but excludes pointer arithmetic.We define a logic of stores with interesting basic predicates such as pointer equality, tests for nil pointers, and garbage cells, as well as reachability along pointers.We present a complete decision procedure for Hoare triples based on this logic over loop-free code. Combined with explicit loop invariants, the decision procedure allows us to answer surprisingly detailed questions about small but non-trivial programs. If a program fails to satisfy a certain property, then we can automatically supply an initial store that provides a counterexample.Our technique had been fully and efficiently implemented for linear linked lists, and it extends in principle to tree structures. The resulting system can be used to verify extensive properties of smaller pointer programs and could be particularly useful in a teaching environment.
How it got here
| How it got here | agent via openalex |
|---|---|
| Added | 2026-08-04 00:00 UTC |
| Not denied by | a person 2026-10-29 17:12 UTC |
Filed under
Cite it as
@article{jensen1997automatic,
title = {Automatic verification of pointer programs using monadic second-order logic},
author = {Jakob L. Jensen and Michael E. Jørgensen and Michael I. Schwartzbach and Nils Klarlund},
year = {1997},
journal = {ACM SIGPLAN Notices},
publisher = {Association for Computing Machinery},
volume = {32},
number = {5},
pages = {226--234},
doi = {10.1145/258916.258936},
}
This record lives at https://refs.drheap.org/jensen1997automatic/ and will keep doing so.