Notation syncStepF := (@syncStep DryHybridMachine.dryResources _ OrdinalPool.OrdinalThreadPool
                                     DryHybridMachine.DryHybridMachineSig).Notation syncStepE := (@syncStep BareMachine.resources _ OrdinalPool.OrdinalThreadPool
                                     BareMachine.BareMachineSig).Notation start_threadF := (@start_thread DryHybridMachine.dryResources _ OrdinalPool.OrdinalThreadPool
                                             DryHybridMachine.DryHybridMachineSig).Notation start_threadE := (@start_thread BareMachine.resources _ OrdinalPool.OrdinalThreadPool
                                             BareMachine.BareMachineSig).Notation resume_threadF := (@resume_thread DryHybridMachine.dryResources _ OrdinalPool.OrdinalThreadPool
                                               DryHybridMachine.DryHybridMachineSig).Notation resume_threadE := (@resume_thread BareMachine.resources _ OrdinalPool.OrdinalThreadPool
                                               BareMachine.BareMachineSig).Notation suspend_threadF := (@suspend_thread DryHybridMachine.dryResources _ OrdinalPool.OrdinalThreadPool
                                                 DryHybridMachine.DryHybridMachineSig).Notation suspend_threadE := (@suspend_thread BareMachine.resources _ OrdinalPool.OrdinalThreadPool
                                                 BareMachine.BareMachineSig).Notation threadStepF := (@threadStep DryHybridMachine.dryResources _ OrdinalPool.OrdinalThreadPool
                                         DryHybridMachine.DryHybridMachineSig).Notation threadStepE := (@threadStep BareMachine.resources _ OrdinalPool.OrdinalThreadPool
                                         BareMachine.BareMachineSig).Notation fstep := (corestep (@fine_semantics _ initU)).Notation scstep := (corestep (@bare_semantics _ initU)).Notation fsafe := (@HybridFineMachine.fsafe DryHybridMachine.dryResources _ OrdinalPool.OrdinalThreadPool
                                                  DryHybridMachine.DryHybridMachineSig FineDilMem).Notation sc_safe := (@HybridFineMachine.fsafe BareMachine.resources _ OrdinalPool.OrdinalThreadPool
                                                  BareMachine.BareMachineSig BareDilMem).Notation fexecution := (@fine_execution _ FineDilMem DryHybridMachine.dryResources).Notation sc_execution := (@fine_execution _ BareDilMem BareMachine.resources).

Lemma fsafe_implies_scsafe: forall n sched tpsc tpf mf msc (Hsafe: fsafe tpf mf sched n) (HerasedPool: threadPool_erasure tpf tpsc) (Hmem_erasure: mem_erasure mf msc), sc_safe tpsc msc sched n.