End DECOMPOSITION.
(** Simulation for expressions. *)

(* Specifications: *)
Lemma estep_simulation:
forall S t S',
estep S t S' -> plus Csem.step ge S t S'.
Lemma can_estep:
forall f a k e m,
safe (ExprState f a k e m) ->
match a with Eval _ _ => False | _ => True end ->
exists t, exists S, estep (ExprState f a k e m) t S.
Lemma estep_simulation:
forall S t S',
estep S t S' -> plus Csem.step ge S t S'.
Lemma can_estep:
forall f a k e m,
safe (ExprState f a k e m) ->
match a with Eval _ _ => False | _ => True end ->
exists t, exists S, estep (ExprState f a k e m) t S.