(** Proof of safety of the FineConc machine*)

      Notation fsafe := (@HybridFineMachine.fsafe _ _ _ _ FineDilMem).

(* Specifications: *)
Lemma getStepType_cases: forall tp m i (cnti: containsThread tp i), getStepType cnti m Concurrent \/ getStepType cnti m Internal \/ getStepType cnti m Suspend.
Lemma fine_safe_sched: forall tpf trf tpc trc mf mc (g fg : memren) fp xs sched (Hsim: SimDefs.sim tpc trc mc tpf trf mf xs g fg fp (S (size sched))), @fsafe tpf mf sched (S (size sched)).
Lemma fsafe_reduce: forall sched tp mem n m, fsafe tp mem sched n -> (m <= n)%nat -> fsafe tp mem sched m.
Lemma fine_safe: forall n tpf mf sched, @fsafe tpf mf sched (S (size sched)) -> @fsafe tpf mf sched n.