Opaque OrdinalPool.containsThread.
(** *** Safety and simulation lemmas *)

(** If some state is [csafe] then it can take a [cmachine_step]*)
Lemma csafe_internal_step:
forall tp tr m i (cnti: containsThread tp i) U n
(Hn: n > 0)
(Hcmpt: mem_compatible tp m),
let mrestr := restrPermMap ((compat_th _ _ Hcmpt cnti).1) in
forall (Hinternal: cnti$mrestr @ I)
(Hsafe: csafe ((i :: U),tr,tp) m n),
exists tp' tr' m', cmachine_step ((i :: U), tr, tp) m
((i :: U), tr ++ tr', tp') m'.