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 add_equations_builtin_args_lessdef:
forall env (ge: RTL.genv) sp rs ls m tm arg vl,
eval_builtin_args ge (fun r => rs#r) sp m arg vl ->
forall arg' e e',
add_equations_builtin_args env arg arg' e = Some e' ->
satisf rs ls e' ->
wt_regset env rs ->
Mem.extends m tm ->
exists vl', eval_builtin_args ge ls sp tm arg' vl' /\ Val.lessdef_list vl vl'.