 
Summary: MFPS 2008
Multimodal Separation Logic for Reasoning
About Operational Semantics
Robert Dockins Andrew W. Appel Aquinas Hobor
Princeton University
Abstract
We show how to reason, in the proof assistant Coq, about realistic programming languages using a com
bination of separation logic and heterogeneous multimodal logic. A heterogeneous multimodal logic is a
logic with several modal operators that are not required to satisfy the same frame conditions. The result
is a powerful and elegant system for reasoning about programming languages and their semantics. The
techniques are quite general and can be adopted to a wide variety of settings.
Keywords: Modal logic, separation logic, operational semantics, mechanical verification
1 Introduction
Recent years have seen major advances in the field of machineverified proofs for
software correctness. In the process, techniques have been developed to aid the
process of reasoning about software systems.
Separation logic has emerged as a powerful way to reason about programming
languages with mutable stores [26,22,18]. Separation logic contains the substruc
tural separated conjunction in addition to the ordinary conjunction of propositional
logic. The separated conjunction of two predicates, P Q, captures the notion
