Error Localization, Certificates, and Hints for Probabilistic Program Verification via Slicing (Extended Version)

📅 2025-12-23
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
Automated diagnostic support—such as error localization, proof simplification, and result preservation—is lacking in deductive verification of probabilistic programs. Method: This paper introduces the first slicing-based user diagnosis framework tailored to quantitative assertions. Its core innovations include: (i) the first formal definition of error-localizing slices; (ii) three semantically rigorous slice types—error-witness slices, refutable slices, and truth-preserving slices—formally modeled in the HeyVL language; and (iii) Brutus, a tool implementing multi-objective slice search via SMT solving, unsatisfiable core analysis, Minimal Unsatisfiable Subset (MUS) enumeration, and binary minimization. Results: Evaluated on both established and novel benchmarks, Brutus efficiently generates compact, information-rich slices; guarantees correctness of diagnostic guidance; and enables cross-language diagnostic transfer across probabilistic programming languages.

Technology Category

Application Category

📝 Abstract
This paper focuses on effective user diagnostics generated during the deductive verification of probabilistic programs. Our key principle is based on providing slices for (1) error reporting, (2) proof simplification, and (3) preserving successful verification results. By formally defining these different notions on HeyVL, an existing quantitative intermediate verification language (IVL), our concepts (and implementation) can be used to obtain diagnostics for a range of probabilistic programming languages. Slicing for error reporting is a novel notion of error localization for quantitative assertions. We demonstrate slicing-based diagnostics on a variety of proof rules such as quantitative versions of the specification statement and invariant-based loop rules, and formally prove the correctness of specialized error messages and verification hints. We implemented our user diagnostics into the deductive verifier Caesar. Our novel implementation -- called emph{Brutus} -- can search for slices which do or do not verify, corresponding to each of the three diagnostic notions. For error reporting (1), it exploits a binary search-based algorithm that minimizes error-witnessing slices. To solve for slices that verify (2 and 3), we empirically compare different algorithms based on unsatisfiable cores, minimal unsatisfiable subset enumeration, and a direct SMT encoding of the slicing problem. Our empirical evaluation of Brutus on existing and new benchmarks shows that we can find slices that are both small and informative.
Problem

Research questions and friction points this paper is trying to address.

Error localization for probabilistic program verification
Generating diagnostic slices for proof simplification
Preserving verification results with quantitative assertions
Innovation

Methods, ideas, or system contributions that make the work stand out.

Slicing for error localization in probabilistic programs
Binary search algorithm minimizes error-witnessing slices
SMT encoding solves slicing for verification hints
🔎 Similar Papers
No similar papers found.