Sound State Encodings in Translational Separation Logic Verifiers (Extended Version)
Hongyi Ling, Thibault Dardinier, Ellen Arlt, Peter M\"uller

TL;DR
This paper introduces a formal framework for verifying the soundness of translational separation logic verifiers with complex state encodings, applicable across various front-ends and intermediate languages, formalized in Isabelle/HOL.
Contribution
It presents the first framework that handles non-trivial state encodings in translational separation logic verifiers, relying only on a homomorphic encoding relation.
Findings
Proves soundness for three common state encodings
Formalizes the framework in Isabelle/HOL
Demonstrates applicability to Raven, VeriFast, and Viper
Abstract
Automated program verifiers are often organized into a front-end, which encodes an input program into an intermediate verification language (IVL), and a back-end, which proves that the IVL program is correct. Soundness of such translational verifiers requires that the back-end verification is sound and that correctness of the IVL program implies correctness of the input program. Existing formalizations for translational verifiers based on separation logic target the former, but support the latter only under the strong assumption that there exists a separation logic for the input program with the same state model as the IVL. This assumption is unrealistic in practice, especially since the state model also defines the supported separation logic resources. We present the first formal framework for proving the soundness of translational separation logic verifiers with non-trivial state…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Formal Methods in Verification · Security and Verification in Computing
