分离逻辑扩展可变状态语义公理库可变状态语义Semantics of mutable state · Store semantics把位置到值的存储纳入配置并随求值更新的语义。与Hoare 三元组公理库Hoare 三元组Hoare triple断言若前置条件成立且程序终止,则后置条件成立的 {P}C{Q} 形式。,框架规则公理库框架规则Frame rule若命令不修改额外资源,则可把该资源同时附加到前置和后置断言。是其局部性原则的集中表达。递归谓词可描述链表、树和图的堆布局。
并发分离逻辑以资源不变量和权限控制线程间共享,支撑对数据竞争公理库数据竞争Data race · 数据竞态不同线程对同一内存位置的冲突访问既未按模型同步排序、也未通过原子操作协调的情形。自由和线性化点的模块化证明。这里的“所有权”是断言对资源份额的语义解释;语言所有权系统公理库所有权与借用Ownership and borrowing · Ownership type system · Borrow checking以所有者、移动、共享或独占借用及生命周期约束静态组织资源责任与别名访问。则以 move、loan 与生命周期静态限制程序,两者可以互相验证,却不是同一套规则或术语替换。
参考资料
John C. Reynolds, Separation Logic: A Logic for Shared Mutable Data Structures, LICS 2002,pp. 55–74。
Peter W. O'Hearn, Separation Logic, Communications of the ACM 62(2), 2019,pp. 86–95。