Program Definition csharpmin_coop_sem :
CoopCoreSem Csharpminor.genv CSharpMin_core.
apply Build_CoopCoreSem with (coopsem := CSharpMin_core_sem).
apply CSharpMin_forward.
Defined.
(* Definition coopstep g c m c' m' := CSharpMin_corestep g c m c' m'.  Lemma csharpmin_coopstep_not_at_external: forall ge m q m' q', coopstep ge q m q' m' -> CSharpMin_at_external q = None.  Lemma csharpmin_coopstep_not_halted : forall ge m q m' q', coopstep ge q m q' m' -> CSharpMin_halted q = None.  Program Definition csharpmin_core_sem : CoreSemantics Csharpminor.genv CSharpMin_core mem := @Build_CoreSemantics _ _ _ CSharpMin_initial_core CSharpMin_at_external CSharpMin_after_external CSharpMin_halted coopstep csharpmin_coopstep_not_at_external csharpmin_coopstep_not_halted CSharpMin_at_external_halted_excl CSharpMin_after_at_external_excl.  (************************NOW SHOW THAT WE ALSO HAVE A COOPSEM******)

(* Specifications: *)
Lemma csharpmin_coop_forward : forall g c m c' m' (CS: coopstep g c m c' m'),
mem_lemmas.mem_forward m m'.