(** Forward simulation for expressions. *)

Lemma tr_val_gen:
forall le dst v ty a tmp,
typeof a = ty ->
(forall tge e le' m,
(forall id, In id tmp -> le'!id = le!id) ->
eval_expr tge e le' m a v) ->
tr_expr le dst (Csyntax.Eval v ty) (final dst a) a tmp.