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_makelong:
forall src1 src2 dst rs ls e,
let e1 := subst_reg_kind dst High src1 Full e in
let e2 := subst_reg_kind dst Low src2 Full e1 in
reg_unconstrained dst e2 = true ->
satisf rs ls e2 ->
satisf (rs#dst <- (Val.longofwords rs#src1 rs#src2)) ls e.