Remark in_elements_between_1:
forall r1 s q,
EqSet.In q (EqSet.elements_between (select_reg_l r1) (select_reg_h r1) s) <-> EqSet.In q s /\ ereg q = r1.

Lemma subst_reg_kind_satisf_lowlong:
forall src dst rs ls e,
let e1 := subst_reg_kind dst Full src Low e in
reg_unconstrained dst e1 = true ->
satisf rs ls e1 ->
satisf (rs#dst <- (Val.loword rs#src)) ls e.