Section X86WD.
Variable f: memren.
Definition regset_wd rs : Prop :=
forall r, valid_val f (Pregmap.get r rs).
Definition core_wd c : Prop :=
match c with State rs _ => regset_wd rs end.
Definition ge_wd (the_ge: genv) : Prop :=
(forall b, Maps.PTree.get b (genv_defs the_ge) ->
f b) /\
(forall id ofs v, Senv.symbol_address the_ge id ofs = v ->
valid_val f v).
End X86WD.
(* Lemma decode_longs_valid_val: forall f vals tys, valid_val_list f vals -> valid_val_list f (val_casted.decode_longs tys vals). *)
Hint Extern 1 (valid_val _ (@Pregmap.set _ _ _ _ _)) => eapply regset_wd_set : wd.
Hint Resolve regset_wd_set regset_wd_set_res : wd.

Lemma undef_regs_comm:
forall regs rs r,
undef_regs regs (rs # r <- Vundef) =
(undef_regs regs rs) # r <- Vundef.