Mechanizing programming logics in higher order logic

The work

AuthorsMichael J. C. Gordon
Editors
Typetechreport
Year1988
Also known asgordon2021mechanizing
Citekeygordon1988mechanizing

Where it appeared

Published inCL Technical Reports
Number in seriesUCAM-CL-TR-145

Identifiers

DOI10.48456/tr-145
OpenAlexW6929476711
report_numberUCAM-CL-TR-145

From OpenAlex, which stores abstracts as an index of words and their positions: what is shown is rebuilt from that, and reads fluently whether or not it is what the author wrote.

Abstract

Formal reasoning about computer programs can be based directly on the semantics of the programming language, or done in a special purpose logic like Hoare logic. The advantage of the first approach is that it guarantees that the formal reasoning applies to the language being used (it is well known, for example, that Hoare’s assignment axiom fails to hold for most programming languages). The advantage of the second approach is that the proofs can be more direct and natural. In this paper, an attempt to get the advantages of both approaches is described. The rules of Hoare logic are mechanically derived from the semantics of a simple imperative programming language (using the HOL system). These rules form the basis for a simple program verifier in which verification conditions are generated by LCF-style tactics whose validations use the derived Hoare rules. Because Hoare logic is derived, rather than postulated, it is straightforward to mix semantic and axiomatic reasoning. It is also straightforward to combine the constructs of Hoare logic with other application-specific notations. This is briefly illustrated for various logical constructs, including termination statements, VDM-style ‘relational’ correctness specifications, weakest precondition statements and dynamic logic formulae. The theory underlying the work presented here is well known. Our contribution is to propose a way of mechanizing this theory in a way that makes certain practical details work out smoothly.

A copy is held

pdf, 454.9 kB. Not published — it may be under copyright. The facts and links here are.

How it got here

How it got hereagent via openalex
Added2026-10-22 17:32 UTC
Approved bya person 2026-10-22 17:34 UTC

Cite it as

@techreport{gordon1988mechanizing,
  title        = {Mechanizing programming logics in higher order logic},
  author       = {Michael J. C. Gordon},
  year         = {1988},
  journal      = {CL Technical Reports},
  doi          = {10.48456/tr-145},
}

This record lives at https://refs.drheap.org/gordon1988mechanizing/ and will keep doing so. It used to be called gordon2021mechanizing, and those addresses still resolve to this one.