Accelerating Automated Program Verifiers by Automatic Proof Localization
Kiran Gopinathan, Dionysios Spiliopoulos, Vikram Goyal, Peter Müller, Markus Püschel, Ilya Sergey
摘要
Abstract Automated program verifiers such as Dafny, F ⋆ , Verus, and Viper are now routinely used to verify real-world software. Unfortunately, the performance of the SMT solvers employed by these tools is not always able to keep up with the increasing size and complexity of verification problems, resulting in long verification times and verification failures due to time-outs. This performance degradation occurs because large SMT queries increase the search space for the SMT solver, in particular, the number of possible quantifier instantiations. Most existing attempts to mitigate this problem require substantial manual effort to reduce the size of the search space, for instance, by decomposing proofs. In this paper, we present an automatic technique to significantly improve the performance of SMT-based program proofs by drastically reducing the proof search space for each assertion, in particular, the performed quantifier instantiations. Starting from a successful verification, we automatically extract for each assertion the quantified axioms used by the SMT solver to show that the assertion is valid. Crucially, these include lurking axioms , which are logically irrelevant, but needed to trigger the instantiation of other, relevant axioms. We describe a novel proof localization algorithm that implements a semantics-preserving source-to-source translation of a program such that re-verifying an assertion in the optimized program uses only the axioms in its proof essence. This rewriting greatly reduces the possible quantifier instantiations and, thereby, the search space for the SMT solver, such that all future runs of the verifier, for instance as part of continuous integration, are substantially faster. We implemented our algorithm for the Boogie verifier and demonstrated its effectiveness on examples from Dafny and Viper. Specifically, for files with verification times over a minute, we show significant speedups of up to 100–1000 times and no slowdowns. We also provide some evidence that these improvements persist as projects evolve.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了最后一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
它引用的顶会 Paper5
- EverCrypt: A Fast, Verified, Cross-Platform Cryptographic ProviderJonathan Protzenko, Bryan Parno, Aymeric Fromherz, Chris Hawblitzel 等S&P 2020 · 被引用 114 次
- Storage Systems are Distributed Systems (So Verify Them That Way!)Travis Hance, Andrea Lattuada, Chris Hawblitzel, Jon Howell 等OSDI 2020 · 被引用 52 次
- Cedar: A New Language for Expressive, Fast, Safe, and Analyzable AuthorizationJoseph W. Cutler, Craig Disselkoen, Aaron Eline, Shaobo He 等OOPSLA 2024 · 被引用 28 次
- Verus: A Practical Foundation for Systems VerificationAndrea Lattuada, Travis Hance, Jay Bosamiya, Matthias Brun 等SOSP 2024 · 被引用 22 次
- Free Facts: An Alternative to Inefficient Axioms in DafnyTabea Bordis, K. Rustan M. LeinoFM 2024 · 被引用 2 次
相关 Paper
- Towards Trustworthy Automated Program Verifiers: Formally Validating Translations into an Intermediate Verification LanguageGaurav Parthasarathy, Thibault Dardinier, Benjamin Bonneau, Peter Müller 等PLDI 2024 · 被引用 6 次
- Identifying Overly Restrictive Matching Patterns in SMT-Based Program VerifiersAlexandra Bugariu, Arshavir Ter-Gabrielyan, Peter MüllerFM 2021 · 被引用 3 次
- Formally Validating a Practical Verification Condition GeneratorGaurav Parthasarathy, Peter Müller, Alexander J. SummersCAV 2021 · 被引用 19 次
- Laurel: Unblocking Automated Verification with Large Language ModelsEric Mugnier, Emmanuel Anaya Gonzalez, Nadia Polikarpova, Ranjit Jhala 等OOPSLA 2025 · 被引用 12 次
- Verification Algorithms for Automated Separation Logic VerifiersMarco Eilers, Malte Schwerhoff, Peter MüllerCAV 2024 · 被引用 5 次
