Research

Paper

TESTING March 20, 2026

Sound State Encodings in Translational Separation Logic Verifiers (Extended Version)

Authors

Hongyi Ling, Thibault Dardinier, Ellen Arlt, Peter Müller

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 encodings. To be applicable to various front-ends and IVLs, our framework only assumes the existence of a homomorphic encoding relation between the front-end and IVL state models. At the core of our framework is a novel condition, backward satisfiability, which is crucial to guarantee the soundness of the front-end translation. We formalize our framework for front-end verifiers based on concurrent separation logic and separation logic IVLs, such as Raven, VeriFast, and Viper. We demonstrate its expressiveness by proving soundness for three common state encodings. Our framework and all proofs are formalized in Isabelle/HOL.

Metadata

arXiv ID: 2603.20001
Provider: ARXIV
Primary Category: cs.PL
Published: 2026-03-20
Fetched: 2026-03-23 16:54

Related papers

Raw Data (Debug)
{
  "raw_xml": "<entry>\n    <id>http://arxiv.org/abs/2603.20001v1</id>\n    <title>Sound State Encodings in Translational Separation Logic Verifiers (Extended Version)</title>\n    <updated>2026-03-20T14:48:57Z</updated>\n    <link href='https://arxiv.org/abs/2603.20001v1' rel='alternate' type='text/html'/>\n    <link href='https://arxiv.org/pdf/2603.20001v1' rel='related' title='pdf' type='application/pdf'/>\n    <summary>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.\n  We present the first formal framework for proving the soundness of translational separation logic verifiers with non-trivial state encodings. To be applicable to various front-ends and IVLs, our framework only assumes the existence of a homomorphic encoding relation between the front-end and IVL state models. At the core of our framework is a novel condition, backward satisfiability, which is crucial to guarantee the soundness of the front-end translation. We formalize our framework for front-end verifiers based on concurrent separation logic and separation logic IVLs, such as Raven, VeriFast, and Viper. We demonstrate its expressiveness by proving soundness for three common state encodings. Our framework and all proofs are formalized in Isabelle/HOL.</summary>\n    <category scheme='http://arxiv.org/schemas/atom' term='cs.PL'/>\n    <published>2026-03-20T14:48:57Z</published>\n    <arxiv:primary_category term='cs.PL'/>\n    <author>\n      <name>Hongyi Ling</name>\n    </author>\n    <author>\n      <name>Thibault Dardinier</name>\n    </author>\n    <author>\n      <name>Ellen Arlt</name>\n    </author>\n    <author>\n      <name>Peter Müller</name>\n    </author>\n  </entry>"
}