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 startStep_erasure: forall tp1 tp1' tp2 m1 m1' m2 i (HerasePool: threadPool_erasure tp1 tp1') (Herase_mem: mem_erasure m1 m1') (cnti: containsThread tp1 i) (cnti': ThreadPool.containsThread tp1' i) (Hcomp1': mem_compatible tp1' m1') (Hstep: start_threadF m1 cnti tp2 m2), exists tp2' m2', start_threadE m1' cnti' tp2' m2' /\ threadPool_erasure tp2 tp2' /\ mem_erasure m2 (erasePerm m2').