Towards Trustworthy Automated Program Verifiers: Formally Validating Translations into an Intermediate Verification Language (extended version)
Gaurav Parthasarathy, Thibault Dardinier, Benjamin Bonneau, Peter, M\"uller, Alexander J. Summers

TL;DR
This paper introduces a formal validation methodology that guarantees the soundness of program translations into an intermediate verification language, enhancing trustworthiness of automated program verifiers.
Contribution
It presents a novel, automated approach to formally validate front-end translations into IVLs, ensuring correctness guarantees that can be independently verified in Isabelle.
Findings
Successfully validated Viper translation correctness.
Method effectively handles large semantic gaps.
Provides formal soundness guarantees for verifier front-ends.
Abstract
Automated program verifiers are typically implemented using an intermediate verification language (IVL), such as Boogie or Why3. A verifier front-end translates the input program and specification into an IVL program, while the back-end generates proof obligations for the IVL program and employs an SMT solver to discharge them. Soundness of such verifiers therefore requires that the front-end translation faithfully captures the semantics of the input program and specification in the IVL program, and that the back-end reports success only if the IVL program is actually correct. For a verification tool to be trustworthy, these soundness conditions must be satisfied by its actual implementation, not just the program logic it uses. In this paper, we present a novel validation methodology that, given a formal semantics for the input language and IVL, provides formal soundness guarantees…
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
TopicsSecurity and Verification in Computing · Formal Methods in Verification · Logic, programming, and type systems
