一句话:提出基于抽象解释的通用计算式框架,设计并推导证明程序超属性的多种超逻辑及其证明规则。
本文用抽象解释原理计算式地设计证明迭代程序超属性的多种超逻辑。第一部分提出由代数抽象域参数化的泛型、结构化、不动点抽象解释器,可实例化为操作、指称或关系语义;将语义视为程序性质,定义执行性质(迹集合)的 post 变换器与语义(超)性质(迹集合的集合)的 Post 变换器,给出相应演算并导出欠/过近似超逻辑。第二部分定义精确与近似语义抽象,证明其保持代数语义、收集语义 post、超收集语义 Post 及超逻辑的数学结构。第三部分研究超语义性质抽象(如 join、同态、消去、主理想、序理想、前沿序理想、链极限及其组合),由此简化证明规则并导出 ∀∃*、∀∀*、∃∀* 等超逻辑的代数推广。
We design various logics for proving hyper properties of iterative programs by application of abstract interpretation principles. In part I, we design a generic, structural, fixpoint abstract interpreter parameterized by an algebraic abstract domain describing finite and infinite computations that can be instantiated for various operational, denotational, or relational program semantics. Considering semantics as program properties, we define a post algebraic transformer for execution properties (e.g. sets of traces) and a Post algebraic transformer for semantic (hyper) properties (e.g. sets of sets of traces), we provide corresponding calculuses as instances of the generic abstract interpreter, and we derive under and over approximation hyperlogics. In part II, we define exact and approximate semantic abstractions, and show that they preserve the mathematical structure of the algebraic semantics, the collecting semantics post, the hyper collecting semantics Post, and the hyperlogics. Since proofs by sound and complete hyperlogics require an exact characterization of the program semantics within the proof, we consider in part III abstractions of the (hyper) semantic properties that yield simplified proof rules. These abstractions include the join, the homomorphic, the elimination, the principal ideal, the order ideal, the frontier order ideal, and the chain limit algebraic abstractions, as well as their combinations, that lead to new algebraic generalizations of hyperlogics, including the ∀ ∃ * , ∀ ∀ * , and ∃ ∀ * hyperlogics.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@article{CousotW25,
title = {Calculational Design of Hyperlogics by Abstract Interpretation},
author = {Patrick Cousot and Jeffery Wang},
journal = {Proceedings of the ACM on Programming Languages},
volume = {9},
number = {POPL},
year = {2025},
doi = {10.1145/3704852}
}