(* Lemma transl_arglist_correct: forall al tyl vl, Clight.eval_exprlist ge e le m al tyl vl -> forall tal, transl_arglist al tyl = OK tal -> Csharpminor.eval_exprlist tge te le m tal vl. *)

Lemma make_boolean_inject:
forall a v ty b,
Clight.eval_expr ge e le m a v ->
bool_val v ty = Some b ->
forall ta, transl_expr a = OK ta ->
exists tv,
Csharpminor.eval_expr tge te tle tm (make_boolean ta ty) tv
/\ Val.bool_of_val tv b.