一句话:提出基于函子、同态与环上模的抽象代数理论,通用自动化分离逻辑,并自动实例化数据结构推理器。
基础验证用 Coq/Isabelle 等证明助手认证程序正确性,但复杂程序需要表达力强的分离逻辑(SL),超出符号堆等自动证明理论范围,导致自动化依赖缺乏系统元理论且扩展性差的启发式。本文提出用抽象代数(函子、同态、环上模)规约 SL 谓词的理论,并据此设计通用 SL 自动推理算法,处理可由这些代数刻画的数据结构。作者还给出自动实例化算法,将代数模型组合式地实例化到真实数据结构并保持数据抽象。案例研究在形式化命令式语义上自动实例化多种复杂数据结构;实验表明自动实例化的推理器与手工定制规则的最新系统效果相近。理论、证明与验证框架均在 Isabelle/HOL 中形式化。
Foundational verification considers the functional correctness of programming languages with formalized semantics and uses proof assistants (e.g., Coq, Isabelle) to certify proofs. The need for verifying complex programs compels it to involve expressive Separation Logics (SLs) that exceed the scopes of well-studied automated proof theories, e.g., symbolic heap. Consequently, automation of SL in foundational verification relies heavily on ad-hoc heuristics that lack a systematic meta-theory and face scalability issues. To mitigate the gap, we propose a theory to specify SL predicates using abstract algebras including functors, homomorphisms, and modules over rings. Based on this theory, we develop a generic SL automation algorithm to reason about any data structures that can be characterized by these algebras. In addition, we also present algorithms for automatically instantiating the algebraic models to real data structures. The instantiation works compositionally, reusing the algebraic models of component structures and preserving their data abstractions. Case studies on formalized imperative semantics show our algorithm can instantiate the algebraic models automatically for a variety of complex data structures. Experimental results indicate the automatically instantiated reasoners from our generic theory show similar results to the state-of-the-art systems made of specifically crafted reasoning rules. The presented theories, proofs, and the verification framework are formalized in Isabelle/HOL.
@article{paperbot3235,
title = {Generically Automating Separation Logic by Functors, Homomorphisms, and Modules},
author = {Qiyuan Xu and David Sanan and Zhe Hou and Xiaokun Luan and Conrad Watt and Yang Liu},
journal = {Proceedings of the ACM on Programming Languages},
volume = {9},
number = {POPL},
year = {2025},
doi = {10.1145/3704903}
}