Definition corestep_plus c m c' m' :=
exists n, corestepN (S n) c m c' m'.
Definition corestep_star c m c' m' :=
exists n, corestepN n c m c' m'.

(* Specifications: *)
Lemma corestep_plus_star : forall c1 c2 m1 m2,
corestep_plus c1 m1 c2 m2 -> corestep_star c1 m1 c2 m2.
Lemma corestep_star_plus_trans : forall c1 c2 c3 m1 m2 m3,
corestep_star c1 m1 c2 m2 -> corestep_plus c2 m2 c3 m3 ->
corestep_plus c1 m1 c3 m3.
Lemma corestep_plus_star_trans: forall c1 c2 c3 m1 m2 m3,
corestep_plus c1 m1 c2 m2 -> corestep_star c2 m2 c3 m3 ->
corestep_plus c1 m1 c3 m3.
Lemma corestep_star_trans: forall c1 c2 c3 m1 m2 m3,
corestep_star c1 m1 c2 m2 -> corestep_star c2 m2 c3 m3 ->
corestep_star c1 m1 c3 m3.
Lemma corestep_plus_one: forall c m c' m',
corestep Sem c m c' m' -> corestep_plus c m c' m'.
Lemma corestep_plus_two: forall c m c' m' c'' m'',
corestep Sem c m c' m' -> corestep Sem c' m' c'' m'' ->
corestep_plus c m c'' m''.
Lemma corestep_star_zero: forall c m, corestep_star  c m c m.
Lemma corestep_plus_split: forall c m c' m',
corestep_plus c m c' m' ->
exists c'', exists m'', corestep  Sem c m c'' m'' /\
corestep_star c'' m'' c' m'.
Lemma corestep_plus_star : forall c1 c2 m1 m2,
corestep_plus c1 m1 c2 m2 -> corestep_star c1 m1 c2 m2.
Lemma corestep_star_plus_trans : forall c1 c2 c3 m1 m2 m3,
corestep_star c1 m1 c2 m2 -> corestep_plus c2 m2 c3 m3 ->
corestep_plus c1 m1 c3 m3.
Lemma corestep_plus_star_trans: forall c1 c2 c3 m1 m2 m3,
corestep_plus c1 m1 c2 m2 -> corestep_star c2 m2 c3 m3 ->
corestep_plus c1 m1 c3 m3.
Lemma corestep_star_trans: forall c1 c2 c3 m1 m2 m3,
corestep_star c1 m1 c2 m2 -> corestep_star c2 m2 c3 m3 ->
corestep_star c1 m1 c3 m3.
Lemma corestep_plus_one: forall c m c' m',
corestep  Sem c m c' m' -> corestep_plus c m c' m'.
Lemma corestep_plus_two: forall c m c' m' c'' m'',
corestep  Sem c m c' m' -> corestep  Sem c' m' c'' m'' ->
corestep_plus c m c'' m''.
Lemma corestep_star_zero: forall c m, corestep_star  c m c m.
Lemma corestep_plus_split: forall c m c' m',
corestep_plus c m c' m' ->
exists c'', exists m'', corestep  Sem c m c'' m'' /\
corestep_star c'' m'' c' m'.
Lemma corestep_plus_star : forall c1 c2 m1 m2,
corestep_plus c1 m1 c2 m2 -> corestep_star c1 m1 c2 m2.
Lemma corestep_star_plus_trans : forall c1 c2 c3 m1 m2 m3,
corestep_star c1 m1 c2 m2 -> corestep_plus c2 m2 c3 m3 ->
corestep_plus c1 m1 c3 m3.
Lemma corestep_plus_star_trans: forall c1 c2 c3 m1 m2 m3,
corestep_plus c1 m1 c2 m2 -> corestep_star c2 m2 c3 m3 ->
corestep_plus c1 m1 c3 m3.
Lemma corestep_star_trans: forall c1 c2 c3 m1 m2 m3,
corestep_star c1 m1 c2 m2 -> corestep_star c2 m2 c3 m3 ->
corestep_star c1 m1 c3 m3.
Lemma corestep_plus_one: forall c m c' m',
corestep  Sem ge c m c' m' -> corestep_plus c m c' m'.
Lemma corestep_plus_two: forall c m c' m' c'' m'',
corestep  Sem ge c m c' m' -> corestep  Sem ge c' m' c'' m'' ->
corestep_plus c m c'' m''.
Lemma corestep_star_zero: forall c m, corestep_star  c m c m.
Lemma corestep_plus_split: forall c m c' m',
corestep_plus c m c' m' ->
exists c'', exists m'', corestep  Sem ge c m c'' m'' /\
corestep_star c'' m'' c' m'.
Lemma corestep_plus_star : forall c1 c2 m1 m2,
corestep_plus c1 m1 c2 m2 -> corestep_star c1 m1 c2 m2.
Lemma corestep_star_plus_trans : forall c1 c2 c3 m1 m2 m3,
corestep_star c1 m1 c2 m2 -> corestep_plus c2 m2 c3 m3 ->
corestep_plus c1 m1 c3 m3.
Lemma corestep_plus_star_trans: forall c1 c2 c3 m1 m2 m3,
corestep_plus c1 m1 c2 m2 -> corestep_star c2 m2 c3 m3 ->
corestep_plus c1 m1 c3 m3.
Lemma corestep_star_trans: forall c1 c2 c3 m1 m2 m3,
corestep_star c1 m1 c2 m2 -> corestep_star c2 m2 c3 m3 ->
corestep_star c1 m1 c3 m3.
Lemma corestep_plus_one: forall c m c' m',
corestep  Sem ge c m c' m' -> corestep_plus c m c' m'.
Lemma corestep_plus_two: forall c m c' m' c'' m'',
corestep  Sem ge c m c' m' -> corestep  Sem ge c' m' c'' m'' ->
corestep_plus c m c'' m''.
Lemma corestep_star_zero: forall c m, corestep_star  c m c m.
Lemma corestep_plus_split: forall c m c' m',
corestep_plus c m c' m' ->
exists c'', exists m'', corestep  Sem ge c m c'' m'' /\
corestep_star c'' m'' c' m'.