Section OneThreadCompiledMatch.
Definition HM1:=HybridMachine hb1 Sems Semt.
Definition HM2:=HybridMachine hb2 Sems Semt.
Notation Sem1:=(ConcurMachineSemantics _ _ _ HM1 U None).
Notation Sem2:=(ConcurMachineSemantics _ _ _ HM2 U None) .
Inductive condition: Set :=
running | blocked | resuming | initializing.
Definition get_condition {cT} (c:@ctl cT):=
match c with
| Krun _ => running
| Kblocked _ => blocked
| Kresume _ _ => resuming
| Kinit _ _ =>  initializing
end.
Definition get_state_inside {cT} (c:@ctl cT):=
match c with
| Krun c => Some c
| Kblocked c => Some c
| Kresume c _ => Some c
| Kinit _ _ =>  None
end.
(*This will probably need reworking*)

Lemma same_length_contains:
forall {ms1: C1} {ms2: C2} {i},
num_threads ms1 = num_threads ms2 ->
containsThread ms1 i ->
containsThread ms2 i.