From mathcomp.ssreflect
From mathcomp
From fcsl
From DiSeL
Set Implicit Arguments.
Unset Strict Implicit.
Unset Printing Implicit Defensive.
(* Definition of the protocols, including coherence predicate, tags, messages and transitions.  *)
Definition getLocal (n : nid) (d : dstatelet) : heap :=
match find n (dstate d) with
| Some h => h
| None => Unit
end.

Lemma getLocalU n m d s :
valid (dstate d) -> m \in dom (dstate d) ->
getLocal n d = (getLocal n {| dstate := upd m (getLocal m d) (dstate d); dsoup := s |}).