Section CompileInftyThread.
Definition lift_state': forall {on on'},
ThreadPool on -> ThreadPool on'.

Lemma infinite_step_diagram:
forall (m : option mem) (sge tge : HybridMachineSig.G)
(U : list nat) tr1 (st1 : ThreadPool (Some 0)%nat)
(m1 : mem) (st1' : ThreadPool (Some 0)%nat)
(m1' : mem),
machine_semantics.thread_step (HybConcSem (Some 0)%nat m) sge U st1
m1 st1' m1' ->
forall (cd : nth_index) tr2 (st2 : ThreadPool None)
(mu : meminj) (m2 : mem),
infty_match cd mu st1 m1 st2 m2 ->
List.Forall2 (inject_mevent mu) tr1 tr2 ->
exists
(st2' : ThreadPool None) (m2' : mem) (cd' : nth_index)
(mu' : meminj),
infty_match cd' mu' st1' m1' st2' m2' /\
List.Forall2 (inject_mevent mu') tr1 tr2 /\
(machine_semantics_lemmas.thread_step_plus
(HybConcSem None m) tge U st2 m2 st2' m2' \/
machine_semantics_lemmas.thread_step_star
(HybConcSem None m) tge U st2 m2 st2' m2' /\
list_lt cd' cd).