Proving a Computer Correct with the LCF_LSM Hardware Verification System

The work

AuthorsMike Gordon
Editors
Typetechreport
Year1983
Citekeygordon1983proving

Where it appeared

PublisherUniversity of Cambridge Computer Laboratory
Number in seriesUCAM-CL-TR-42
SchoolUniversity of Cambridge Computer Laboratory

Identifiers

report_numberUCAM-CL-TR-42
ISSN1476-2986

Empty on purpose

doi

Related

Distinct frombasin1991formally
Distinct fromcamilleri1988simulation
Distinct fromcantuortiz1997proof
Distinct fromcardelli1982algebraic
Distinct fromcohn1986mechanized
Distinct fromgordon1983lcflsm
Distinct fromgordon1985formal
Distinct fromgordon1985hol
Distinct fromherbert1988case
Distinct fromhuang2018instructionlevel
Distinct fromjoyce1986proving
Distinct fromkumar1996formal
Distinct fromlee2026formal
Distinct frommartin1986compiling
Distinct frommelham1987abstraction
Distinct fromoulkaid2024transistor
Distinct fromreid2016endtoend
Distinct fromsnepscheut1983trace
Distinct fromxue2024using

From bibtex.

Abstract

A machine-generated correctness proof of a simple computer is described. At the machine code level the computer has a memory and two registers: a 13-bit program counter and a 16-bit accumulator. There are 8 machine instructions: halt, unconditional jump, jump when the accumulator contains 0, add contents of a memory location to accumulator, subtract contents of a location from accumulator, load accumulator from memory, store contents of accumulator in memory, and skip. The machine can be interrupted by pushing a button on its front panel. The implementation which we prove correct has 6 data registers, an ALU, a memory, and a microcode controller. This controller consists of a ROM holding 26 30-bit microinstructions, a microprogram counter, and some combinational microinstruction decode logic. Formal specifications of the target and host machines are given, and we describe the main steps in proving that the host correctly fetches, decodes and executes machine instructions. The utility of LCF_LSM for general manipulation is illustrated in two appendices. In Appendix 1 we show how to code a microassembler. In Appendix 2 we use the LCF_LSM inference rules to design a hard-wired controller equivalent to the original microcoded one.

A copy is held

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

How it got here

How it got hereagent via bibtex
Added2026-09-15 21:56 UTC
Approved bya person 2026-09-16 09:24 UTC

Cite it as

@techreport{gordon1983proving,
  title        = {Proving a Computer Correct with the LCF\_LSM Hardware Verification System},
  author       = {Mike Gordon},
  year         = {1983},
  publisher    = {University of Cambridge Computer Laboratory},
  school       = {University of Cambridge Computer Laboratory},
  issn         = {1476-2986},
}

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