(** Preservation by assignment to lifted variable. *)

Lemma match_envs_assign_lifted:
forall f cenv e le m lo hi te tle tlo thi b ty v m' id tv,
match_envs f cenv e le m lo hi te tle tlo thi ->
e!id = Some(b, ty) ->
val_casted v ty ->
Val.inject f v tv ->
assign_loc ge ty m b Ptrofs.zero v m' ->
VSet.mem id cenv = true ->
match_envs f cenv e le m' lo hi te (PTree.set id tv tle) tlo thi.