Skip to main content
QUICK REVIEW

[论文解读] Uniqueness is Separation

Liam O’Connor, Pilar Selene Linares Arévalo|arXiv (Cornell University)|Feb 6, 2026
Logic, programming, and type systems被引用 0
一句话总结

论文认为分离逻辑为表达和解除唯一性类型系统的框架条件提供了合适的框架,从而在保持值独立性的同时实现混合 Cogent-C 验证。

ABSTRACT

Value independence is enormously beneficial for reasoning about software systems at scale. These benefits carry over into the world of formal verification. Reasoning about programs algebraically is a simple affair in a proof assistant, whereas programs with unconstrained mutation necessitate much more complex techniques, such as Separation Logic, where invariants about memory safety, aliasing, and state changes must be established by manual proof. Uniqueness type systems allow programs to be compiled to code that uses mutation for efficiency, while retaining a semantics that enjoys value independence for reasoning. The restrictions of these type systems, however, are often too onerous for realistic software. Thus, most uniqueness type systems include some "escape hatch" where the benefits of value independence for reasoning are lost, but the restrictions of uniqueness types are lifted. To formally verify a system with such mixed guarantees, the value independence guarantees from uniqueness types must be expressed in terms of imperative, mutable semantics. In other words, we ought to express value independence as an assertion in Separation Logic.

研究动机与目标

  • Motivate value independence from uniqueness types for scalable software verification.
  • Explain how Cogent enforces uniqueness and its limitations in real-world programming.
  • Propose Separation Logic as the formal language to express and discharge those frame conditions.

提出的方法

  • Describe Cogent’s dynamic properties and heap footprint tracking for values to illustrate uniqueness guarantees.
  • Define three frame conditions (leak freedom, fresh allocation, inertia) for interactions with C code.
  • Show how Separation Logic expresses these conditions using a single triple with heap predicates and separating conjunction.
  • Explain the Separation Logic frame rule and how it supports modular verification of components.

实验结果

研究问题

  • RQ1How can value independence guarantees from uniqueness types be expressed in a memory model with mutable stores?
  • RQ2Can Separation Logic capture the frame conditions required for mixed Cogent-C verification?
  • RQ3Does a Separation Logic formulation simplify verification of foreign C components in systems using uniqueness types?

主要发现

  • Cogent’s dynamic typing relation includes a heap footprint that tracks accessible pointers, enabling non-aliasing guarantees.
  • Three frame conditions (leak freedom, fresh allocation, inertia) are expressed and argued to be enforceable when interfacing with C components.
  • Separation Logic provides a natural framework and frame rule to reason locally about heap-modifying operations and disjoint memory, aligning with uniqueness-type obligations.
  • The proposed formulation allows reuse of existing Separation Logic tooling for validating Cogent-C verification efforts.
  • The authors foresee a future language combining refinement types and uniqueness types with Separation Logic-based assertions for seamless verification of low-level extensions.

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

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