English

Correctness Witness Validation by Abstract Interpretation

Programming Languages 2025-03-06 v1

Abstract

Witnesses record automated program analysis results and make them exchangeable. To validate correctness witnesses through abstract interpretation, we introduce a novel abstract operation unassume. This operator incorporates witness invariants into the abstract program state. Given suitable invariants, the unassume operation can accelerate fixpoint convergence and yield more precise results. We demonstrate the feasibility of this approach by augmenting an abstract interpreter with unassume operators and evaluating the impact of incorporating witnesses on performance and precision. Using manually crafted witnesses, we can confirm verification results for multi-threaded programs with a reduction in effort ranging from 7% to 47% in CPU time. More intriguingly, we discover that using witnesses from model checkers can guide our analyzer to verify program properties that it could not verify on its own.

Keywords

Cite

@article{arxiv.2310.16572,
  title  = {Correctness Witness Validation by Abstract Interpretation},
  author = {Simmo Saan and Michael Schwarz and Julian Erhard and Helmut Seidl and Sarah Tilscher and Vesal Vojdani},
  journal= {arXiv preprint arXiv:2310.16572},
  year   = {2025}
}

Comments

29 pages, 4 figures, 2 tables, extended version of the paper which is to appear at VMCAI 2024

R2 v1 2026-06-28T13:01:28.695Z