Program Definition cmin_core_sem :
CoreSemantics Cminor.genv CMin_core mem :=
@Build_CoreSemantics _ _ _ (*_*)
(*cl_init_mem*)
CMin_initial_core
CMin_at_external
CMin_after_external
CMin_halted
coopstep
cmin_coopstep_not_at_external
cmin_coopstep_not_halted
CMin_at_external_halted_excl
CMin_after_at_external_excl.

(* Specifications: *)
Lemma cmin_coop_forward : forall g c m c' m' (CS: coopstep g c m c' m'),
mem_lemmas.mem_forward m m'.
Lemma CompCertStep_CMin_corestep: forall (ge : genv)  (q : CMin_core) (m : mem) (q' : CMin_core) (m' : mem)  t,
step ge (ToState q m) t (ToState q' m') ->
CMin_at_external q = None ->
CMin_corestep ge q m q' m'.
Lemma CompCertStep_CMin_corestep': forall (ge : genv)  (q : CMin_core) (m : mem) c' t,
step ge (ToState q m) t c' ->
CMin_at_external q = None ->
CMin_corestep ge q m (fst (FromState c')) (snd (FromState c')).
(* Lemma CMin_corestepSN_2_CompCertStepStar: forall (ge : genv) n (q : CMin_core) (m : mem) (q' : CMin_core) (m' : mem), corestepN CMin_corestepN ge n q m q' m' -> exists t, Smallstep.star step ge (ToState q m) t (ToState q' m').  Lemma CMin_corestepSN_2_CompCertStepPlus: forall (ge : genv) n (q : CMin_core) (m : mem) (q' : CMin_core) (m' : mem), corestepN CMin_CompcertCoreSem ge (S n) q m q' m' -> exists t, Smallstep.plus step ge (ToState q m) t (ToState q' m').  Lemma CMin_corestep_plus_2_CompCertStep_plus: forall (ge : genv)  (q : CMin_core) (m : mem) (q' : CMin_core) (m' : mem) , corestep_plus CMin_CompcertCoreSem ge q m q' m' -> exists t, Smallstep.plus step ge (ToState q m) t (ToState q' m').  Lemma CMin_corestep_star_2_CompCertStep_star: forall (ge : genv)  (q : CMin_core) (m : mem) (q' : CMin_core) (m' : mem) , corestep_star CMin_CompcertCoreSem ge q m q' m' -> exists t, Smallstep.star step ge (ToState q m) t (ToState q' m'). *)
Lemma CompCertStep_2_CMin_corestep: forall (ge : genv)  (q : CMin_core) (m : mem) t c',
step ge (ToState q m) t c' ->
CMin_at_external q = None ->
exists q', exists m', c' = ToState q' m' /\ CMin_corestep ge q m q' m'.
Lemma CMin_core2state_injective: forall q m q' m',
ToState q m = ToState q' m' -> q'=q /\ m'=m.