Opaque lockRes.

(** ** Proofs about external steps*)
Lemma external_step_inverse :
forall U U' tp tr m tp' tr' m' i (cnti: containsThread tp i)
(Hcomp: mem_compatible tp m),
let mrestr := restrPermMap (((compat_th _ _ Hcomp) cnti).1) in
forall (Hexternal: cnti$mrestr @ E)
(Hstep: MachStep (i :: U, tr, tp) m (U', tr ++ tr', tp') m'),
U = U' /\ exists ev, syncStep true cnti Hcomp tp' m' ev /\ tr' = [:: external i ev].