🤖 AI Summary
Automated proof of separation logic entailments remains a core challenge in program verification, as existing rule-based approaches lack explicit formalization of critical memory-structure reasoning techniques—such as structural alignment and elimination. This paper introduces Stellis, a strategy language enabling flexible pattern matching and imperative action specification, which reduces spatial entailments to pure logical entailments. It further proposes the first verifiable strategy framework: soundness conditions are automatically generated and mechanically verified via a theorem prover, ensuring both strategy correctness and system reliability. Evaluated on 229 benchmarks, Stellis successfully discharges 219 entailments (95.6%) using only 98 strategies—demonstrating substantial improvements in automation and practicality for verifying linked-list algorithms and microkernel memory modules.
📝 Abstract
Automatically proving separation logic entailments is a fundamental challenge in verification. While rule-based methods rely on separation logic rules (lemmas) for automation, these rule statements are insufficient for describing automation strategies, which usually involve the alignment and elimination of corresponding memory layouts in specific scenarios. To overcome this limitation, we propose Stellis, a strategy language for purifying separation logic entailments, i.e., removing all spatial formulas to reduce the entailment to a simpler pure entailment. Stellis features a powerful matching mechanism and a flexible action description, enabling the straightforward encoding of a wide range of strategies. To ensure strategy soundness, we introduce an algorithm that generates a soundness condition for each strategy, thereby reducing the soundness of each strategy to the correctness of its soundness condition. Furthermore, based on a mechanized reduction soundness theorem, our prototype implementation generates correctness proofs for the overall automation. We evaluate our system on a benchmark of 229 entailments collected from verification of standard linked data structures and the memory module of a microkernel, and the evaluation results demonstrate that, with such flexibility and convenience provided, our system is also highly effective, which automatically purifies 95.6% (219 out of 229) of the entailments using 5 libraries with 98 strategies.