(***** All the additional conditions in the above auxiliary lemmas were needed for proving the condition Events.inject_separated j j' m tm in his lemma; otherwise, the claim is as before, just updated by replacing star step by corestep_star, as ususal*)

Lemma MS_step_coopsem: forall (c1 : core_data) (m1 : mem) (c1' : core_data) (m1' : mem),
corestep csharpmin_coop_sem ge c1 m1 c1' m1' ->
forall (c2 : CMin_core) (m2 : mem) (j : meminj),
match_cores c1 j c1 m1 c2 m2 ->
(exists c2' : CMin_core,
exists m2' : mem,
exists j' : meminj,
inject_incr j j' /\
Events.inject_separated j j' m1 m2 /\
corestep_plus cmin_coop_sem tge c2 m2 c2' m2' /\
match_cores c1' j' c1' m1' c2' m2') \/
(MC_measure c1' < MC_measure c1)%nat /\ match_cores c1' j c1' m1' c2 m2.