「‍」 Lingenic

Concurrent Program Logic

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

Concurrent Program Logic

Origin. Apt, Francez, de Roever (1980). Extended Hoare logic for concurrency. Parallel composition rule. Non-interference. Foundation for shared-memory verification.

Models. Parallel composition P₁ ‖ P₂. Shared variables. Interference freedom. Auxiliary variables for coordination.

Formalism.

Parallel composition: {P₁} S₁ {Q₁} {P₂} S₂ {Q₂} interference-free ───────────────────────────────────────────────────── {P₁ ∧ P₂} S₁ ‖ S₂ {Q₁ ∧ Q₂}

Interference freedom: For each atomic action a in S₁ and each proof outline for S₂:

  • a preserves S₂'s intermediate assertions
  • And vice versa

Proof outline: Program annotated with assertions at each point. pre{a}post for each atomic action.

Non-interference check: {Iₛ₂ ∧ pre(a)} a {Iₛ₂} for each assertion Iₛ₂ in proof outline of S₂.

Auxiliary variables: Ghost variables for coordination. Not in actual program. Updated atomically with real variables.

Await statement: await B then S end Atomically: wait for B, execute S. {P ∧ B} S {Q} ───────────────────── {P} await B then S {Q}

Resource invariants: Shared resource with invariant I. Each critical section: {I ∧ P} S {I ∧ Q}

Symbols.

SymbolUnicodeNameMeaning
U+2016ParallelComposition
awaitAwaitConditional atomic
IInvariantResource invariant
{P}S{Q}TripleHoare triple

Metatheory. Sound for standard interleaving. Complete relative to sequential. Non-interference decidable for finite-state.

Applies to. Shared-memory concurrency. Operating systems. Concurrent algorithms. Thread verification.

Limitations. Interference checking expensive. Global reasoning needed. Auxiliary variables clutter. Partial correctness only.

© 2026 Lingenic LLC