「‍」 Lingenic

Concurrent Separation Logic

(⤓.md ◇.md); γ ≜ [2026-07-17T120407.600, 2026-07-17T135416.643] ∧ |γ| = 3

Concurrent Separation Logic

Origin. Peter O'Hearn extended separation logic to concurrency (2004, 2007). Stephen Brookes provided semantics. The key insight: separating conjunction extends to thread separation — disjoint resources enable parallel composition. Foundation for modern concurrent program verification. Evolved into Iris, VST, and other frameworks.

Models. Ownership and concurrency. Sequential separation logic: disjoint heap ownership enables local reasoning. Concurrent separation logic: disjoint ownership enables thread-local reasoning. Threads with disjoint resources don't interfere. Shared resources require synchronization and invariants.

Formalism.

Basic concurrent rule: {P₁} C₁ {Q₁} {P₂} C₂ {Q₂} ─────────────────────────────── (disjoint) {P₁ * P₂} C₁ ∥ C₂ {Q₁ * Q₂}

If C₁ works on heap satisfying P₁ and C₂ on P₂, and they're disjoint (*), running in parallel preserves separation.

Resource invariants: Shared resources protected by locks. Resource r with invariant R:

  • Acquiring r: gain ownership of resource satisfying R
  • Releasing r: must restore R

Critical regions: {P * R} with r do C {Q * R} ───────────────────────────── {P} with r do C {Q}

Inside critical region: own resource + invariant. Outside: invariant hidden, only own P.

Ownership transfer: Threads can transfer ownership via shared data structures. Permission accounting: who owns what.

Fractional permissions: Read permission: multiple readers OK. Write permission: exclusive. π · (x ↦ v): fraction π of ownership (0 < π ≤ 1). Full ownership: 1 · (x ↦ v) = (x ↦ v).

Rely-guarantee: For fine-grained concurrency:

  • Rely R: what environment may do
  • Guarantee G: what this thread does {P, R, G} C {Q}

Modern developments:

  • Iris: higher-order concurrent separation logic in Coq
  • VST: Verified Software Toolchain
  • RustBelt: Rust verification

Symbols.

SymbolUnicodeNameMeaning
*Separating conjunctionDisjoint resources
U+2225ParallelParallel composition
—*Magic wandSeparating implication
U+21A6Points-toHeap cell ownership
πU+03C0PermissionFractional ownership
RRelyEnvironment assumption
GGuaranteeThread commitment
U+25A1PersistentDuplicable assertion
U+25B7LaterStep-indexed later

Metatheory. Soundness: CSL is sound for standard interleaving semantics (Brookes). Compositionality: parallel composition rule enables modular verification. Higher-order: can abstract over predicates (Iris). Step-indexing handles recursion and impredicativity. Rely-guarantee extends to fine-grained concurrency. Frame rule extends: {P}C{Q} implies {PR}C{QR} if C doesn't touch R.

Applies to. Concurrent data structure verification. Operating systems (seL4, CertiKOS). Compilers (CompCert, CakeML). Rust (ownership = separation). Lock-free algorithms. Message passing. Shared-memory concurrency.

Limitations. Verification requires expertise. Invariants must be manually provided. Fine-grained concurrency needs rely-guarantee or more. Higher-order logics (Iris) are complex. Tool support improving but not push-button. Ghost state and protocol design is an art. Memory models beyond SC require extensions.

© 2026 Lingenic LLC