一句话:提出 LGTM:参数化 Hypersafety 关系分离逻辑,并在 Coq 中机械化验证结构化数据操作。
数组等结构化数据常利用重复或稀疏等结构性质获得高效表示,但其操作多由带复杂不变式的循环组成,正确性形式化验证困难。论文观察到结构化数据操作规约可表述为 Hypersafety 性质,即关联 k 个程序轨迹的谓词。作者提出 LGTM,一种 Hoare 风格的关系分离逻辑,支持参数化 Hypersafety 规约,使程序组件数量 k 可依赖程序变量。LGTM 以 Coq 基础嵌入实现,机械化其规则、元理论与可靠性证明,并提供领域专用策略库以自动化推理。作者对 13 个案例(含压缩数组计算与多种稀疏张量高效操作)进行了规约与机器化正确性证明,证明脚本简短且复用度高。
Arrays are a fundamental abstraction to represent collections of data. It is often possible to exploit structural properties of the data stored in an array ( e.g ., repetition or sparsity) to develop a specialised representation optimised for space efficiency. Formally reasoning about correctness of manipulations with such structured data is challenging, as they are often composed of multiple loops with non-trivial invariants. In this work, we observe that specifications for structured data manipulations can be phrased as hypersafety properties, i.e ., predicates that relate traces of k programs. To turn this observation into an effective verification methodology, we developed the Logic for Graceful Tensor Manipulation (LGTM), a new Hoare-style relational separation logic for specifying and verifying computations over structured data. The key enabling idea of LGTM is that of parametrised hypersafety specifications that allow the number k of the program components to depend on the program variables . We implemented LGTM as a foundational embedding into Coq, mechanising its rules, meta-theory, and the proof of soundness. Furthermore, we developed a library of domain-specific tactics that automate computer-aided hypersafety reasoning, resulting in pleasantly short proof scripts that enjoy a high degree of reuse. We argue for the effectiveness of relational reasoning about structured data in LGTM by specifying and mechanically proving correctness of 13 case studies including computations on compressed arrays and efficient operations over multiple kinds of sparse tensors.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@article{GladshteinZAAS24,
title = {Mechanised Hypersafety Proofs about Structured Data},
author = {Vladimir Gladshtein and Qiyuan Zhao and Willow Ahrens and Saman Amarasinghe and Ilya Sergey},
journal = {Proceedings of the ACM on Programming Languages},
volume = {8},
number = {PLDI},
year = {2024},
doi = {10.1145/3656403}
}