Section CompileNThreads.
Definition nth_index:= (list (option compiler_index)).
Definition list_lt: nth_index -> nth_index -> Prop:=
list_ord (opt_rel' (InjorderX compiler_sim)).
Local Ltac subst_sig:=
match goal with
H': existT _ _ _ = existT _ _ _ |- _ =>
eapply Eqdep.EqdepTheory.inj_pair2 in H'; subst
end.
Local Ltac inv_match0:=
match goal with
H: match_state 0 _ _ _ _ _ _ |- _ =>
inversion H; subst_sig; try clear H
end.
Admitted.
Admitted.

Lemma simulation_inductive_case:
forall n : nat,
(forall m : option mem,
HybridMachine_simulation_properties
(HybConcSem (Some 0)%nat m)
(HybConcSem (Some n) m) (match_state n)) ->
(forall m : option mem,
HybridMachine_simulation_properties
(HybConcSem (Some n) m)
(HybConcSem (Some (S n)) m) (concur_match n)) ->
forall m : option mem,
HybridMachine_simulation_properties
(HybConcSem (Some 0)%nat m)
(HybConcSem (Some (S n)) m) (match_state (S n)).