A proof theory for machine code

Research output: Contribution to journalArticlepeer-review

Abstract

This article develops a proof theory for low-level code languages. We first define a proof system, which we refer to as the sequential sequent calculus, and show that it enjoys the cut elimination property and that its expressive power is the same as that of the natural deduction proof system. We then establish the Curry-Howard isomorphism between this proof system and a low-level code language by showing the following properties: (1) the set of proofs and the set of typed codes is in one-to-one correspondence, (2) the operational semantics of the code language is directly derived from the cut elimination procedure of the proof system, and (3) compilation and decompilation algorithms between the code language and the typed lambda calculus are extracted from the proof transformations between the sequential sequent calculus and the natural deduction proof system. This logical framework serves as a basis for the development of type systems of various low-level code languages, type-preserving compilation, and static code analysis.

Original languageEnglish
Article number1286827
JournalACM Transactions on Programming Languages and Systems
Volume29
Issue number6
DOIs
Publication statusPublished - 2007 Oct 1

Keywords

  • Curry-Howard isomorphism

ASJC Scopus subject areas

  • Software

Fingerprint Dive into the research topics of 'A proof theory for machine code'. Together they form a unique fingerprint.

Cite this