Separation Logic for Small-step Cminor (extended version) - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Reports (Research Report) Year : 2007

Separation Logic for Small-step Cminor (extended version)


Cminor is a mid-level imperative programming language (just below C), and there exist proved-correct optimizing compilers from C to Cminor and from Cminor to machine language. We have redesigned Cminor so that it is suitable for Hoare Logic reasoning, we have designed a Separation Logic for Cminor, we have given a small-step operational semantics so that extensions to concurrent Cminor will be possible, and we have a machine-checked proof of soundness of our Separation Logic. This is the first large-scale machine-checked proof of a Separation Logic w.r.t. a small-step semantics, or for a language with nontrivial reducible control-flow constructs. Our sequential soundness proof of the sequential Separation Logic for the sequential language features will be reusable change within a soundness proof of Concurrent Separation Logic w.r.t. Concurrent Cminor. In addition, we have a machine-checked proof of the relation between our small-step semantics and Leroy's original big-step semantics; thus sequential programs can be compiled by Leroy's compiler with formal end-to-end correctness guarantees.
Fichier principal
Vignette du fichier
sequential-rr.pdf (743.76 Ko) Télécharger le fichier
Origin Files produced by the author(s)

Dates and versions

inria-00134699 , version 1 (04-03-2007)
inria-00134699 , version 2 (06-03-2007)
inria-00134699 , version 3 (28-03-2007)
inria-00134699 , version 4 (30-07-2007)
inria-00134699 , version 5 (30-08-2007)


  • HAL Id : inria-00134699 , version 5


Andrew W. W. Appel, Sandrine Blazy. Separation Logic for Small-step Cminor (extended version). [Research Report] RR-6138, INRIA. 2007, pp.34. ⟨inria-00134699v5⟩
397 View
417 Download


Gmail Mastodon Facebook X LinkedIn More