一句话:提出 Error Propagation Logic,用生成器从输入不精确性推导抽象解释结果误差上界。
抽象解释中,抽象本身会引入精度损失,且这种不精确性沿抽象解释器传播,因此如何像数值分析中的误差传播那样界定其结果误差仍是难题。本文提出一种为抽象解释不精确性推导上界的逻辑。作者引入抽象域中性质的“生成器”,用以刻画从输入不精确性约束输出不精确性的界函数,并限制验证该函数是否对给定程序与输入成立的搜索空间;该性质成立时称为部分局部完备性,是已有完备性的弱化形式。进一步提出误差传播逻辑 EPL,它结合正确性逻辑、不正确性逻辑和本文引入的程序 ω-连续性逻辑,用于传播抽象解释产生的误差界。
In numerical analysis, error propagation refers to how small inaccuracies in input data or intermediate computations accumulate and affect the final result, typically governed by the stability and sensitivity of the algorithm with respect to some perturbations. The definition of a similar concept in approximated program analysis is still a challenge. In abstract interpretation, inaccuracy arises from the abstraction itself, and the propagation of this error is dictated by the abstract interpreter. In most cases, such imprecision is inevitable. In this paper we introduce a logic for deriving (upper) bounds on the inaccuracy of an abstract interpretation. We are able to derive a function that bounds the imprecision of the result of an abstract interpreter from the imprecision of its input data. When this holds we have what we call partial local completeness of the abstract interpreter, a weaker form of completeness known in the literature. To this end, we introduce the notion of a generator for a property represented in the abstract domain. Generators allow us to restrict the search space when verifying whether the bounding function holds for a given program and input. We then introduce a program logic, called Error Propagation Logic (EPL), for propagating the error bounds produced by an abstract interpretation. This logic is a combination of correctness and incorrectness logics and a logic for program ω - continuity that is also introduced in this paper.
@article{CampionPGU26,
title = {A Logic for the Imprecision of Abstract Interpretations},
author = {Marco Campion and Mila Dalla Preda and Roberto Giacobazzi and Caterina Urban},
journal = {Proceedings of the ACM on Programming Languages},
volume = {10},
number = {POPL},
year = {2026},
doi = {10.1145/3776707}
}