Module ESD2 := FSetDecide.Decide(EqSet2).
Remark val_lessdef_normalize:
forall v v' ty,
Val.has_type v ty -> Val.lessdef v v' ->
Val.lessdef v (Val.load_result (chunk_of_type ty) v').

Lemma transfer_use_def_satisf:
forall args res args' res' und e e' rs ls,
transfer_use_def args res args' res' und e = Some e' ->
satisf rs ls e' ->
Val.lessdef_list rs##args (reglist ls args') /\
(forall v v', Val.lessdef v v' ->
satisf (rs#res <- v) (Locmap.set (R res') v' (undef_regs und ls)) e).