Programming language constructs for which it is impossible to obtain good Hoare axiom systems
The work
| Authors | Edmund M. Clarke Jr. |
|---|---|
| Editors | |
| Type | article |
| Year | 1979 |
| Citekey | clarke1979programming |
Where it appeared
| Published in | Journal of the ACM |
|---|---|
| Volume | 26 |
| Issue | 1 |
| Pages | 129--147 |
Identifiers
| DOI | 10.1145/322108.322121 |
|---|
Abstract
Hoare axiom systems for establishing partial correctness of programs may fail to be complete because of (a) incompleteness of the assertion language relative to the underlying interpretation or (b) inability of the assertion language to express the invariants of loops. Cook has shown that if there is a complete proof system for the assertion language (i.e. all true formulas of the assertion language) and if the assertion language satisfies a natural expressibility condition then a sound and complete axiom system for a large subset of Algol may be devised. We exhibit programming language constructs for which it is impossible to obtain sound and complete sets of Hoare axioms even in this special sense of Cook's. These constructs include (i) recursive procedures with procedure parameters in a programming language which uses static scope of identifiers and (ii) coroutines in a language which allows parameterless recursive procedures. Modifications of these constructs for which sound and complete systems of axioms may be obtained are also discussed.
A copy is held
pdf, 1.0 MB. Not published — it may be under copyright. The facts and links here are.
How it got here
| How it got here | agent via bibtex |
|---|---|
| Added | 2026-08-05 00:00 UTC |
| Approved by | a person 2026-08-12 13:50 UTC |
Filed under
Cite it as
@article{clarke1979programming,
title = {Programming language constructs for which it is impossible to obtain good Hoare axiom systems},
author = {Edmund M. Clarke Jr.},
year = {1979},
journal = {Journal of the ACM},
volume = {26},
number = {1},
pages = {129--147},
doi = {10.1145/322108.322121},
}
This record lives at https://refs.drheap.org/clarke1979programming/ and will keep doing so.