The symbolic heap is widely used in verification of pointer-manipulating programs because it supports forward symbolic execution. While it can describe disjoint data structures easily, it is not suitable to describe overlapping data structures. Based on the observations that overlapping structures are often immutable in practical programs, we propose read-only assertions and extended separation logic to solve the problem. Our logic simplifies the specifications and verifications of overlapping structures. We formalize our logic, its soundness proof, and program verification examples in Coq.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Extending Symbolic Heap to Support Shared Ownership

  • Jiyang Wu,
  • Qinxiang Cao

摘要

The symbolic heap is widely used in verification of pointer-manipulating programs because it supports forward symbolic execution. While it can describe disjoint data structures easily, it is not suitable to describe overlapping data structures. Based on the observations that overlapping structures are often immutable in practical programs, we propose read-only assertions and extended separation logic to solve the problem. Our logic simplifies the specifications and verifications of overlapping structures. We formalize our logic, its soundness proof, and program verification examples in Coq.