Authors
Steven Keuchel, Sander Huyghebaert, Georgy Lukyanov, Dominique Devriese
Publication date
2022/8/29
Journal
Proceedings of the ACM on Programming Languages
Volume
6
Issue
ICFP
Pages
194-224
Publisher
ACM
Description
Verifying soundness of symbolic execution-based program verifiers is a significant challenge. This is especially true if the resulting tool needs to be usable outside of the proof assistant, in which case we cannot rely on shallowly embedded assertion logics and meta-programming. The tool needs to manipulate deeply embedded assertions, and it is crucial for efficiency to eagerly prune unreachable paths and simplify intermediate assertions in a way that can be justified towards the soundness proof. Only a few such tools exist in the literature, and their soundness proofs are intricate and hard to generalize or reuse. We contribute a novel, systematic approach for the construction and soundness proof of such a symbolic execution-based verifier. We first implement a shallow verification condition generator as an object language interpreter in a specification monad, using an abstract interface featuring …
Total citations
2023202434
Scholar articles
S Keuchel, S Huyghebaert, G Lukyanov, D Devriese - Proceedings of the ACM on Programming Languages, 2022