Skip to main content
QUICK REVIEW

[论文解读] Separation Logic Modulo Theories

Juan Antonio Navarro-Pérez, Andrey Rybalchenko|arXiv (Cornell University)|Mar 11, 2013
Logic, programming, and type systems参考文献 20被引用 8
一句话总结

本论文提出了一种基于SMT的分离逻辑决策过程,首次支持带有链表段谓词的分离逻辑,通过将SMT求解器与基于模型的方法相结合,利用匹配函数推理堆结构。该方法在操作堆分配数据的程序中实现了高效的蕴含检查,实验结果表明,以Z3作为理论后端时,性能显著优于先前的工具。

ABSTRACT

Logical reasoning about program data often requires dealing with heap structures as well as scalar data types. Recent advances in Satisfiability Modular Theory (SMT) already offer efficient procedures for dealing with scalars, yet they lack any support for dealing with heap structures. In this paper, we present an approach that integrates Separation Logic---a prominent logic for reasoning about list segments on the heap---and SMT. We follow a model-based approach that communicates aliasing among heap cells between the SMT solver and the Separation Logic reasoning part. An experimental evaluation using the Z3 solver indicates that our approach can effectively put to work the advances in SMT for dealing with heap structures. This is the first decision procedure for the combination of separation logic with SMT theories.

研究动机与目标

  • 为解决现有SMT求解器缺乏对堆结构数据的支持问题,从而限制了对指针程序的推理能力。
  • 在结合可判定SMT理论的分离逻辑中实现高效的蕴含检查。
  • 为同时包含纯理论断言和空间链表段谓词的蕴含关系,开发一个完整、正确且实用的决策过程。
  • 以一种能充分利用现代SMT后端(如Z3)效率的方式,将分离逻辑推理与SMT求解器集成。
  • 提供该方法的形式化正确性证明及在基准示例上的经验评估。

提出的方法

  • 采用基于模型的方法,将分离逻辑与SMT理论结合,其中模型(堆栈)指导空间推理。
  • 引入一种确定性的匹配函数,通过分析堆结构建立空间合取之间的逻辑蕴含关系。
  • 维护一个已证明蕴含关系的堆栈逻辑上下文,以减少冗余推理。
  • 采用基于循环的算法,迭代地细化尚未验证蕴含关系的堆栈集合。
  • 利用SMT求解器评估纯断言,并检查由匹配函数导出的约束的可满足性。
  • 使用良好形式性条件,确保在推理前空间公式的语法有效性。

实验结果

研究问题

  • RQ1能否使用SMT求解器高效地决策涉及SMT理论断言和链表段谓词的分离逻辑蕴含?
  • RQ2如何形式化SMT求解器与分离逻辑之间的交互,以保证正确性与完备性?
  • RQ3匹配函数能否在保持效率与正确性的前提下,替代传统的展开或归结技术?
  • RQ4通过在多个推理步骤中复用SMT求解器上下文,能够实现多大的性能提升?
  • RQ5是否可能设计一种支持丰富理论表达式的分离逻辑决策过程,使其可扩展至真实基准?

主要发现

  • 所提出的算法在形式上被证明是正确且可终止的,基于不变式与基于模型的推理。
  • 在Aster*ix中实现,以Z3作为SMT后端,其在包含重复空间原子的基准上,性能优于SmallFoot和slp。
  • 在最困难的基准(n=7)中,Aster*ix耗时0.54秒,而SmallFoot在64%的时间内超时,slp耗时20.83秒。
  • 在最复杂的基准(n=10)中,Aster*ix耗时2.81秒,而SmallFoot和slp均未能在时间限制内完成。
  • 匹配函数能够收集可重用约束,显著提升在重复空间模式上的性能。
  • 该方法在微型基准上表现出良好的可扩展性,证明了将分离逻辑与SMT集成以实现堆推理的可行性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。