Source code on Github
---------------------------------------
-- ** Concurrent separation logic (CSL)

open import Prelude.Init; open SetAsType
open import Prelude.DecEq
open import Prelude.Decidable
open import Prelude.Lists
open import Prelude.Sets
open import Prelude.Maps

module ShallowHoare.CSL (Part : Type)  _ : DecEq Part  where

open import ShallowHoare.Ledger     Part  it 
open import ShallowHoare.HoareLogic Part  it 
open import ShallowHoare.SL         Part  it 

-- ** Proof of CSL's [PAR] rule, which allows for modular reasoning.
postulate
  [PAR] :
      l₁  l₂  l
      P₁  l₁  Q₁ 
      P₂  l₂  Q₂ 
     l₁ ♯♯ P₂
     l₂ ♯♯ P₁
      ---------------------------
      P₁ `∗ P₂  l  Q₁ `∗ Q₂