Ltac dec_enc :=
match goal with
[ |- decode_val ?CH _ = ?V] => assert (DE := decode_encode_val_general V CH CH);
apply decode_encode_val_similar in DE; auto
end.

Lemma load_cast:
forall (t: type) (e2 : expr) (ch : memory_chunk) rho phi m,
tc_val (typeof e2) (eval_expr e2 rho) ->
denote_tc_assert (isCastResultType (typeof e2) t e2)
rho phi ->
access_mode t = By_value ch ->
Val.load_result ch
(force_val (Cop.sem_cast (eval_expr e2 rho) (typeof e2) t m)) =
force_val (Cop.sem_cast (eval_expr e2 rho) (typeof e2) t m).