[论文解读] Higher-order Program Verification as Satisfiability Modulo Theories with Algebraic Data-types
本文提出扩展 SMT-LIB 以支持高阶程序验证,通过支持带代数数据类型的满足性逻辑(satisfiability modulo theories),使符号化软件模型检测基准能够使用标准化的 SMT 求解器进行交换与验证。主要贡献是一个将建模与逻辑开发同约束求解算法解耦的框架,从而提升形式化验证工具的模块化与可重用性。
A key driver of SMT over the past decade has been an interchange format, SMT-LIB, and a growing set of benchmarks sharing this common format. SMT-LIB captures very well an interface that is suitable for many tasks that reduce to solving first-order formulas modulo theories. Here we propose to extend these benefits into the domain of symbolic software model checking. We make a case that SMT-LIB can be used, and to a limited extent adapted, for exchanging symbolic software model checking benchmarks. We believe this layer facilitates dividing innovations in modeling, developing program logics and front-ends, from developing algorithms for solving constraints over recursive predicates. 1 SMT and checking properties of recursive predicates Progress in modern SMT solvers has been driven by a large set of applications in diverse areas. Ap-plications reduce problems to common first-order formats, SMT-LIB [5] and now also the THF [13] format in TPTP, for exchanging benchmarks. They benefit from the progress in automated deduction in SMT solvers and utilize the smorgasbord of theories that are supported with efficient and dedicated solvers. Common to SMT solvers is their support for simply typed first-order classical logic augmented
研究动机与目标
- 扩展 SMT-LIB 以支持包含递归谓词和代数数据类型的符号化软件模型检测基准。
- 通过标准化高阶验证的接口,实现程序逻辑、前端工具与 SMT 求解器之间的互操作性。
- 将程序逻辑建模与前端开发的创新同底层约束求解算法分离。
- 通过重用 SMT-LIB 生态系统及其高效求解器,推动高阶推理的形式化验证进展。
提出的方法
- 通过为代数数据类型和递归谓词添加语法与语义,扩展 SMT-LIB 以支持高阶推理。
- 使用保持逻辑等价性的编码技术,将高阶程序验证问题映射为一阶 SMT 公式。
- 通过将递归谓词约束转换为与 SMT-LIB 理论支持兼容的形式,重用现有 SMT 求解器。
- 引入一种模块化架构,使程序逻辑和前端生成 SMT-LIB 格式的约束,从而与求解器实现解耦。
- 以简单类型的一阶经典逻辑为基础,增强对递归数据与谓词的支持。
- 使用通用交换格式统一多样化的验证工具与求解器,促进基准共享与可复现性。
实验结果
研究问题
- RQ1SMT-LIB 能否被扩展以表达并交换涉及递归谓词与代数数据类型的符号化软件模型检测基准?
- RQ2如何以保持表达力与效率的方式,将高阶程序验证归约为满足性逻辑模理论问题?
- RQ3通过标准化编码,现有 SMT 求解器在多大程度上可被重用于高阶验证?
- RQ4为适应超越一阶逻辑的符号化模型检测,SMT-LIB 需要哪些架构与语法扩展?
- RQ5如何通过通用基准格式实现程序逻辑设计与约束求解之间的关注点分离?
主要发现
- 本文成功扩展 SMT-LIB 以支持代数数据类型与递归谓词,使高阶程序验证问题得以表达。
- 所提出的扩展允许以标准化格式交换符号化软件模型检测基准,提升可复现性与工具互操作性。
- 该框架将逻辑开发与前端设计同约束求解算法解耦,支持模块化创新。
- 当约束被正确编码为扩展后的 SMT-LIB 格式时,现有 SMT 求解器可被有效重用于高阶验证。
- 该方法使 SMT-LIB 丰富的理论与求解器生态可用于递归数据结构与谓词的推理。
- 该工作为高阶程序验证建立了基准共享与工具比较的基础,类似于 SMT-LIB 在一阶问题中所达成的成就。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。