Principles for Verification Tools: Separation Logic
Brijesh Dongol, Victor B. F. Gomes, Georg Struth

TL;DR
This paper presents a principled framework for designing program verification tools using separation logic, modeling control flow with power series and convolution, and ensuring correctness through formal proofs in Isabelle/HOL.
Contribution
It introduces a generic construction that lifts resource monoids to assertion and predicate transformer quantales, enabling automatic and correct verification tool implementation.
Findings
The framework simplifies implementation in Isabelle/HOL.
Verification conditions are derived through equational reasoning.
The approach is demonstrated with linked list reversal example.
Abstract
A principled approach to the design of program verification and con- struction tools is applied to separation logic. The control flow is modelled by power series with convolution as separating conjunction. A generic construction lifts resource monoids to assertion and predicate transformer quantales. The data flow is captured by concrete store/heap models. These are linked to the separation algebra by soundness proofs. Verification conditions and transformation laws are derived by equational reasoning within the predicate transformer quantale. This separation of concerns makes an implementation in the Isabelle/HOL proof as- sistant simple and highly automatic. The resulting tool is correct by construction; it is explained on the classical linked list reversal example.
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
