(** Proof of safety of the FineConc machine*)
Notation fsafe := (@HybridFineMachine.fsafe _ _ _ _ FineDilMem).

(** If a thread has reached an external then it cannot be in the list that denotes the delta of execution between the two machines *)
Lemma at_external_not_in_xs:
forall tpc trc mc tpf trf mf xs f fg fp i n
(Hsim: SimDefs.sim tpc trc mc tpf trf mf xs f fg fp n)
(pffi: containsThread tpf i),
let mrestr := restrPermMap (compat_th _ _ (SimDefs.mem_compf Hsim) pffi).1 in
forall (Hexternal: getStepType pffi mrestr Concurrent),
~ List.In i xs.