Separation logic: a logic for shared mutable data structures | Synapse