Parameter lift_state: forall on, ThreadPool on -> forall on', ThreadPool on' -> Prop.Inductive infty_match:
             nth_index -> meminj ->
             ThreadPool (Some 0) -> mem ->
             ThreadPool None -> mem -> Prop:=
   | Build_infty_match:
       forall n cd j st0 m0 stn mn st,
         match_state n cd j st0 m0 stn mn ->
         lift_state (Some n) stn None st ->
         infty_match cd j st0 m0 st mn.Inductive infty_match:
             nth_index -> meminj ->
             ThreadPool (Some 0) -> mem ->
             ThreadPool None -> mem -> Prop:=
   | Build_infty_match:
       forall n cd j st0 m0 stn mn st,
         match_state n cd j st0 m0 stn mn ->
         lift_state (Some n) stn None st ->
         infty_match cd j st0 m0 st mn.

Lemma initial_infty: forall (m : option mem) (s_mem s_mem' : mem) (main : val) (main_args : list val) (s_mach_state : ThreadPool (Some 0)) (r1 : option res), machine_semantics.initial_machine (HybConcSem (Some 0) m) r1 s_mem s_mach_state s_mem' main main_args -> exists (j : meminj) (cd : nth_index) (t_mach_state : ThreadPool None) (t_mem t_mem' : mem) (r2 : option res), machine_semantics.initial_machine (HybConcSem None m) r2 t_mem t_mach_state t_mem' main main_args /\ infty_match cd j s_mach_state s_mem' t_mach_state t_mem'.