Mostly-automated verification of low-level programs in computational separation logic

The work

AuthorsAdam Chlipala
Editors
Typeinproceedings
Year2011
Citekeychlipala2011mostly

Where it appeared

Published in32nd ACM Conference on Programming Language Design and Implementation (PLDI)
Pages234--245

Abstract

Several recent projects have shown the feasibility of verifying low-level systems software. Verifications based on automated theorem-proving have omitted reasoning about first-class code pointers, which is critical for tasks like certifying implementations of threads and processes. Conversely, verifications that deal with first-class code pointers have featured long, complex, manual proofs. In this paper, we introduce the Bedrock framework, which supports mostly-automated proofs about programs with the full range of features needed to implement, e.g., language runtime systems. The heart of our approach is in mostly-automated discharge of verification conditions inspired by separation logic. Our take on separation logic is computational, in the sense that function specifications are usually written in terms of reference implementations in a purely functional language. Logical quantifiers are the most challenging feature for most automated verifiers; by relying on functional programs (written in the expressive language of the Coq proof assistant), we are able to avoid quantifiers almost entirely. This leads to some dramatic improvements compared to both past work in classical verification, which we compare against with implementations of data structures like binary search trees and hash tables; and past work in verified programming with code pointers, which we compare against with examples like function memoization and a cooperative threading library.

A copy is held

pdf, 523.9 kB. Not published — it may be under copyright. The facts and links here are.

How it got here

How it got hereagent via bibtex
Added2026-08-05 00:00 UTC
Approved bya person 2026-08-27 17:55 UTC

Cite it as

@inproceedings{chlipala2011mostly,
  title        = {Mostly-automated verification of low-level programs in computational separation logic},
  author       = {Adam Chlipala},
  year         = {2011},
  booktitle    = {32nd ACM Conference on Programming Language Design and Implementation (PLDI)},
  pages        = {234--245},
  doi          = {10.1145/1993498.1993526},
}

This record lives at https://refs.drheap.org/chlipala2011mostly/ and will keep doing so.