Tunable Automation in Automated Program Verification

Fuente: arXiv
Salvato in:
Dettagli Bibliografici
Autori principali: Bai, Alexander Y., Hawblitzel, Chris, Lattuada, Andrea
Natura: Preprint
Pubblicazione: 2025
Soggetti:
Accesso online:
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866911300615929856
author Bai, Alexander Y.
Hawblitzel, Chris
Lattuada, Andrea
author_facet Bai, Alexander Y.
Hawblitzel, Chris
Lattuada, Andrea
contents Automated verification tools based on SMT solvers have made significant progress in verifying complex software systems. However, these tools face a fundamental tension between automation and performance when dealing with quantifier instantiation -- the primary source of incompleteness and verification slowdown in SMT-based verifiers. Tools choose between aggressive quantifier instantiation that provides more automation but longer verification times, or conservative instantiation that responds quickly but may require more manual proof hints. We present a mechanism that enables fine-grained control over the availability of quantified facts in verification contexts, allowing developers to selectively tune the level of automation. Our approach lets library authors provide different pre-defined automation levels while giving end-users the ability to further customize quantifier availability at the module, function, or proof context level. We implement our techniques in Verus, a Rust-based verification tool, and evaluate them on multiple openly available codebases. Our empirical analysis demonstrates the automation-performance tradeoff and that selective quantifier management enables developers to select the appropriate level of automation in different contexts.
format Preprint
id arxiv_https___arxiv_org_abs_2512_03926
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Tunable Automation in Automated Program Verification
Bai, Alexander Y.
Hawblitzel, Chris
Lattuada, Andrea
Software Engineering
Logic in Computer Science
Programming Languages
Automated verification tools based on SMT solvers have made significant progress in verifying complex software systems. However, these tools face a fundamental tension between automation and performance when dealing with quantifier instantiation -- the primary source of incompleteness and verification slowdown in SMT-based verifiers. Tools choose between aggressive quantifier instantiation that provides more automation but longer verification times, or conservative instantiation that responds quickly but may require more manual proof hints. We present a mechanism that enables fine-grained control over the availability of quantified facts in verification contexts, allowing developers to selectively tune the level of automation. Our approach lets library authors provide different pre-defined automation levels while giving end-users the ability to further customize quantifier availability at the module, function, or proof context level. We implement our techniques in Verus, a Rust-based verification tool, and evaluate them on multiple openly available codebases. Our empirical analysis demonstrates the automation-performance tradeoff and that selective quantifier management enables developers to select the appropriate level of automation in different contexts.
title Tunable Automation in Automated Program Verification
topic Software Engineering
Logic in Computer Science
Programming Languages
url https://arxiv.org/abs/2512.03926