Parameter MC_order :  core_data -> core_data -> Prop.Parameter MC_wellfounded: well_founded MC_order.Definition MC_measure (q:CSharpMin_core): nat :=
  match q with
  | CSharpMin_State fn s k e lenv => seq_left_depth s
  | _ => O
  end.

Theorem transl_program_correct_coopsem: forall (R: list_norepet (map fst (prog_defs prog))) entrypoints (entry_points_ok : forall v1 v2 sig, In (v1, v2, sig) entrypoints -> exists b f1 f2, v1 = Vptr b Int.zero /\ v2 = Vptr b Int.zero /\ Genv.find_funct_ptr ge b = Some f1 /\ Genv.find_funct_ptr tge b = Some f2) (init_mem: exists m0, Genv.init_mem prog = Some m0), Forward_simulation_inj.Forward_simulation_inject csharpmin_coop_sem cmin_coop_sem ge tge entrypoints.