Fixpoint preg_notin (r: preg) (rl: list mreg) : Prop :=
match rl with
| nil => True
| r1 :: nil => r <> preg_of r1
| r1 :: rl => r <> preg_of r1 /\ preg_notin r rl
end.
Remark preg_notin_charact:
forall r rl,
preg_notin r rl <-> (forall mr, In mr rl -> r <> preg_of mr).

(* Specifications: *)
Lemma undef_regs_other_2:
forall r rl rs,
preg_notin r rl ->
undef_regs (map preg_of rl) rs r = rs r.