Separation Logic for Small-Step Cminor
Source: Princeton University
Cminor is a mid-level imperative programming language; there are proved-correct optimizing compilers from C to Cminor and from Cminor to machine language. The authors have redesigned Cminor so that it is suitable for Hoare Logic reasoning and they have designed a Separation Logic for Cminor. In this paper, they give a small-step semantics (instead of the big-step of the proved-correct compiler) that is motivated by the need to support future concurrent extensions. They detail a machine-checked proof of soundness of their Separation Logic. This is the first large-scale machine-checked proof of a Separation Logic w.r.t. a small-step semantics. The work presented in this paper has been carried out in the Coq proof assistant.