Operational semantics and program verification using many-sorted hybrid modal logic
Ioana Leustean, Natalia Moanga, Traian Florin Serbanuta
TL;DR
This work develops a general, sound, and complete many-sorted hybrid modal logic as a unified framework to specify operational semantics and perform program verification. By introducing constant nominals and state variables, it enables precise, cross-sort reasoning about program execution and verification within ${\mathcal{H}}_{\bf Σ}(@)$ and ${\mathcal{H}}_{\bf Σ}(@,\forall)$. A concrete SMC-like language is then encoded, and a Hoare-like calculus is derived, including rules for conditionals and loops, demonstrated via a detailed correctness proof of a simple summation program. The approach promises more natural semantic descriptions and tighter integration between language semantics and verification, with solid theoretical guarantees and avenues for future extensions and applications.
Abstract
We propose a general framework to allow: (a) specifying the operational semantics of a programming language; and (b) stating and proving properties about program correctness. Our framework is based on a many-sorted system of hybrid modal logic, for which we prove completeness results. We believe that our approach to program verification improves over the existing approaches within modal logic as (1) it is based on operational semantics which allows for a more natural description of the execution than Hoare's style weakest precondition used by dynamic logic; (2) being multi-sorted, it allows for a clearer encoding of semantics, with a smaller representational distance to its intended meaning.
